I. Background
Mach9’s Digital Surveyor uses mobile LiDAR point cloud, trajectory and the associated 360 degree and directional images to perform automated feature extraction to create CAD/GIS outputs.
Commercial mobile LiDAR systems like RIEGL’s VMY-1 and VMX-2HA collect all of the data needed for this process. This document provides detailed instructions for using the RIEGL RiPROCESS software to export all the data necessary for Mach9 to perform automated feature extraction. This process must be followed exactly to create the necessary import files for Mach9’s Digital Surveyor to function with RIEGL data.
II. Procedure
Step 1: Preparation
Create a target export folder with two subfolders on your system named exactly as follows:
- laser
- images
The folder names are case sensitive - keep them lower case!
Feel free to name this folder any project name you want, here we name it “Export” and refer to this root folder as “<Export_Folder>” in the rest of the document

Step 2: Adding Panoramic Images
To export panoramic imagery, ensure it has been added to your RiProcess project using the Camera Data Wizard. Add your image files as normal but then click the “wrench” icon with your images selected and verify that your settings match the example provided in the image below.
Set the settings as shown below. Be sure image orientation is set to “Front 0 - Top5(default).
Choose a minimum image size of at least 8000 x 4000 or 8192 x 4096
If done correctly, your panoramic images should now appear under your records.
Step 3: Calibrate the cameras
To calibrate your cameras, please refer to the "Calculate Camera Mounting" section in the RiPROCESS documentation. Calibration must be completed before importing Riegl data into the Mach9 workflow. Colorizing the LiDAR data is optional, but necessary if you would like to visualize the colorized point cloud in Mach9 Digital Surveyor. The documentation for both processes can be downloaded here:
Step 4. Export Camera Data
In RiProcess, right click on the “RECORDS” and select Export > Camera data… This also applies to Laser data export described later in this documentation.
After selecting which records to cameras you want to export by clicking “Filter by device…”.
If you have processed panoramic images at a resolution of at least 8000 x 4000 or 8192 x 4096, then only select “LB6, Ladybug5”, or your panoramic camera equivalent, for export as shown above. Select all the other Ladybug cameras if you have not processed panoramic images for this project.
Export camera data to <Export_Folder>\images. Select all camera data, then configure the camera data export as follows (make sure other options are an EXACT match):
The “Coordinate Reference System” should be explicitly set to the reference system used when recording.
The resulting folder structure will contain:
- TopoDOT image project containing undistorted images for each camera, TopoDot .iprj and .lst files that describe the image project structure.
- A .cal file per camera containing calibration information for each camera.
- A .csv file per camera containing timestamp and pose information for each image.
Step 5: Export Point Cloud
Right click on the “RECORDS” and select Export > Laser data… and then select all point clouds.
Configure the Coordinate System page as follows:
The “Target coordinate system“ should again be the reference system used when recording and match the system used when exporting images.
Configure the “Export Format” options as follows (make the options are EXACT match):
If you have color information select “channel 1” as the “Color channel”
Export point cloud data to <Export_Folder>\laser. Configure other options as follows:
If issues occur at this step, uncheck the “Enabled” option for “Combine(enabled)”.
Do not set any data filters and hit next.
Verify the configuration in the summary window. Make sure the “Target coordinate system” and export location match those for your project. Click “Start” to begin export.
Step 6. Verify Output Structure
A properly exported dataset should resemble the below directory structure (bold: folder). To properly validate exports, also run the dataset verification script found at this documentation.
Riegl
├── images
│ ├──"Record Name"
│ │ ├──"Record Name"
│ │ │ ├── Camera 1 [1624 entries]
│ │ │ ├── Camera 2 [1625 entries]
│ │ │ ├── Camera 3 [1624 entries]
│ │ │ ├── LB5, LB5P1 [1626 entries]
│ │ │ ├── LB5, LB5P1, 0 [1626 entries]
│ │ │ ├── LB5, LB5P1, 1 [1626 entries]
│ │ │ ├── LB5, LB5P1, 2 [1626 entries]
│ │ │ ├── LB5, LB5P1, 3 [1626 entries]
│ │ │ ├── LB5, LB5P1, 4 [1626 entries]
│ │ │ └──LB5, LB5P1, 5 [1626 entries]
│ ├── Camera 1 (4112x3008@0,0).csv
│ ├── Camera 2 (4104x2248@0,0).csv
│ ├── Camera 3 (4112x3008@0,0).csv
│ ├── LB5, LB5P1.csv
│ ├── LB5, LB5P1, LB5, LB5P1, 0.csv
│ ├── LB5, LB5P1, LB5, LB5P1, 1.csv
│ ├── LB5, LB5P1, LB5, LB5P1, 2.csv
│ ├── LB5, LB5P1, LB5, LB5P1, 3.csv
│ ├── LB5, LB5P1, LB5, LB5P1, 4.csv
│ ├── LB5, LB5P1, LB5, LB5P1, 5.csv
│ ├── OHM_VMX-Camera 1 (4112x3008@0,0).TopoDOT.cal
│ ├── OHM_VMX-Camera 2 (4104x2248@0,0).TopoDOT.cal
│ ├── OHM_VMX-Camera 3 (4112x3008@0,0).TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1, LB5, LB5P1, 0.TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1, LB5, LB5P1, 1.TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1, LB5, LB5P1, 2.TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1, LB5, LB5P1, 3.TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1, LB5, LB5P1, 4.TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1, LB5, LB5P1, 5.TopoDOT.cal
│ ├── OHM_VMX-LB5, LB5P1.TopoDOT.cal
│ ├── OHM_VMX-LB5P1.TopoDOT.cal
│ ├── OHM_VMX-pavementcam1 (2372x1212@84,0).TopoDOT.cal
│ ├── OHM_VMX-pavementcam2 (2456x1372@0,0).TopoDOT.cal
│ └── OHM_VMX.TopoDOT.iprj
├── laser
│ ├── laser - 220914_173337_Scanner_1.las
│ ├── laser - 220914_173337_Scanner_2.las
│ ├── laser - 220914_173501_Scanner_1.las
│ ├── laser - 220914_173501_Scanner_2.las
│ ├── laser - 220914_173655_Scanner_1.las
│ ├── laser - 220914_173655_Scanner_2.las
│ ├── laser - 220914_173927_Scanner_1.las
│ ├── laser - 220914_173927_Scanner_2.las
│ ├── laser - 220914_174048_Scanner_1.las
│ ├── laser - 220914_174048_Scanner_2.las
│ ├── laser - 220914_174348_Scanner_1.las
│ ├── laser - 220914_174348_Scanner_2.las
│ ├── laser - 220914_180146_Scanner_1.las
│ ├── laser - 220914_180146_Scanner_2.las
│ ├── laser - 220914_180503_Scanner_1.las
│ ├── laser - 220914_180503_Scanner_2.las
│ ├── laser - 220914_180615_Scanner_1.las
│ └── laser - 220914_180615_Scanner_2.las
├── trajectory.txt
└── trajectory_wgs84.txtFor images, make sure the .cal files have zero distortion (k1, k2, k3, k4, P1, P2 = 0).
If you get any of the previous steps wrong, you should delete data from the incorrect step before redoing it so that there are no duplicate entries like OHM_VMX-LB5P1.TopoDOT (1).cal.
Step 7: Compression
Create a new upload folder to store the zipped files into. This folder should only contain the zipped files to be uploaded.
We ask that you compress the export folders and their contents into split compressed files no more than 8 GB each. You can use any of the following formats:
- .tar.gz (gzip compressed tarball)
- .tar.xz (LZMA compressed tarball)
- .7z
- .zip
Not every compression tool will create split archives. One free software we use for this is 7-zip. It is available at www.7-zip.org. This video (credit to GEEKrar Guides) walks you through the entire process of using 7-zip to create split archives.
Right click the export folder and click 7-Zip > Add to archive…
Configure the export setting as shown below:
Be sure to set split volumes to “DVD DL” and set the archive location to a separate upload folder from the zipped export folder.
Step 8: Upload
Navigate to your target upload folder and select Upload > Mobile LiDAR data

Input a name for your dataset and then select Generic RIEGL from the dropdown menu. Add your email to be notified when uploading is complete.

Click Chose files and use multiselect to chose all the zip files to upload.

Verify your uploaded files and click Upload

After uploading be sure to not close the tab or let the computer go to sleep. This will interrupt the upload.
III. Support
If you need any help during this process, please contact Mach9 Customer Support at customersupport@mach9.io.
