0.1.26
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, float scan_azimuth_offset=0.0)
 Add a LiDAR scan to the point cloud.
 
int pyhelios.wrappers.ULiDARWrapper.addLiDARScanMoving (ctypes.POINTER(ULiDARcloud) cloud_ptr, int Ntheta, Tuple[float, float] theta_range, int Nphi, Tuple[float, float] phi_range, float exit_diameter, float beam_divergence, List[float] traj_t, List[List[float]] traj_pos, List[List[float]] traj_rot, bool rot_is_quaternion, float pulse_rate_hz, Optional[List[float]] lever_arm=None, Optional[List[float]] boresight_rpy=None, Optional[List[str]] column_format=None, float range_noise_stddev=0.0, float angle_noise_stddev=0.0, float t0=0.0)
 Add a moving-platform (mobile/airborne) raster LiDAR scan driven by a 6-DOF pose trajectory.
 
int pyhelios.wrappers.ULiDARWrapper.addLiDARScanSpinning (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] beam_elevation_angles, float azimuth_step_rad, float pulse_rate_hz, List[float] traj_t, List[List[float]] traj_pos, List[List[float]] traj_rot, bool rot_is_quaternion, float exit_diameter=0.0, float beam_divergence=0.0, Optional[List[float]] lever_arm=None, Optional[List[float]] boresight_rpy=None, Optional[List[str]] column_format=None, float range_noise_stddev=0.0, float angle_noise_stddev=0.0, float t0=0.0)
 Add a continuously-spinning multibeam scan from physical instrument parameters.
 
int pyhelios.wrappers.ULiDARWrapper.addLiDARScanMovingRaster (ctypes.POINTER(ULiDARcloud) cloud_ptr, int Ntheta, Tuple[float, float] theta_range, int Nphi, Tuple[float, float] phi_range, float pulse_rate_hz, List[float] traj_t, List[List[float]] traj_pos, List[List[float]] traj_quat, float exit_diameter=0.0, float beam_divergence=0.0, Optional[List[float]] lever_arm=None, Optional[List[float]] boresight_rpy=None, Optional[List[str]] column_format=None, float range_noise_stddev=0.0, float angle_noise_stddev=0.0, float t0=0.0)
 Add a moving-platform raster scan: a fixed angular fan swept along a quaternion trajectory.
 
