0.1.22
Loading...
Searching...
No Matches
pyhelios.wrappers.ULiDARWrapper Namespace Reference

Classes

class  ULiDARcloud
 Opaque structure for LiDARcloud C++ class. More...
 

Functions

 _check_error (result, func, args)
 Automatic error checking for all LiDAR functions.
 
None destroyLiDARcloud (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Destroy LiDARcloud instance.
 
int addLiDARScan (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] origin, int Ntheta, Tuple[float, float] theta_range, int Nphi, Tuple[float, float] phi_range, float exit_diameter, float beam_divergence, Optional[List[str]] column_format=None, float range_noise_stddev=0.0, float angle_noise_stddev=0.0, float scan_tilt_roll=0.0, float scan_tilt_pitch=0.0)
 Add a LiDAR scan to the point cloud.
 
int addLiDARScanMultibeam (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] origin, List[float] beam_zenith_angles, int Nphi, Tuple[float, float] phi_range, float exit_diameter, float beam_divergence, Optional[List[str]] column_format=None, float range_noise_stddev=0.0, float angle_noise_stddev=0.0, float scan_tilt_roll=0.0, float scan_tilt_pitch=0.0)
 Add a spinning multibeam LiDAR scan (rotating multi-channel sensor)
 
float getLiDARScanTiltRoll (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the global scanner tilt roll angle (radians) for a scan.
 
float getLiDARScanTiltPitch (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the global scanner tilt pitch angle (radians) for a scan.
 
int getLiDARScanPattern (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the scan pattern (0 = raster, 1 = spinning multibeam).
 
List[float] getLiDARScanBeamZenithAngles (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the per-channel beam zenith angles (radians) for a multibeam scan (empty for raster).
 
bool isLiDARHitMiss (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Return True if the hit is a miss (a transmitted beam that returned nothing).
 
bool lidarHasMisses (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Return True if the cloud contains at least one miss.
 
float getLiDARMissDistance ()
 Return the LIDAR_MISS_DISTANCE constant (meters).
 
int getLiDARScanCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get number of scans in the cloud.
 
List[float] getLiDARScanOrigin (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get origin of a specific scan.
 
int getLiDARScanSizeTheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get number of zenith scan points.
 
int getLiDARScanSizePhi (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get number of azimuthal scan points.
 
float getLiDARScanRangeNoiseStdDev (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the range (along-beam) measurement noise standard deviation for a scan (meters)
 
float getLiDARScanAngleNoiseStdDev (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the angular (beam-pointing) jitter standard deviation for a scan (radians)
 
None addLiDARHitPoint (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, List[float] xyz, List[float] direction)
 Add a hit point to the cloud.
 
None addLiDARHitPointRGB (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, List[float] xyz, List[float] direction, List[float] color)
 Add a hit point with color to the cloud.
 
None addLiDARHitPoints (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, xyzs, directions, int count, colors=None)
 Add many hit points to the cloud in a single call (bulk ingestion).
 
None addLiDARHitPointsWithData (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, xyzs, directions, int count, colors=None, labels=None, data_values=None)
 Bulk-ingest hit points carrying a per-hit data map in one call.
 
int getLiDARHitCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get total number of hit points.
 
List[float] getLiDARHitXYZ (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get coordinates of a hit point.
 
List[float] getLiDARHitRaydir (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get ray direction of a hit point.
 
List[float] getLiDARHitColor (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get color of a hit point.
 
int getLiDARHitScanID (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the scan ID a hit point belongs to.
 
bool doesLiDARHitDataExist (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index, str label)
 Check whether a named scalar data value exists for a hit point.
 
float getLiDARHitData (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index, str label)
 Get a named scalar data value for a hit point.
 
List[float] getLiDARHitData_all (ctypes.POINTER(ULiDARcloud) cloud_ptr, str label, int n)
 Bulk-export a named scalar data value for all hit points in one call.
 
Tuple[List[float], List[float]] getLiDARHitsXYZRGB_all (ctypes.POINTER(ULiDARcloud) cloud_ptr, int n)
 Bulk-export XYZ coordinates and RGB colors for all hit points in one call.
 
None deleteLiDARHitPoint (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Delete a hit point from the cloud.
 
None lidarCoordinateShift (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] shift)
 Translate all hit points by a shift vecto.
 
None lidarCoordinateRotation (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] rotation)
 Rotate all hit points by spherical rotation angles.
 
None lidarTriangulateHitPoints (ctypes.POINTER(ULiDARcloud) cloud_ptr, float Lmax, float max_aspect_ratio)
 Generate triangle mesh from hit points.
 
int getLiDARTriangleCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get number of triangles in the mesh.
 
dict getLiDARTriangulationStats (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Filter diagnostics from the most recent triangulateHitPoints() call.
 
 getLiDARTriangleVertices_all (ctypes.POINTER(ULiDARcloud) cloud_ptr, int tri_count)
 Bulk-export every triangle's vertices (and source scan) in one call.
 
None lidarDistanceFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr, float maxdistance)
 Filter hit points by maximum distance.
 
None lidarReflectanceFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr, float minreflectance)
 Filter hit points by minimum reflectance.
 
None lidarFirstHitFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Keep only first return hit points.
 
None lidarLastHitFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Keep only last return hit points.
 
None exportLiDARPointCloud (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename, bool write_header=True)
 Export point cloud to ASCII file (optionally with a '#'-prefixed column header)
 
None exportLiDARLeafAreaUncertainty (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export per-voxel leaf-area sampling uncertainty to a self-describing ASCII file.
 
None exportLiDARScans (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export all scans to an XML metadata file plus one ASCII data file per scan.
 
None loadLiDARXML (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Load scan metadata from XML file.
 
None lidarDisableMessages (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Disable console output messages.
 
None lidarEnableMessages (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Enable console output messages.
 
None addLiDARGrid (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] center, List[float] size, List[int] ndiv, float rotation)
 Add a rectangular grid of voxel cells.
 
None addLiDARGridCell (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] center, List[float] size, float rotation)
 Add a single grid cell.
 
int getLiDARGridCellCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get number of grid cells.
 
List[float] getLiDARCellCenter (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get center position of a grid cell.
 
List[float] getLiDARCellSize (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get size of a grid cell.
 
float getLiDARCellLeafArea (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get leaf area of a grid cell.
 
float getLiDARCellLeafAreaDensity (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get leaf area density of a grid cell.
 
None calculateLiDARHitGridCell (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Calculate hit point grid cell assignments.
 
None syntheticLiDARScan (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Perform synthetic discrete-return LiDAR scan.
 
None syntheticLiDARScanAppend (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, bool append)
 Perform synthetic scan with append control.
 
None syntheticLiDARScanDiscrete (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, bool scan_grid_only, bool record_misses, bool append)
 Perform discrete-return synthetic scan with miss-recording control.
 
None syntheticLiDARScanWaveform (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, int rays_per_pulse, float pulse_distance_threshold)
 Perform synthetic full-waveform LiDAR scan.
 
None syntheticLiDARScanFull (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, int rays_per_pulse, float pulse_distance_threshold, bool scan_grid_only, bool record_misses, bool append)
 Perform synthetic scan with full control.
 
None calculateLiDARLeafArea (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Calculate leaf area for each grid cell.
 
None calculateLiDARLeafAreaMinHits (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, int min_voxel_hits)
 Calculate leaf area with minimum voxel hits threshold.
 
None calculateLiDARLeafAreaUncertainty (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, int min_voxel_hits, float element_width)
 Calculate leaf area plus per-voxel sampling uncertainty (Pimont et al.
 
int getLiDARCellBeamCount (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the beam count N entering a grid cell (-1 if calculateLeafArea not run).
 
float getLiDARCellRelativeDensityIndex (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the relative density index I_rdi for a grid cell.
 
float getLiDARCellMeanPathLength (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the mean beam path length (m) through a grid cell.
 
float getLiDARCellLADVariance (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the per-voxel LAD sampling variance (-1 if unavailable).
 
 getLiDARCellLeafAreaConfidenceInterval (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index, float confidence_level=0.95)
 Single-voxel leaf-area confidence interval.
 
 getLiDARGroupLADConfidenceInterval (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[int] indices, float confidence_level=0.95)
 Group-scale LAD confidence interval over a set of cells (recommended path).
 
None exportLiDARTriangleNormals (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export triangle normal vectors.
 
None exportLiDARTriangleAreas (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export triangle areas.
 
None exportLiDARLeafAreas (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export leaf areas for each grid cell.
 
None exportLiDARLeafAreaDensities (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export leaf area densities for each grid cell.
 
None exportLiDARGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export G(theta) values for each grid cell.
 
float getLiDARCellGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get G(theta) value for a grid cell.
 
None setLiDARCellGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, float Gtheta, int index)
 Set G(theta) value for a grid cell.
 
None gapfillLiDARMisses (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Gapfill sky/miss points.
 
None calculateSyntheticLiDARLeafArea (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Calculate synthetic leaf area for validation.
 
None calculateSyntheticLiDARGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Calculate synthetic G(theta) for validation.
 
None addLiDARTrianglesToContext (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Add triangulated mesh to Context as primitives.
 
None initializeLiDARCollisionDetection (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Initialize CollisionDetection for ray tracing.
 
None enableLiDARCDGPUAcceleration (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Enable GPU acceleration for collision detection.
 
None disableLiDARCDGPUAcceleration (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Disable GPU acceleration for collision detection.
 
 mock_createLiDARcloud (*args, **kwargs)
 
 mock_lidar_operation (*args, **kwargs)
 

Variables

 argtypes
 
 restype
 
 errcheck
 
bool _LIDAR_FUNCTIONS_AVAILABLE
 
 createLiDARcloud () = mock_createLiDARcloud
 Create LiDARcloud instance.
 
 addLiDARScan = mock_lidar_operation
 
 addLiDARHitPoint = mock_lidar_operation
 

Function Documentation

◆ _check_error()

pyhelios.wrappers.ULiDARWrapper._check_error ( result,
func,
args )
protected

Automatic error checking for all LiDAR functions.

Definition at line 25 of file ULiDARWrapper.py.

◆ addLiDARGrid()

None pyhelios.wrappers.ULiDARWrapper.addLiDARGrid ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[float] center,
List[float] size,
List[int] ndiv,
float rotation )

Add a rectangular grid of voxel cells.

Definition at line 1108 of file ULiDARWrapper.py.

◆ addLiDARGridCell()

None pyhelios.wrappers.ULiDARWrapper.addLiDARGridCell ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[float] center,
List[float] size,
float rotation )

Add a single grid cell.

Definition at line 1127 of file ULiDARWrapper.py.

◆ addLiDARHitPoint()

None pyhelios.wrappers.ULiDARWrapper.addLiDARHitPoint ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID,
List[float] xyz,
List[float] direction )

Add a hit point to the cloud.

Definition at line 780 of file ULiDARWrapper.py.

◆ addLiDARHitPointRGB()

None pyhelios.wrappers.ULiDARWrapper.addLiDARHitPointRGB ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID,
List[float] xyz,
List[float] direction,
List[float] color )

Add a hit point with color to the cloud.

Definition at line 796 of file ULiDARWrapper.py.

◆ addLiDARHitPoints()

None pyhelios.wrappers.ULiDARWrapper.addLiDARHitPoints ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID,
xyzs,
directions,
int count,
colors = None )

Add many hit points to the cloud in a single call (bulk ingestion).

xyzs and directions must be contiguous float32 buffers (e.g. numpy arrays) of shape (count, 3). colors, if given, must be a contiguous float32 buffer of shape (count, 3); pass None to add without color. The buffers are passed straight through to C without per-point Python marshalling.

Definition at line 821 of file ULiDARWrapper.py.

◆ addLiDARHitPointsWithData()

None pyhelios.wrappers.ULiDARWrapper.addLiDARHitPointsWithData ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID,
xyzs,
directions,
int count,
colors = None,
labels = None,
data_values = None )

Bulk-ingest hit points carrying a per-hit data map in one call.

xyzs/directions (and colors, if given) must be contiguous float32 buffers of shape (count, 3); directions is (radius, elevation, azimuth). labels is a list of data-map key names; data_values must be a contiguous float64 buffer of shape (count, len(labels)). Pass labels=None/empty (and data_values=None) to ingest with an empty data map.

Definition at line 840 of file ULiDARWrapper.py.

◆ addLiDARScan()

int pyhelios.wrappers.ULiDARWrapper.addLiDARScan ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[float] origin,
int Ntheta,
Tuple[float, float] theta_range,
int Nphi,
Tuple[float, float] phi_range,
float exit_diameter,
float beam_divergence,
Optional[List[str]] column_format = None,
float range_noise_stddev = 0.0,
float angle_noise_stddev = 0.0,
float scan_tilt_roll = 0.0,
float scan_tilt_pitch = 0.0 )

Add a LiDAR scan to the point cloud.

Definition at line 609 of file ULiDARWrapper.py.

◆ addLiDARScanMultibeam()

int pyhelios.wrappers.ULiDARWrapper.addLiDARScanMultibeam ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[float] origin,
List[float] beam_zenith_angles,
int Nphi,
Tuple[float, float] phi_range,
float exit_diameter,
float beam_divergence,
Optional[List[str]] column_format = None,
float range_noise_stddev = 0.0,
float angle_noise_stddev = 0.0,
float scan_tilt_roll = 0.0,
float scan_tilt_pitch = 0.0 )

Add a spinning multibeam LiDAR scan (rotating multi-channel sensor)

Definition at line 643 of file ULiDARWrapper.py.

◆ addLiDARTrianglesToContext()

None pyhelios.wrappers.ULiDARWrapper.addLiDARTrianglesToContext ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr )

Add triangulated mesh to Context as primitives.

Definition at line 1402 of file ULiDARWrapper.py.

◆ calculateLiDARHitGridCell()

None pyhelios.wrappers.ULiDARWrapper.calculateLiDARHitGridCell ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Calculate hit point grid cell assignments.

Definition at line 1184 of file ULiDARWrapper.py.

◆ calculateLiDARLeafArea()

None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafArea ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr )

Calculate leaf area for each grid cell.

Definition at line 1242 of file ULiDARWrapper.py.

◆ calculateLiDARLeafAreaMinHits()

None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaMinHits ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr,
int min_voxel_hits )

Calculate leaf area with minimum voxel hits threshold.

Definition at line 1250 of file ULiDARWrapper.py.

◆ calculateLiDARLeafAreaUncertainty()

None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaUncertainty ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr,
int min_voxel_hits,
float element_width )

Calculate leaf area plus per-voxel sampling uncertainty (Pimont et al.

2018)

Definition at line 1259 of file ULiDARWrapper.py.

◆ calculateSyntheticLiDARGtheta()

None pyhelios.wrappers.ULiDARWrapper.calculateSyntheticLiDARGtheta ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr )

Calculate synthetic G(theta) for validation.

Definition at line 1394 of file ULiDARWrapper.py.

◆ calculateSyntheticLiDARLeafArea()

None pyhelios.wrappers.ULiDARWrapper.calculateSyntheticLiDARLeafArea ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr )

Calculate synthetic leaf area for validation.

Definition at line 1386 of file ULiDARWrapper.py.

◆ deleteLiDARHitPoint()

None pyhelios.wrappers.ULiDARWrapper.deleteLiDARHitPoint ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Delete a hit point from the cloud.

Definition at line 946 of file ULiDARWrapper.py.

◆ destroyLiDARcloud()

None pyhelios.wrappers.ULiDARWrapper.destroyLiDARcloud ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Destroy LiDARcloud instance.

Definition at line 603 of file ULiDARWrapper.py.

◆ disableLiDARCDGPUAcceleration()

None pyhelios.wrappers.ULiDARWrapper.disableLiDARCDGPUAcceleration ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Disable GPU acceleration for collision detection.

Definition at line 1425 of file ULiDARWrapper.py.

◆ doesLiDARHitDataExist()

bool pyhelios.wrappers.ULiDARWrapper.doesLiDARHitDataExist ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index,
str label )

Check whether a named scalar data value exists for a hit point.

Definition at line 908 of file ULiDARWrapper.py.

◆ enableLiDARCDGPUAcceleration()

None pyhelios.wrappers.ULiDARWrapper.enableLiDARCDGPUAcceleration ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Enable GPU acceleration for collision detection.

Definition at line 1418 of file ULiDARWrapper.py.

◆ exportLiDARGtheta()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARGtheta ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export G(theta) values for each grid cell.

Definition at line 1358 of file ULiDARWrapper.py.

◆ exportLiDARLeafAreaDensities()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreaDensities ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export leaf area densities for each grid cell.

Definition at line 1351 of file ULiDARWrapper.py.

◆ exportLiDARLeafAreas()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreas ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export leaf areas for each grid cell.

Definition at line 1344 of file ULiDARWrapper.py.

◆ exportLiDARLeafAreaUncertainty()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreaUncertainty ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export per-voxel leaf-area sampling uncertainty to a self-describing ASCII file.

Definition at line 1073 of file ULiDARWrapper.py.

◆ exportLiDARPointCloud()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARPointCloud ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename,
bool write_header = True )

Export point cloud to ASCII file (optionally with a '#'-prefixed column header)

Definition at line 1065 of file ULiDARWrapper.py.

◆ exportLiDARScans()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARScans ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export all scans to an XML metadata file plus one ASCII data file per scan.

Definition at line 1080 of file ULiDARWrapper.py.

◆ exportLiDARTriangleAreas()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARTriangleAreas ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export triangle areas.

Definition at line 1337 of file ULiDARWrapper.py.

◆ exportLiDARTriangleNormals()

None pyhelios.wrappers.ULiDARWrapper.exportLiDARTriangleNormals ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Export triangle normal vectors.

Definition at line 1330 of file ULiDARWrapper.py.

◆ gapfillLiDARMisses()

None pyhelios.wrappers.ULiDARWrapper.gapfillLiDARMisses ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Gapfill sky/miss points.

Definition at line 1379 of file ULiDARWrapper.py.

◆ getLiDARCellBeamCount()

int pyhelios.wrappers.ULiDARWrapper.getLiDARCellBeamCount ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get the beam count N entering a grid cell (-1 if calculateLeafArea not run).

Definition at line 1269 of file ULiDARWrapper.py.

◆ getLiDARCellCenter()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellCenter ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get center position of a grid cell.

Definition at line 1150 of file ULiDARWrapper.py.

◆ getLiDARCellGtheta()

float pyhelios.wrappers.ULiDARWrapper.getLiDARCellGtheta ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get G(theta) value for a grid cell.

Definition at line 1365 of file ULiDARWrapper.py.

◆ getLiDARCellLADVariance()

float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLADVariance ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get the per-voxel LAD sampling variance (-1 if unavailable).

Definition at line 1290 of file ULiDARWrapper.py.

◆ getLiDARCellLeafArea()

float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafArea ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get leaf area of a grid cell.

Definition at line 1170 of file ULiDARWrapper.py.

◆ getLiDARCellLeafAreaConfidenceInterval()

pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafAreaConfidenceInterval ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index,
float confidence_level = 0.95 )

Single-voxel leaf-area confidence interval.

Returns (valid, lower, upper). valid is False when the interval is gated out by the Pimont validity envelope (the bounds are then not trustworthy).

Definition at line 1301 of file ULiDARWrapper.py.

◆ getLiDARCellLeafAreaDensity()

float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafAreaDensity ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get leaf area density of a grid cell.

Definition at line 1177 of file ULiDARWrapper.py.

◆ getLiDARCellMeanPathLength()

float pyhelios.wrappers.ULiDARWrapper.getLiDARCellMeanPathLength ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get the mean beam path length (m) through a grid cell.

Definition at line 1283 of file ULiDARWrapper.py.

◆ getLiDARCellRelativeDensityIndex()

float pyhelios.wrappers.ULiDARWrapper.getLiDARCellRelativeDensityIndex ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get the relative density index I_rdi for a grid cell.

Definition at line 1276 of file ULiDARWrapper.py.

◆ getLiDARCellSize()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellSize ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get size of a grid cell.

Definition at line 1160 of file ULiDARWrapper.py.

◆ getLiDARGridCellCount()

int pyhelios.wrappers.ULiDARWrapper.getLiDARGridCellCount ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Get number of grid cells.

Definition at line 1143 of file ULiDARWrapper.py.

◆ getLiDARGroupLADConfidenceInterval()

pyhelios.wrappers.ULiDARWrapper.getLiDARGroupLADConfidenceInterval ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[int] indices,
float confidence_level = 0.95 )

Group-scale LAD confidence interval over a set of cells (recommended path).

Returns (valid, mean_lad, lower, upper).

Definition at line 1315 of file ULiDARWrapper.py.

◆ getLiDARHitColor()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitColor ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get color of a hit point.

Definition at line 891 of file ULiDARWrapper.py.

◆ getLiDARHitCount()

int pyhelios.wrappers.ULiDARWrapper.getLiDARHitCount ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Get total number of hit points.

Definition at line 864 of file ULiDARWrapper.py.

◆ getLiDARHitData()

float pyhelios.wrappers.ULiDARWrapper.getLiDARHitData ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index,
str label )

Get a named scalar data value for a hit point.

Definition at line 915 of file ULiDARWrapper.py.

◆ getLiDARHitData_all()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitData_all ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str label,
int n )

Bulk-export a named scalar data value for all hit points in one call.

Definition at line 922 of file ULiDARWrapper.py.

◆ getLiDARHitRaydir()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitRaydir ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get ray direction of a hit point.

Definition at line 881 of file ULiDARWrapper.py.

◆ getLiDARHitScanID()

int pyhelios.wrappers.ULiDARWrapper.getLiDARHitScanID ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get the scan ID a hit point belongs to.

Definition at line 901 of file ULiDARWrapper.py.

◆ getLiDARHitsXYZRGB_all()

Tuple[List[float], List[float]] pyhelios.wrappers.ULiDARWrapper.getLiDARHitsXYZRGB_all ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int n )

Bulk-export XYZ coordinates and RGB colors for all hit points in one call.

Returns a tuple (xyz_flat, rgb_flat) of flat 3*n-element lists.

Definition at line 935 of file ULiDARWrapper.py.

◆ getLiDARHitXYZ()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitXYZ ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Get coordinates of a hit point.

Definition at line 871 of file ULiDARWrapper.py.

◆ getLiDARMissDistance()

float pyhelios.wrappers.ULiDARWrapper.getLiDARMissDistance ( )

Return the LIDAR_MISS_DISTANCE constant (meters).

Definition at line 728 of file ULiDARWrapper.py.

◆ getLiDARScanAngleNoiseStdDev()

float pyhelios.wrappers.ULiDARWrapper.getLiDARScanAngleNoiseStdDev ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get the angular (beam-pointing) jitter standard deviation for a scan (radians)

Definition at line 773 of file ULiDARWrapper.py.

◆ getLiDARScanBeamZenithAngles()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARScanBeamZenithAngles ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get the per-channel beam zenith angles (radians) for a multibeam scan (empty for raster).

Definition at line 702 of file ULiDARWrapper.py.

◆ getLiDARScanCount()

int pyhelios.wrappers.ULiDARWrapper.getLiDARScanCount ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Get number of scans in the cloud.

Definition at line 735 of file ULiDARWrapper.py.

◆ getLiDARScanOrigin()

List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARScanOrigin ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get origin of a specific scan.

Definition at line 742 of file ULiDARWrapper.py.

◆ getLiDARScanPattern()

int pyhelios.wrappers.ULiDARWrapper.getLiDARScanPattern ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get the scan pattern (0 = raster, 1 = spinning multibeam).

Definition at line 695 of file ULiDARWrapper.py.

◆ getLiDARScanRangeNoiseStdDev()

float pyhelios.wrappers.ULiDARWrapper.getLiDARScanRangeNoiseStdDev ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get the range (along-beam) measurement noise standard deviation for a scan (meters)

Definition at line 766 of file ULiDARWrapper.py.

◆ getLiDARScanSizePhi()

int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSizePhi ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get number of azimuthal scan points.

Definition at line 759 of file ULiDARWrapper.py.

◆ getLiDARScanSizeTheta()

int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSizeTheta ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get number of zenith scan points.

Definition at line 752 of file ULiDARWrapper.py.

◆ getLiDARScanTiltPitch()

float pyhelios.wrappers.ULiDARWrapper.getLiDARScanTiltPitch ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get the global scanner tilt pitch angle (radians) for a scan.

Definition at line 688 of file ULiDARWrapper.py.

◆ getLiDARScanTiltRoll()

float pyhelios.wrappers.ULiDARWrapper.getLiDARScanTiltRoll ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int scanID )

Get the global scanner tilt roll angle (radians) for a scan.

Definition at line 681 of file ULiDARWrapper.py.

◆ getLiDARTriangleCount()

int pyhelios.wrappers.ULiDARWrapper.getLiDARTriangleCount ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Get number of triangles in the mesh.

Definition at line 985 of file ULiDARWrapper.py.

◆ getLiDARTriangleVertices_all()

pyhelios.wrappers.ULiDARWrapper.getLiDARTriangleVertices_all ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int tri_count )

Bulk-export every triangle's vertices (and source scan) in one call.

Returns (xyz_flat, scan_ids) as numpy arrays: xyz_flat is (tri_count*9,) float32 laid out [v0x,v0y,v0z, v1x,v1y,v1z, v2x,v2y,v2z] per triangle, and scan_ids is (tri_count,) int32. Returns empty arrays when tri_count is 0.

Definition at line 1018 of file ULiDARWrapper.py.

◆ getLiDARTriangulationStats()

dict pyhelios.wrappers.ULiDARWrapper.getLiDARTriangulationStats ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Filter diagnostics from the most recent triangulateHitPoints() call.

Returns a dict with candidate/dropped counts. Each dropped triangle is attributed to one primary reason, so: candidates == kept + dropped_lmax + dropped_aspect + dropped_degenerate where kept equals getLiDARTriangleCount(). All zero if triangulation has not been run.

Definition at line 999 of file ULiDARWrapper.py.

◆ initializeLiDARCollisionDetection()

None pyhelios.wrappers.ULiDARWrapper.initializeLiDARCollisionDetection ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr )

Initialize CollisionDetection for ray tracing.

Definition at line 1410 of file ULiDARWrapper.py.

◆ isLiDARHitMiss()

bool pyhelios.wrappers.ULiDARWrapper.isLiDARHitMiss ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
int index )

Return True if the hit is a miss (a transmitted beam that returned nothing).

Definition at line 714 of file ULiDARWrapper.py.

◆ lidarCoordinateRotation()

None pyhelios.wrappers.ULiDARWrapper.lidarCoordinateRotation ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[float] rotation )

Rotate all hit points by spherical rotation angles.

Definition at line 965 of file ULiDARWrapper.py.

◆ lidarCoordinateShift()

None pyhelios.wrappers.ULiDARWrapper.lidarCoordinateShift ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
List[float] shift )

Translate all hit points by a shift vecto.

Definition at line 953 of file ULiDARWrapper.py.

◆ lidarDisableMessages()

None pyhelios.wrappers.ULiDARWrapper.lidarDisableMessages ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Disable console output messages.

Definition at line 1094 of file ULiDARWrapper.py.

◆ lidarDistanceFilter()

None pyhelios.wrappers.ULiDARWrapper.lidarDistanceFilter ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
float maxdistance )

Filter hit points by maximum distance.

Definition at line 1037 of file ULiDARWrapper.py.

◆ lidarEnableMessages()

None pyhelios.wrappers.ULiDARWrapper.lidarEnableMessages ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Enable console output messages.

Definition at line 1101 of file ULiDARWrapper.py.

◆ lidarFirstHitFilter()

None pyhelios.wrappers.ULiDARWrapper.lidarFirstHitFilter ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Keep only first return hit points.

Definition at line 1051 of file ULiDARWrapper.py.

◆ lidarHasMisses()

bool pyhelios.wrappers.ULiDARWrapper.lidarHasMisses ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Return True if the cloud contains at least one miss.

Definition at line 721 of file ULiDARWrapper.py.

◆ lidarLastHitFilter()

None pyhelios.wrappers.ULiDARWrapper.lidarLastHitFilter ( ctypes.POINTER(ULiDARcloud) cloud_ptr)

Keep only last return hit points.

Definition at line 1058 of file ULiDARWrapper.py.

◆ lidarReflectanceFilter()

None pyhelios.wrappers.ULiDARWrapper.lidarReflectanceFilter ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
float minreflectance )

Filter hit points by minimum reflectance.

Definition at line 1044 of file ULiDARWrapper.py.

◆ lidarTriangulateHitPoints()

None pyhelios.wrappers.ULiDARWrapper.lidarTriangulateHitPoints ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
float Lmax,
float max_aspect_ratio )

Generate triangle mesh from hit points.

Definition at line 977 of file ULiDARWrapper.py.

◆ loadLiDARXML()

None pyhelios.wrappers.ULiDARWrapper.loadLiDARXML ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
str filename )

Load scan metadata from XML file.

Definition at line 1087 of file ULiDARWrapper.py.

◆ mock_createLiDARcloud()

pyhelios.wrappers.ULiDARWrapper.mock_createLiDARcloud ( * args,
** kwargs )

Definition at line 1433 of file ULiDARWrapper.py.

◆ mock_lidar_operation()

pyhelios.wrappers.ULiDARWrapper.mock_lidar_operation ( * args,
** kwargs )

Definition at line 1439 of file ULiDARWrapper.py.

◆ setLiDARCellGtheta()

None pyhelios.wrappers.ULiDARWrapper.setLiDARCellGtheta ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
float Gtheta,
int index )

Set G(theta) value for a grid cell.

Definition at line 1372 of file ULiDARWrapper.py.

◆ syntheticLiDARScan()

None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScan ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr )

Perform synthetic discrete-return LiDAR scan.

Definition at line 1191 of file ULiDARWrapper.py.

◆ syntheticLiDARScanAppend()

None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScanAppend ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr,
bool append )

Perform synthetic scan with append control.

Definition at line 1199 of file ULiDARWrapper.py.

◆ syntheticLiDARScanDiscrete()

None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScanDiscrete ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr,
bool scan_grid_only,
bool record_misses,
bool append )

Perform discrete-return synthetic scan with miss-recording control.

Definition at line 1208 of file ULiDARWrapper.py.

◆ syntheticLiDARScanFull()

None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScanFull ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr,
int rays_per_pulse,
float pulse_distance_threshold,
bool scan_grid_only,
bool record_misses,
bool append )

