Skip to content

Latest commit

 

History

History
187 lines (137 loc) · 4.49 KB

File metadata and controls

187 lines (137 loc) · 4.49 KB

RayWrap

RayWrap is a tool for extracting ground and surface meshes from ray clouds by wrapping the point data with triangulated surfaces. It creates mesh representations that can grow in different directions from the point cloud.

Usage

raywrap <raycloud_file> <direction> <curvature> [options]
  • <raycloud_file>: Input ray cloud file (.ply)
  • <direction>: Wrapping direction (upwards, downwards, inwards, outwards)
  • <curvature>: Maximum curvature to bend to (controls surface smoothness)

Wrapping Directions

upwards

Grows mesh from bottom upward (typical for ground surface extraction):

raywrap terrain_scan.ply upwards 1.0

downwards

Grows mesh from top downward (ceiling or canopy extraction):

raywrap forest_scan.ply downwards 0.5

inwards

Grows mesh inward from exterior points:

raywrap building_scan.ply inwards 2.0

outwards

Grows mesh outward from interior points:

raywrap cavity_scan.ply outwards 1.5

Curvature Parameter

The curvature value controls surface flexibility:

  • Lower values (0.1-0.5): Smoother surfaces, less detail
  • Medium values (1.0-2.0): Balanced smoothness and detail
  • Higher values (3.0+): More detailed surfaces, follows contours closely

Wrapping Methods

Default Method (Fast)

Uses convex hull approach:

  • Faster processing
  • Suitable for most applications
  • Cannot handle overhangs or complex concavities
raywrap scan.ply upwards 1.0

Full Method (Slow)

Uses concave hull approach with --full option:

  • Slower processing
  • Handles overhangs and complex geometry
  • More accurate for complex surfaces
raywrap complex_scan.ply upwards 1.0 --full

Output

The tool generates a mesh file with the suffix _mesh.ply:

  • Triangulated mesh representation
  • Vertices positioned on or near the original points
  • Faces connecting vertices to form continuous surface

Applications

Ground Surface Extraction

Extract terrain models from LiDAR data:

raywrap lidar_terrain.ply upwards 0.8

Building Modeling

Create building surface meshes:

raywrap building_points.ply outwards 1.2 --full

Vegetation Analysis

Extract canopy surfaces:

raywrap forest_canopy.ply downwards 0.6

Cave and Tunnel Mapping

Handle complex underground geometry:

raywrap cave_scan.ply inwards 2.0 --full

Examples by Application

Digital Terrain Model (DTM)

raywrap ground_points.ply upwards 0.5

Building Reconstruction

raywrap facade_scan.ply outwards 1.0 --full

Forest Canopy Model

raywrap tree_tops.ply downwards 1.2

Archaeological Site

raywrap excavation.ply upwards 0.3 --full

Mining Survey

raywrap pit_scan.ply inwards 1.8

Method Selection

Use Default Method When:

  • Processing large datasets quickly
  • Surface has simple, convex geometry
  • Overhangs are not important
  • Speed is prioritized over accuracy

Use Full Method When:

  • Complex surfaces with overhangs
  • Detailed accuracy is required
  • Processing time is not critical
  • Archaeological or precision applications

Pre-processing

The tool automatically:

  1. Removes unbounded rays: Uses only bounded ray endpoints
  2. Centers coordinates: Temporarily moves data to origin for processing
  3. Restores position: Returns mesh to original coordinate system

Quality Considerations

Input Requirements

  • Works best with dense, well-distributed points
  • Requires bounded rays for meaningful results
  • Benefits from noise removal (consider raysmooth first)

Mesh Quality

  • Curvature parameter significantly affects output quality
  • Lower curvature creates smoother but less detailed meshes
  • Higher curvature preserves detail but may include noise

Performance

Speed Comparison

  • Default method: Fast, suitable for large datasets
  • Full method: Significantly slower, use for smaller or critical datasets

Memory Usage

  • Processes entire point cloud in memory
  • Mesh generation requires additional memory for triangulation
  • Consider decimation for very large datasets

Additional Information

  • Output mesh is in PLY format with triangular faces
  • Mesh reduction is applied to minimize file size
  • Coordinate transformations preserve original positioning
  • For more detailed information on wrapping algorithms, refer to the RayWrap source code at raycloudtools/raywrap/raywrap.cpp.