int pyhelios.wrappers.ULiDARWrapper.addLiDARScanRisley (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[List[float]] prisms, float refractive_index_air, float pulse_rate_hz, List[float] traj_t, List[List[float]] traj_pos, List[List[float]] traj_rot, bool rot_is_quaternion, float exit_diameter=0.0, float beam_divergence=0.0, Optional[List[float]] lever_arm=None, Optional[List[float]] boresight_rpy=None, Optional[List[str]] column_format=None, float range_noise_stddev=0.0, float angle_noise_stddev=0.0, float t0=0.0)
 Add a rotating-Risley-prism (Livox-style rosette) scan from physical instrument parameters.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the acquisition mode (0 = static raster, 1 = moving raster, 2 = spinning, 3 = Risley prism).
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanStepsPerRev (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the number of azimuth firing steps per revolution (spinning scans; 0 otherwise).
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanRotationRate (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the sensor-head rotation rate in revolutions/second (spinning scans; 0 otherwise).
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanRevolutions (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the number of revolutions the sensor head made (spinning scans; 0 otherwise).
 
List[List[float]] pyhelios.wrappers.ULiDARWrapper.getLiDARScanRisleyPrisms (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the rotating wedge prisms of a Risley-prism scan.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanRisleyRefractiveIndexAir (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the refractive index of the medium surrounding the prisms of a Risley-prism scan (1.0 for non-Risley).
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanReturnMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the return-reporting mode (0 = multi, 1 = single).
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARScanReturnMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, int return_mode)
 Set the return-reporting mode (0 = multi, 1 = single).
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSingleReturnSelection (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the single/limited-return selection policy (0 = strongest, 1 = first, 2 = last, 3 = strongest+last).
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARScanSingleReturnSelection (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, int selection)
 Set the single/limited-return selection policy (0 = strongest, 1 = first, 2 = last, 3 = strongest+last).
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARScanMaxReturns (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the maximum returns per pulse used in single/limited-return mode.
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARScanMaxReturns (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, int max_returns)
 Set the maximum returns per pulse used in single/limited-return mode (must be >= 1).
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanPulseWidth (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the pulse width / range resolution (meters) of a scan (0 = use syntheticScan argument).
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARScanPulseWidth (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, float pulse_width)
 Set the pulse width / range resolution (meters) of a scan (0 = use syntheticScan argument).
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanDetectionThreshold (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the detection threshold (energy fraction, noise floor) of a scan.
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARScanDetectionThreshold (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, float detection_threshold)
 Set the detection threshold (energy fraction, noise floor) of a scan.
 
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.
 
float pyhelios.wrappers.ULiDARWrapper.getLiDARScanAzimuthOffset (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID)
 Get the global scanner azimuth (heading) offset 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.getLiDARHitOrigin (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get the (x,y,z) beam-emission origin 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.
 
 pyhelios.wrappers.ULiDARWrapper.getLiDARHitsXYZRGB_all_np (ctypes.POINTER(ULiDARcloud) cloud_ptr, int n)
 Bulk-export XYZ + RGB for all hits as numpy arrays (no per-element Python).
 
 pyhelios.wrappers.ULiDARWrapper.getLiDARHitData_all_np (ctypes.POINTER(ULiDARcloud) cloud_ptr, str label, int n)
 Bulk-export a named scalar field for all hits as an (n,) float32 numpy array (NaN where the label is absent for a hit).
 
List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumn (ctypes.POINTER(ULiDARcloud) cloud_ptr, str label, int n, float absent_value=-9999.0)
 Bulk-export a named scalar column via the native cache-linear columnar path.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumnIndex (ctypes.POINTER(ULiDARcloud) cloud_ptr, str label)
 Get the internal column slot index for a hit-data label (-1 if never set on any hit).
 
 pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumn_np (ctypes.POINTER(ULiDARcloud) cloud_ptr, str label, int n, float absent_value=-9999.0)
 Bulk-export a named scalar column as an (n,) float64 numpy array via the columnar path (absent_value where the label is absent for a hit).
 
 pyhelios.wrappers.ULiDARWrapper.getLiDARHitScanID_all (ctypes.POINTER(ULiDARcloud) cloud_ptr, int n)
 Bulk-export the scan ID of every hit as an (n,) int32 numpy array.
 
 pyhelios.wrappers.ULiDARWrapper.isLiDARHitMiss_all (ctypes.POINTER(ULiDARcloud) cloud_ptr, int n)
 Bulk-export the miss flag of every hit as an (n,) int32 numpy array (1=miss).
 
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.lidarSetExternalTriangulation (ctypes.POINTER(ULiDARcloud) cloud_ptr, xyz_flat, scan_ids, int tri_count)
 Replace the internal triangulation with an externally-supplied mesh.
 
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.addLiDARGridTerrainFollowing (ctypes.POINTER(ULiDARcloud) cloud_ptr, List[float] center, List[float] size, List[int] ndiv, float rotation, List[float] column_z_offsets)
 Add a rectangular grid of voxel cells with per-column vertical offsets.
 
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.getLiDARCellRotation (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index)
 Get azimuthal rotation of a grid cell about the z-axis, in degrees.
 
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.setLiDARCancelFlag (ctypes.POINTER(ULiDARcloud) cloud_ptr, flag)
 Register an external cancellation flag polled during syntheticScan.
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARSyntheticScanMemoryBudget (ctypes.POINTER(ULiDARcloud) cloud_ptr, int bytes)
 Set the soft memory budget (bytes) for syntheticScan's transient trace buffers.
 
int pyhelios.wrappers.ULiDARWrapper.getLiDARSyntheticScanMemoryBudget (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Get the soft memory budget (bytes) for syntheticScan's transient buffers.
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARSyntheticScanProgressPointer (ctypes.POINTER(ULiDARcloud) cloud_ptr, ptr)
 Register an external per-scan progress counter polled during syntheticScan.
 
None pyhelios.wrappers.ULiDARWrapper.setLiDARProgressCallback (ctypes.POINTER(ULiDARcloud) cloud_ptr, callback)
 Register a progress callback fired with (progress_fraction, message) during syntheticScan.
 
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.syntheticLiDARScanReturnMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, int rays_per_pulse, float pulse_distance_threshold, int return_mode, bool scan_grid_only=False, bool record_misses=False, bool append=True)
 Perform an analytic-waveform synthetic scan with an explicit return mode.
 
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.
 
None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaGtheta (ctypes.POINTER(ULiDARcloud) cloud_ptr, ctypes.POINTER(UContext) context_ptr, float Gtheta, int min_voxel_hits, float element_width)
 Calculate leaf area using a caller-supplied G(theta), without requiring triangulation.
 
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.
 
bool pyhelios.wrappers.ULiDARWrapper.isLiDARGPUAvailable (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Return True if a CUDA-capable GPU is available for collision-detection acceleration.
 
bool pyhelios.wrappers.ULiDARWrapper.isLiDARGPUAccelerationEnabled (ctypes.POINTER(ULiDARcloud) cloud_ptr)
 Return True if GPU acceleration is currently enabled for collision detection.
 
 pyhelios.wrappers.ULiDARWrapper.mock_createLiDARcloud (*args, **kwargs)
 
 pyhelios.wrappers.ULiDARWrapper.mock_lidar_operation (*args, **kwargs)
 

Variables

 pyhelios.wrappers.ULiDARWrapper.LiDARProgressCallback = ctypes.CFUNCTYPE(None, ctypes.c_float, ctypes.c_char_p)
 
 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