RayDecimate is a tool for reducing ray cloud density while preserving important structural information. It supports both spatial and temporal decimation methods to create more manageable datasets.
The general syntax for using RayDecimate is:
raydecimate <input_file> <amount> <unit> [additional_parameters]
Reduces to one endpoint every specified distance:
raydecimate raycloud.ply 3 cm
Creates spatially even subsampling with points spaced 3 cm apart.
Reduces to every Nth ray in sequence:
raydecimate raycloud.ply 4 rays
Keeps every 4th ray, creating temporally even subsampling (effective if rays are chronological).
Note: Advanced methods are not supported in rayrestore.
Limits the maximum number of endpoints per cubic cell:
raydecimate raycloud.ply 20 cm 64 points
- Maximum of 64 endpoints per 20cm cubic cell
- Retains small-scale details better than simple spatial decimation
raydecimate raycloud.ply 20 cm/ray
Only adds a ray if not all cells overlapping the ray already intersect with existing rays. Maintains ray distribution for tools like raycombine.
raydecimate raycloud.ply 3 cm/m
Reduces to ray ends spaced 3 cm apart for each meter of ray length. Good for maintaining a range of point densities based on distance from sensor.
The tool generates a decimated ray cloud with the suffix _decimated.ply.
Simple spatial decimation:
raydecimate large_scan.ply 5 cm
Temporal decimation for time-based analysis:
raydecimate trajectory_scan.ply 10 rays
Advanced spatio-temporal decimation:
raydecimate dense_cloud.ply 15 cm 32 points
Ray-distribution preserving decimation:
raydecimate multi_scan.ply 25 cm/ray
Distance-adaptive decimation:
raydecimate lidar_scan.ply 2 cm/m
- Basic spatial (
cm) and temporal (rays) decimation methods are compatible withrayrestore - Advanced methods (
cm/ray,cm/m, andcm X points) are not supported byrayrestore
- Spatial decimation maintains geometric fidelity while reducing data size
- Temporal decimation preserves chronological relationships in scan data
- Advanced methods provide specialized decimation for specific use cases
- For more detailed information on decimation algorithms, refer to the
RayDecimatesource code atraycloudtools/raydecimate/raydecimate.cpp.