Used hardware:
Intro
JPG and LIDAR scenarios
JPG parameters
LIDAR parameters
Open images in QGIS
Open images in BrisCAD
Enhance images with GIMP
In this video, we’ll explore how to create high-quality orthophotos from mobile laser scanning data using the powerful Leica Cyclone 3DR software.
A special shoutout goes to 🥇 Romain Sallenave, the brilliant mind behind the cutting-edge script we’ll be using today. I had the privilege of being a beta tester for this incredible tool, which automates large-scale orthoimage generation in Cyclone 3DR. If you have improvement suggestions or feature requests for the script, feel free to reach out to Romain directly at romain.sallenave@rs-consul.com.
This script allows you to automatically process large volumes of LGS data, generating orthoimages from both camera images and LIDAR point clouds with ease. But also it can be used for point cloud segmentation by tiles.
Requirements
To follow along, you’ll need:
Leica Cyclone 3DR version 2025.1.3 or later (minimum required)
An LGS file with trajectory data (preferably a single trajectory)
Optionally, images from Rear Cameras attached to the Leica Pegasus Mobile Mapping System.
Pro Tips for Optimal Results
Use a single trajectory per LGS file
Ensure rear camera images are captured at 2–3 meter spacing intervals.
Make sure your system has sufficient resources to handle large datasets.
To get started, import your LGS/LGSx point cloud data into Leica Cyclone 3DR—no conversion needed. Simply import the data and run the script by following these steps:
Navigate to Tools > Scripts > Run Script.
Select the "Large_Scale_Ortho_Image.js" file.
Click Run.
The script will immediately present you with the main menu, offering two processing options:
Processing Types:
JPG ORTHO (Image-based):
Utilizes camera data recorded during mobile mapping, projecting images onto a mesh generated from the point cloud.
Recommended to use rear camera images for optimal results.
Ideal for road condition assessment, asset inventory, and visual documentation.
LIDAR ORTHO (Point cloud-based):
Uses only LIDAR point cloud data to create orthoimages based on point intensity, RGB color, or classification.
Useful when rear cameras are unavailable.
Suitable for technical analysis, infrastructure analysis, and geometric measurements.
For this demonstration, let's begin with JPG ORTHO. Select this option and click OK.
Mesh Generation Settings:
Texture Generation Width (4m recommended ✓): Defines the mesh creation distance from the trajectory path. Larger values capture more roadside features, while smaller values focus on the road surface.
Height of IMU (2.1m default ✓):
Should match your actual sensor height for accurate road surface extraction. Check your system specifications for the exact value.
Mesh Triangle Size (0.01m recommended ✓):
Controls mesh detail level. Smaller values offer more detail but require longer processing. Range: 0.001m (very detailed) to 0.05m (rough).
Filtering Settings:
Filter Non-Horizontal Data:
Removes points that aren't horizontal (±10° tolerance). Recommended for most road mapping projects; disable for steep terrain or ramps.
Normal Angle Tolerance (30° default ✓):
Retains points with normals within this angle from horizontal, affecting curb detection accuracy. Too small values may remove important features.
Once you've configured these settings, click OK to proceed to camera selection.
3. Camera Selection
Choose which cameras to use for texturing:
Front Right
Front Left
Rear Right (recommended ✓)
Rear Left (recommended ✓)
Sphere (360° camera)
Recommendations:
For optimal road surface coverage, use the rear cameras.
When collecting data, it’s recommended to capture images at 2–3 meter intervals (depending on vehicle height) for consistent and accurate coverage.
Once you’ve selected your preferred cameras, click OK to proceed.
4. Export Settings
Configure the output parameters:
Texel Size (0.005m recommended ✓):
Defines the pixel resolution in real-world units.
0.005m = 5mm per pixel.
Smaller values result in higher resolution but larger file sizes.
Typical range: 0.001m to 0.01m.
5. Save Location
Select an output folder with sufficient storage space. The script will generate multiple files per tile, including:
JPG file for the orthoimage.
JGW georeference file for mapping applications.
Processing Phase
Once the script begins, the processing is fully automated. Here’s what happens step by step:
1st Step: Mosaic Creation
The script analyzes the data extent and divides it into 50m × 50m tiles.
Red tile boundaries are displayed to indicate the processing grid.
Progress is shown in the command window, with a status like "Ortho generation: X/Y".
Visual Indicators:
Red tiles: Currently in the processing queue.
Green tiles: Successfully completed.
Processing Specific Areas
If you want to process only specific tiles:
STOP the script.
Select the tiles you want to process.
RUN the script again using the same parameters. Only the selected tiles will be processed.
Alternatively, you can limit the processing area by using Cyclone 3DR’s clipping tools to create clippings. Adjusting the visibility of point clouds required for orthoimage generation. In this case, tiles will only be generated for the visible areas.
To explore the LIDAR ortho option, restart the script and select LIDAR ORTHO from the main menu.
LIDAR Display Settings
Max Points Per Tile (25,000,000): Defines the maximum point density per tile.
Higher values = more detail but slower processing.
Adjust this setting based on your system’s capabilities.
LIDAR Point Size (100%):
A scale factor for point visualization.
Larger points = more visible but less detailed.
Useful for sparse datasets to enhance visibility.
LIDAR Representation:
Choose how the LIDAR data is visualized:
Color: Uses RGB values from the point cloud.
Intensity: Uses LIDAR return intensity.
Decide by Class: Customize settings for each point classification.
If you’re using intensity mode, you can enable "Use custom intensity color scale" to create professional-looking intensity maps. Simply browse and select a .RSI color scale file for this purpose. To prepare the .RSI file:
Convert a small part of the point cloud into native format
Switch representation to Intensity and go to the Edit Colors menu
Adjust the Intensity Hystogram and save the template as .RSI file.
Now you can use this template in all your projects.
Classification Display
If your dataset includes point classifications, you can select "Decide by Class" and configure each class individually:
For each class, you can define:
Display Type: Choose from Color, Intensity, Flat, or Hidden.
Opacity: Set transparency between 10–100%.
Color: Choose predefined colors for each class.
Export Options
Point Cloud Export:
Choose one of the following based on your workflow:
No Export: Skip exporting the point cloud.
Export as E57 Format: A widely used open format.
Export as LAS Format: Ideal for LIDAR-specific workflows.
Output Files
After processing completes, the following files will be generated:
JPG files: Contain the orthoimage data.
JGW files: Provide geographic reference information for mapping applications.
Point Cloud Files: If LIDAR export was enabled, these will be saved in the selected format (E57 or LAS).
Typical Processing Time: 2–5 minutes per tile, depending on:
Data density.
Mesh detail settings.
Number of cameras used.
System performance.
How to Speed Up Processing in Leica Cyclone 3DR:
In Leica Cyclone 3DR, you can run multiple instances of the software simultaneously and process different tiles in each instance. Here’s how I did it:
Opened the project in the first instance of the software and ran the script to generate tiles, then paused it.
Opened three additional instances of the same project and copied the tiles from the first instance into each of them.
Selected a different set of tiles in each instance and ran the script in all instances simultaneously.
The Result:
I was able to process 27 tiles in just 24 minutes, which is faster than 1 tile per minute! If your computer specifications allow, you can run even more instances of Leica Cyclone 3DR. The software supports opening multiple instances on the same machine using a single license.
How to Open Georeferenced Images in CAD/GIS Software
Once all your images are ready, you can open them in CAD or GIS software with the correct geographical location. Here’s how you can do it in BricsCAD and QGIS:
BricsCAD Workflow
Create a New Project
Set the Coordinate System:
Type the command: GEOGRAPHICLOCATION.
In the pop-up window, click the three dots (...) icon and select the appropriate coordinate system from the list. Then click OK.
Attach Your Images:
Type the command: IMAGEATTACH and select your images.
The images will automatically be placed in the correct position, as long as the .JGW files (which store the geographical coordinates) are in the same folder as your images.
Once loaded, your images will appear in their correct geographical locations.
QGIS Workflow
Create a New Project
Set the Coordinate System: Go to Settings > Options > CRS and Transform.
Click Select CRS and choose the appropriate coordinate system from the list. It will be applied to your project.
Add Your Images: Simply drag and drop your images into the main window.
Add a Map:
In the Layers tab, select all your images, right-click, and in the pop-up menu, go to Layer CRS > Choose Your Coordinate System from the list.
Zoom in to any image, and you’ll see that it’s correctly positioned on the map.
These workflows ensure your images are accurately placed in the right geographical location for further analysis or visualization.
Important: The generated orthoimages come with georeference files (.JGW) that contain precise coordinate information. This means when you open the JPG files in any CAD software (like AutoCAD, BricsCAD, MicroStation) or GIS applications (ArcGIS, QGIS, M.App Enterprise), they will be automatically positioned in the correct geographic location without any manual georeferencing required.
Fine-tune Images with GIMP
Once all your images are ready, you might want to fine-tune their colors, brightness, sharpness, or other aspects. The great news is that you can do all of this using GIMP, a free image editing software. You can download it here: https://www.gimp.org/downloads/
To process multiple images efficiently, you can use either the Command Line Interface or, for an easier approach, install the BIMP plugin. You can download the BIMP plugin here: https://alessandrofrancesconi.it/projects/bimp/
Step-by-Step Guide:
Open one of your images in GIMP.
Navigate to the Colors menu and adjust:
Brightness / Contrast
Shadows / Highlights
Gamma / Saturation
Take note of the values you apply to the image.
After installing the BIMP plugin, go to File > Batch Image Manipulation.
In the pop-up window:
Click the Add button and select the same corrections:
Color Correction for brightness and contrast
Sharp or Blur for sharpness
Other GIMP Procedure for shadows and highlights
Enter approximately the same values you used for the single image.
Add all your images to the list of files for processing, specify the output folder, and click the Apply button.
GIMP will automatically process all your images one by one, applying the corrections you’ve specified.