Skip to content

Latest commit

 

History

History
248 lines (166 loc) · 4.77 KB

File metadata and controls

248 lines (166 loc) · 4.77 KB

RaySplit

RaySplit is a versatile tool for splitting ray clouds using various geometric, temporal, and attribute-based criteria. It generates multiple output files based on the specified splitting method.

Usage

raysplit <raycloud_file> <split_method> <parameters>
  • <raycloud_file>: Input ray cloud file to split (.ply)
  • <split_method>: Method used for splitting
  • <parameters>: Method-specific parameters

Splitting Methods

Geometric Splitting

Plane Splitting

Split around a plane at specified coordinates:

raysplit raycloud.ply plane 10,0,0

Splits around a plane at 10m along the X-axis.

Box Splitting

Split around an axis-aligned bounding box:

raysplit raycloud.ply box 5,5,5 2,3,4

Box centered at (5,5,5) with radii (2,3,4) meters.

Capsule Splitting

Split within/outside a capsule shape:

raysplit raycloud.ply capsule 1,2,3 10,11,12 5

Capsule from point (1,2,3) to (10,11,12) with radius 5.

Mesh-based Splitting

File Distance Splitting

Split at specified distance from mesh or tree file:

raysplit raycloud.ply mesh.ply distance 0.2

Splits at 0.2m distance from the mesh surface.

raysplit raycloud.ply trees.txt distance 0.5

Splits at 0.5m distance from tree structures.

Attribute Splitting

Color Splitting

Split by color attributes:

raysplit raycloud.ply colour

Creates one cloud per unique color.

raysplit raycloud.ply colour 0.5,0,0

Splits around half-red color component.

raysplit raycloud.ply single_colour 255,0,0

Extracts only red-colored points (0-255 scale).

raysplit raycloud.ply seg_colour

Splits segmented clouds, converting colors to indexed files.

Alpha/Intensity Splitting

Split by alpha channel (intensity):

raysplit raycloud.ply alpha 0.0

Separates unbounded rays (zero intensity).

Temporal Splitting

Time-based Splitting

Split at specific timestamps:

raysplit raycloud.ply time 1000

Split at timestamp 1000.

raysplit raycloud.ply time 3 %

Split at 3% through the time sequence.

Geometric Property Splitting

Ray Direction Splitting

Split based on ray direction:

raysplit raycloud.ply raydir 0,0,0.8

Splits around nearly vertical rays.

Range Splitting

Split by ray length:

raysplit raycloud.ply range 10

Separates rays longer than 10 meters.

Connectivity Splitting

Gap-based Splitting

Split by connectivity gaps:

raysplit raycloud.ply gap 0.1

Separates largest connected component (gap < 0.1m) from remainder.

Grid-based Splitting

Spatial Grid

Split into spatial grid cells:

raysplit raycloud.ply grid 100,100,0

Grid with 100m cells in X,Y (no Z splitting).

raysplit raycloud.ply grid 50,50,10 1

Grid with 1m overlap between cells.

Spatio-temporal Grid

Include time dimension:

raysplit raycloud.ply grid 100,100,0,60

Grid with 60-second time periods.

Output Files

Standard Splits

Most methods create two files:

  • <input>_inside.ply: Points inside the criterion
  • <input>_outside.ply: Points outside the criterion

Multiple Outputs

Some methods create multiple files:

  • Color splitting: One file per unique color
  • Grid splitting: One file per grid cell
  • Segmented color: Numbered files by segment index

Examples

Extract building interior from exterior:

raysplit building_scan.ply box 0,0,0 20,15,8

Separate vegetation from ground by height:

raysplit forest_scan.ply plane 0,0,2

Split scan by time periods:

raysplit temporal_scan.ply time 50 %

Create spatial tiles for processing:

raysplit large_scan.ply grid 200,200,0

Extract high-intensity returns:

raysplit lidar_scan.ply alpha 0.5

Separate by scanning direction:

raysplit mobile_scan.ply raydir 0,0,1

Applications

Data Management

  • Split large datasets into manageable chunks
  • Create spatial tiles for distributed processing
  • Separate different scan regions or time periods

Feature Extraction

  • Isolate specific geometric features
  • Extract objects by color or intensity
  • Separate vegetation from ground returns

Quality Control

  • Extract problematic data regions
  • Separate by scanning quality metrics
  • Isolate temporal artifacts

Additional Information

  • Grid splitting uses coordinate origin (0,0,0) as reference
  • Color splitting preserves original color information
  • Gap-based splitting uses connectivity analysis
  • For more detailed information on splitting algorithms, refer to the RaySplit source code at raycloudtools/raysplit/raysplit.cpp.