0.1.22
Loading...
Searching...
No Matches
ULiDARWrapper.py File Reference

Go to the source code of this file.

Classes

class  pyhelios.wrappers.ULiDARWrapper.ULiDARcloud
 Opaque structure for LiDARcloud C++ class. More...
 

Namespaces

namespace  pyhelios
 
namespace  pyhelios.wrappers
 
namespace  pyhelios.wrappers.ULiDARWrapper
 

Functions

 pyhelios.wrappers.ULiDARWrapper._check_error (result, func, args)
 Automatic error checking for all LiDAR functions.
 
None pyhelios.wrappers.ULiDARWrapper.destroyLiDARcloud (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Destroy LiDARcloud instance.
 
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.
 
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)
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanTiltRoll (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the global scanner tilt roll angle (radians) for a scan.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanTiltPitch (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the global scanner tilt pitch angle (radians) for a scan.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanPattern (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the scan pattern (0 = raster, 1 = spinning multibeam).
 
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).
 
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).
 
bool pyhelios.wrappers.ULiDARWrapper.lidarHasMisses (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Return True if the cloud contains at least one miss.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARMissDistance ()
 Return the LIDAR_MISS_DISTANCE constant (meters).
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get number of scans in the cloud.
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARScanOrigin (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get origin of a specific scan.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSizeTheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get number of zenith scan points.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSizePhi (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get number of azimuthal scan points.
 
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)
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanAngleNoiseStdDev (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the angular (beam-pointing) jitter standard deviation for a scan (radians)
 
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.
 
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.
 
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).
 
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.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARHitCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get total number of hit points.
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitXYZ (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get coordinates of a hit point.
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitRaydir (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get ray direction of a hit point.
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitColor (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get color of a hit point.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARHitScanID (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the scan ID a hit point belongs to.
 
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.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARHitData (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index, str label)
 Get a named scalar data value for a hit point.
 
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.
 
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.
 
None pyhelios.wrappers.ULiDARWrapper.deleteLiDARHitPoint (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Delete a hit point from the cloud.
 
None pyhelios.wrappers.ULiDARWrapper.lidarCoordinateShift (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] shift)
 Translate all hit points by a shift vecto.
 
None pyhelios.wrappers.ULiDARWrapper.lidarCoordinateRotation (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] rotation)
 Rotate all hit points by spherical rotation angles.
 
None pyhelios.wrappers.ULiDARWrapper.lidarTriangulateHitPoints (ctypes.POINTER(ULiDARcloud) cloud_ptr, float Lmax, float max_aspect_ratio)
 Generate triangle mesh from hit points.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARTriangleCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get number of triangles in the mesh.
 
dict pyhelios.wrappers.ULiDARWrapper.getLiDARTriangulationStats (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Filter diagnostics from the most recent triangulateHitPoints() call.
 
 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.
 
None pyhelios.wrappers.ULiDARWrapper.lidarDistanceFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr, float maxdistance)
 Filter hit points by maximum distance.
 
None pyhelios.wrappers.ULiDARWrapper.lidarReflectanceFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr, float minreflectance)
 Filter hit points by minimum reflectance.
 
None pyhelios.wrappers.ULiDARWrapper.lidarFirstHitFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Keep only first return hit points.
 
None pyhelios.wrappers.ULiDARWrapper.lidarLastHitFilter (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Keep only last return hit points.
 
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)
 
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.
 
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.
 
None pyhelios.wrappers.ULiDARWrapper.loadLiDARXML (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Load scan metadata from XML file.
 
None pyhelios.wrappers.ULiDARWrapper.lidarDisableMessages (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Disable console output messages.
 
None pyhelios.wrappers.ULiDARWrapper.lidarEnableMessages (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Enable console output messages.
 
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.
 
None pyhelios.wrappers.ULiDARWrapper.addLiDARGridCell (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] center, List[float] size, float rotation)
 Add a single grid cell.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARGridCellCount (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get number of grid cells.
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellCenter (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get center position of a grid cell.
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellSize (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get size of a grid cell.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafArea (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get leaf area of a grid cell.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafAreaDensity (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get leaf area density of a grid cell.
 
None pyhelios.wrappers.ULiDARWrapper.calculateLiDARHitGridCell (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Calculate hit point grid cell assignments.
 
None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScan (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Perform synthetic discrete-return LiDAR scan.
 
None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScanAppend (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, bool append)
 Perform synthetic scan with append control.
 
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.
 
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.
 
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.
 
None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafArea (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Calculate leaf area for each grid cell.
 
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.
 
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.
 
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).
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARCellRelativeDensityIndex (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the relative density index I_rdi for a grid cell.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARCellMeanPathLength (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the mean beam path length (m) through a grid cell.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLADVariance (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the per-voxel LAD sampling variance (-1 if unavailable).
 
 pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafAreaConfidenceInterval (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index, float confidence_level=0.95)
 Single-voxel leaf-area confidence interval.
 
 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).
 
None pyhelios.wrappers.ULiDARWrapper.exportLiDARTriangleNormals (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export triangle normal vectors.
 
None pyhelios.wrappers.ULiDARWrapper.exportLiDARTriangleAreas (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export triangle areas.
 
None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreas (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export leaf areas for each grid cell.
 
None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreaDensities (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export leaf area densities for each grid cell.
 
None pyhelios.wrappers.ULiDARWrapper.exportLiDARGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, str filename)
 Export G(theta) values for each grid cell.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARCellGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get G(theta) value for a grid cell.
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARCellGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, float Gtheta, int index)
 Set G(theta) value for a grid cell.
 
None pyhelios.wrappers.ULiDARWrapper.gapfillLiDARMisses (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Gapfill sky/miss points.
 
None pyhelios.wrappers.ULiDARWrapper.calculateSyntheticLiDARLeafArea (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Calculate synthetic leaf area for validation.
 
None pyhelios.wrappers.ULiDARWrapper.calculateSyntheticLiDARGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Calculate synthetic G(theta) for validation.
 
None pyhelios.wrappers.ULiDARWrapper.addLiDARTrianglesToContext (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Add triangulated mesh to Context as primitives.
 
None pyhelios.wrappers.ULiDARWrapper.initializeLiDARCollisionDetection (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr)
 Initialize CollisionDetection for ray tracing.
 
None pyhelios.wrappers.ULiDARWrapper.enableLiDARCDGPUAcceleration (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Enable GPU acceleration for collision detection.
 
None pyhelios.wrappers.ULiDARWrapper.disableLiDARCDGPUAcceleration (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Disable GPU acceleration for collision detection.
 
 pyhelios.wrappers.ULiDARWrapper.mock_createLiDARcloud (*args, **kwargs)
 
 pyhelios.wrappers.ULiDARWrapper.mock_lidar_operation (*args, **kwargs)
 

Variables

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