Perform synthetic scan with full control.

Definition at line 1227 of file ULiDARWrapper.py.

◆ syntheticLiDARScanWaveform()

None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScanWaveform ( ctypes.POINTER(ULiDARcloud) cloud_ptr,
ctypes.POINTER(UContext) context_ptr,
int rays_per_pulse,
float pulse_distance_threshold )

Perform synthetic full-waveform LiDAR scan.

Definition at line 1217 of file ULiDARWrapper.py.

Variable Documentation

◆ _LIDAR_FUNCTIONS_AVAILABLE

bool pyhelios.wrappers.ULiDARWrapper._LIDAR_FUNCTIONS_AVAILABLE
protected

Definition at line 582 of file ULiDARWrapper.py.

◆ addLiDARHitPoint

pyhelios.wrappers.ULiDARWrapper.addLiDARHitPoint = mock_lidar_operation

Definition at line 1448 of file ULiDARWrapper.py.

◆ addLiDARScan

pyhelios.wrappers.ULiDARWrapper.addLiDARScan = mock_lidar_operation

Definition at line 1447 of file ULiDARWrapper.py.

◆ argtypes

pyhelios.wrappers.ULiDARWrapper.argtypes

Definition at line 33 of file ULiDARWrapper.py.

◆ createLiDARcloud

pyhelios.wrappers.ULiDARWrapper.createLiDARcloud = mock_createLiDARcloud

Create LiDARcloud instance.

Definition at line 1446 of file ULiDARWrapper.py.

◆ errcheck

pyhelios.wrappers.ULiDARWrapper.errcheck

Definition at line 35 of file ULiDARWrapper.py.

◆ restype

pyhelios.wrappers.ULiDARWrapper.restype

Definition at line 34 of file ULiDARWrapper.py.