![]() |
0.1.33
|
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, float scan_azimuth_offset=0.0) |
| Add a LiDAR scan to the point cloud. | |
| int | 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 | 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 | 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 | 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 | getLiDARScanMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the acquisition mode (0 = static raster, 1 = moving raster, 2 = spinning, 3 = Risley prism). | |
| int | getLiDARScanStepsPerRev (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the number of azimuth firing steps per revolution (spinning scans; 0 otherwise). | |
| float | getLiDARScanRotationRate (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the sensor-head rotation rate in revolutions/second (spinning scans; 0 otherwise). | |
| float | getLiDARScanRevolutions (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the number of revolutions the sensor head made (spinning scans; 0 otherwise). | |
| List[List[float]] | getLiDARScanRisleyPrisms (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the rotating wedge prisms of a Risley-prism scan. | |
| float | 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 | getLiDARScanReturnMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the return-reporting mode (0 = multi, 1 = single). | |
| None | setLiDARScanReturnMode (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, int return_mode) |
| Set the return-reporting mode (0 = multi, 1 = single). | |
| int | 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 | 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 | getLiDARScanMaxReturns (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the maximum returns per pulse used in single/limited-return mode. | |
| None | 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 | getLiDARScanPulseWidth (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the pulse width / range resolution (meters) of a scan (0 = use syntheticScan argument). | |
| None | 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 | getLiDARScanDetectionThreshold (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the detection threshold (energy fraction, noise floor) of a scan. | |
| None | setLiDARScanDetectionThreshold (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID, float detection_threshold) |
| Set the detection threshold (energy fraction, noise floor) of a scan. | |
| 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. | |
| float | getLiDARScanAzimuthOffset (ctypes.POINTER(ULiDARcloud) cloud_ptr, int scanID) |
| Get the global scanner azimuth (heading) offset 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] | getLiDARHitOrigin (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index) |
| Get the (x,y,z) beam-emission origin 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. | |
| getLiDARHitsXYZRGB_all_np (ctypes.POINTER(ULiDARcloud) cloud_ptr, int n) | |
| Bulk-export XYZ + RGB for all hits as numpy arrays (no per-element Python). | |
| 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] | 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 | 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). | |
| 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). | |
| getLiDARHitScanID_all (ctypes.POINTER(ULiDARcloud) cloud_ptr, int n) | |
| Bulk-export the scan ID of every hit as an (n,) int32 numpy array. | |
| 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 | 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 | lidarSetExternalTriangulation (ctypes.POINTER(ULiDARcloud) cloud_ptr, xyz_flat, scan_ids, int tri_count) |
| Replace the internal triangulation with an externally-supplied mesh. | |
| 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 | 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 | 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] | getLiDARCellCenterUnrotated (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index) |
| Get the UNROTATED (axis-aligned lattice) center position of a grid cell. | |
| List[float] | getLiDARCellSize (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index) |
| Get size of a grid cell. | |
| float | getLiDARCellRotation (ctypes.POINTER(ULiDARcloud) cloud_ptr, int index) |
| Get azimuthal rotation of a grid cell about the z-axis, in degrees. | |
| 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 | setLiDARCancelFlag (ctypes.POINTER(ULiDARcloud) cloud_ptr, flag) |
| Register an external cancellation flag polled during syntheticScan. | |
| None | setLiDARSyntheticScanMemoryBudget (ctypes.POINTER(ULiDARcloud) cloud_ptr, int bytes) |
| Set the soft memory budget (bytes) for syntheticScan's transient trace buffers. | |
| int | getLiDARSyntheticScanMemoryBudget (ctypes.POINTER(ULiDARcloud) cloud_ptr) |
| Get the soft memory budget (bytes) for syntheticScan's transient buffers. | |
| None | setLiDARSyntheticScanProgressPointer (ctypes.POINTER(ULiDARcloud) cloud_ptr, ptr) |
| Register an external per-scan progress counter polled during syntheticScan. | |
| None | setLiDARProgressCallback (ctypes.POINTER(ULiDARcloud) cloud_ptr, callback) |
| Register a progress callback fired with (progress_fraction, message) during syntheticScan. | |
| 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 | 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 | 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. | |
| None | 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 | 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. | |
| bool | isLiDARGPUAvailable (ctypes.POINTER(ULiDARcloud) cloud_ptr) |
| Return True if a CUDA-capable GPU is available for collision-detection acceleration. | |
| bool | isLiDARGPUAccelerationEnabled (ctypes.POINTER(ULiDARcloud) cloud_ptr) |
| Return True if GPU acceleration is currently enabled for collision detection. | |
| mock_createLiDARcloud (*args, **kwargs) | |
| mock_lidar_operation (*args, **kwargs) | |
| None | _require_lidar_1384 () |
| Raise if the native library predates the helios-core 1.3.84 LiDAR additions. | |
| int | gapfillLiDARMissesCount (cloud_ptr) |
| Gapfill every scan, returning only the number of points added. | |
| int | gapfillLiDARMissesCountScan (cloud_ptr, int scanID, bool gapfill_grid_only, bool add_flags) |
| Gapfill one scan, returning only the number of points added. | |
| int | getLiDARVirtualMissCount (cloud_ptr) |
| Number of gap-filled misses currently held in virtualized form. | |
| dict | getLiDARCroppedReturnStats (cloud_ptr) |
| Returns the last leaf-area inversion inferred from target_count, as a dict of counts. | |
| bool | hasLiDARVirtualMisses (cloud_ptr) |
| Whether any gap-filled miss is currently held in virtualized form. | |
| None | materializeLiDARMisses (cloud_ptr) |
| Convert every virtualized gap-filled miss into a stored hit point. | |
| getLiDARScanGridDirection (cloud_ptr, int scanID, int row, int column) | |
| Beam direction at a scan-grid cell as (radius, elevation, azimuth). | |
| getLiDARHitXYZColumn (cloud_ptr, int count) | |
| Read every hit's position in index order in one pass. | |
| getLiDARHitScanIDColumn (cloud_ptr, int count) | |
| Read every hit's scan ID in index order in one pass. | |
| int | estimateLiDARHitPointMemory (cloud_ptr, int hit_count) |
Estimated resident bytes for a cloud of hit_count points. | |
| None | setLiDARMaxHitPoints (cloud_ptr, int max_hits) |
| Set the cap on stored hit points (0 disables the check). | |
| int | getLiDARMaxHitPoints (cloud_ptr) |
| Current cap on stored hit points. | |
| int | getLiDARDefaultMaxHitPoints () |
| Default cap on the number of stored hit points in a cloud. | |
| None | reserveLiDARHitPoints (cloud_ptr, int hit_count) |
| Reserve capacity for hit points and every scalar-data column at once. | |
| None | setLiDARExactPathLengths (cloud_ptr, bool exact) |
| Keep every beam path length exactly, instead of binning them. | |
| bool | getLiDARExactPathLengths (cloud_ptr) |
| Whether path lengths are accumulated exactly. | |
| None | _require_lidar_1385 () |
| Raise if the native library predates the helios-core 1.3.85 LiDAR additions. | |
| bool | lidarIsMultiReturnData (cloud_ptr) |
| Whether any hit has target_count > 1 (the switch triangulateHitPoints() branches on). | |
| None | calculateLiDARLeafAreaGthetaPerCell (cloud_ptr, context_ptr, List[float] Gtheta_per_cell, int min_voxel_hits, float element_width) |
| Calculate leaf area with one caller-supplied G(theta) per grid cell, without triangulation. | |
| None | _require_lidar_1386 () |
| Raise if the native library predates the helios-core 1.3.86 LiDAR additions. | |
| None | createLiDARHitDataColumn (cloud_ptr, str label, int type_code) |
| Create a per-hit scalar-data column with an explicit storage type. | |
| int | getLiDARHitDataType (cloud_ptr, str label) |
| Storage type of an existing column as the HitDataType ABI integer (raises if unknown). | |
| List[float] | getLiDARHitDataColumnF32 (cloud_ptr, str label, int n, float absent_value=-9999.0) |
| Bulk-export a named scalar column as 32-bit floats (no widening of a FLOAT32 column). | |
| getLiDARHitDataColumnF32_np (cloud_ptr, str label, int n, float absent_value=-9999.0) | |
| Bulk-export a named scalar column as an (n,) float32 numpy array. | |
| List[int] | getLiDARHitDataColumnI32 (cloud_ptr, str label, int n, int absent_value=-9999) |
| Bulk-export a named scalar column as 32-bit ints. | |
| getLiDARHitDataColumnI32_np (cloud_ptr, str label, int n, int absent_value=-9999) | |
| Bulk-export a named scalar column as an (n,) int32 numpy array. | |
| None | addLiDARHitPointsBulk (cloud_ptr, int scanID, xyz, dir_spherical=None, Optional[List[str]] labels=None, values=None) |
| Bulk-ingest hit points through the native addHitPoints path. | |
| None | deleteLiDARHitPoints (cloud_ptr, int first, int count) |
| Delete hits [first, first+count), preserving the order of the rest. | |
| None | setLiDARTriangulationSink (cloud_ptr, callback) |
| Register a per-scan triangulation sink. | |
| None | setLiDARSyntheticScanHitSink (cloud_ptr, callback) |
| Register a synthetic-scan chunk sink. | |
| int | getLiDARScanHitCount (cloud_ptr, int scanID) |
| Number of hit points (stored returns plus virtualized misses) belonging to one scan. | |
| List[int] | getLiDARScanHitIndices (cloud_ptr, int scanID, int n) |
| Global hit indices of one scan, in the order the per-scan readers use. | |
| getLiDARScanHitXYZColumn (cloud_ptr, int scanID, int n) | |
| Read one scan's hit positions in a single pass, as a list of (x, y, z) tuples. | |
| List[float] | getLiDARScanHitDataColumn (cloud_ptr, int scanID, str label, int n, float absent_value=-9999.0) |
| Read one scan's values of a scalar-data label as doubles. | |
| List[float] | getLiDARScanHitDataColumnF32 (cloud_ptr, int scanID, str label, int n, float absent_value=-9999.0) |
| Read one scan's values of a scalar-data label as 32-bit floats. | |
| List[int] | getLiDARScanHitDataColumnI32 (cloud_ptr, int scanID, str label, int n, int absent_value=-9999) |
| Read one scan's values of a scalar-data label as 32-bit ints. | |
| _ijk_array (ijk, str name) | |
| Marshal a 3-element lattice index into a c_int[3]. | |
| None | calculateLiDARLeafAreaBlock (cloud_ptr, context_ptr, int min_voxel_hits, float element_width, ijk_min, ijk_max) |
| Calculate leaf area for only a block of the voxel grid (triangulation supplies G(theta)). | |
| None | calculateLiDARLeafAreaGthetaBlock (cloud_ptr, context_ptr, float Gtheta, int min_voxel_hits, float element_width, ijk_min, ijk_max) |
| Calculate leaf area for a block of the grid with a caller-supplied G(theta). | |
| None | calculateLiDARLeafAreaGthetaPerCellBlock (cloud_ptr, context_ptr, List[float] Gtheta_per_cell, int min_voxel_hits, float element_width, ijk_min, ijk_max) |
| Calculate leaf area for a block of the grid with one G(theta) per grid cell. | |
| Tuple[int, int, int] | getLiDARCellGlobalIJK (cloud_ptr, int index) |
| Lattice index (i, j, k) of a grid cell. | |
| Tuple[int, int, int] | getLiDARGridGlobalCount (cloud_ptr) |
| Number of lattice cells (nx, ny, nz); raises if the grid is empty or irregular. | |
| int | getLiDARHitPointCapacity (cloud_ptr) |
| Number of hit points the cloud can hold before its arrays reallocate. | |
Variables | |
| LiDARProgressCallback = ctypes.CFUNCTYPE(None, ctypes.c_float, ctypes.c_char_p) | |
| LiDARTriangulationSinkCallback | |
| LiDARSyntheticScanHitSinkCallback | |
| argtypes | |
| restype | |
| errcheck | |
| bool | _LIDAR_FUNCTIONS_AVAILABLE |
| bool | _LIDAR_1384_AVAILABLE |
| bool | _LIDAR_1385_AVAILABLE |
| bool | _LIDAR_1386_AVAILABLE |
| bool | _LIDAR_CROPPED_RETURNS_AVAILABLE |
| createLiDARcloud () = mock_createLiDARcloud | |
| Create LiDARcloud instance. | |
| addLiDARScan = mock_lidar_operation | |
| addLiDARHitPoint = mock_lidar_operation | |
| tuple | _CROPPED_RETURN_STATS_FIELDS |
|
protected |
Automatic error checking for all LiDAR functions.
Definition at line 25 of file ULiDARWrapper.py.
|
protected |
Marshal a 3-element lattice index into a c_int[3].
Definition at line 3126 of file ULiDARWrapper.py.
|
protected |
Raise if the native library predates the helios-core 1.3.84 LiDAR additions.
Definition at line 2722 of file ULiDARWrapper.py.
|
protected |
Raise if the native library predates the helios-core 1.3.85 LiDAR additions.
Definition at line 2867 of file ULiDARWrapper.py.
|
protected |
Raise if the native library predates the helios-core 1.3.86 LiDAR additions.
Definition at line 2905 of file ULiDARWrapper.py.
| 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 2220 of file ULiDARWrapper.py.
| 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 2268 of file ULiDARWrapper.py.
| 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.
Definition at line 2239 of file ULiDARWrapper.py.
| 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 1764 of file ULiDARWrapper.py.
| 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 1780 of file ULiDARWrapper.py.
| 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 1805 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.addLiDARHitPointsBulk | ( | cloud_ptr, | |
| int | scanID, | ||
| xyz, | |||
| dir_spherical = None, | |||
| Optional[List[str]] | labels = None, | ||
| values = None ) |
Bulk-ingest hit points through the native addHitPoints path.
xyz is an (n, 3) float64 array. dir_spherical is an (n, 3) float32 array of (radius, elevation, azimuth), or None to derive each direction from the point's position relative to the scan origin. values is (n, len(labels)) float64.
Definition at line 2986 of file ULiDARWrapper.py.
| 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 1824 of file ULiDARWrapper.py.
| 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.
Definition at line 1216 of file ULiDARWrapper.py.
| 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.
traj_rot entries are length-4 quaternions (qx,qy,qz,qw) if rot_is_quaternion is True, otherwise length-3 roll/pitch/yaw Euler angles (radians, intrinsic Z-Y-X).
Definition at line 1255 of file ULiDARWrapper.py.
| 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.
traj_quat entries are length-4 quaternions (qx,qy,qz,qw), Hamilton body->world.
Definition at line 1399 of file ULiDARWrapper.py.
| 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.
prisms is a list of 4-element [wedge_angle, refractive_index, rotor_rate, phase] entries in beam-traversal order (at least one). traj_rot entries are length-4 quaternions (qx,qy,qz,qw) if rot_is_quaternion is True, otherwise length-3 roll/pitch/yaw Euler angles (radians).
Definition at line 1465 of file ULiDARWrapper.py.
| 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.
beam_elevation_angles are per-channel ELEVATION angles above the horizon (radians), NOT zenith. traj_rot entries are length-4 quaternions (qx,qy,qz,qw) if rot_is_quaternion is True, otherwise length-3 roll/pitch/yaw Euler angles (radians, intrinsic Z-Y-X).
Definition at line 1325 of file ULiDARWrapper.py.
| 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 2652 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateLiDARHitGridCell | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Calculate hit point grid cell assignments.
Definition at line 2342 of file ULiDARWrapper.py.
| 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 2478 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaBlock | ( | cloud_ptr, | |
| context_ptr, | |||
| int | min_voxel_hits, | ||
| float | element_width, | ||
| ijk_min, | |||
| ijk_max ) |
Calculate leaf area for only a block of the voxel grid (triangulation supplies G(theta)).
Definition at line 3134 of file ULiDARWrapper.py.
| 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.
Suitable for moving-platform scans (which cannot be triangulated). Gtheta must be in (0,1] (0.5 = spherical leaf-angle distribution).
Definition at line 2509 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaGthetaBlock | ( | cloud_ptr, | |
| context_ptr, | |||
| float | Gtheta, | ||
| int | min_voxel_hits, | ||
| float | element_width, | ||
| ijk_min, | |||
| ijk_max ) |
Calculate leaf area for a block of the grid with a caller-supplied G(theta).
Definition at line 3144 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaGthetaPerCell | ( | cloud_ptr, | |
| context_ptr, | |||
| List[float] | Gtheta_per_cell, | ||
| int | min_voxel_hits, | ||
| float | element_width ) |
Calculate leaf area with one caller-supplied G(theta) per grid cell, without triangulation.
Gtheta_per_cell must have one entry per grid cell, in grid-cell order, every value in (0,1].
Definition at line 2886 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateLiDARLeafAreaGthetaPerCellBlock | ( | cloud_ptr, | |
| context_ptr, | |||
| List[float] | Gtheta_per_cell, | ||
| int | min_voxel_hits, | ||
| float | element_width, | ||
| ijk_min, | |||
| ijk_max ) |
Calculate leaf area for a block of the grid with one G(theta) per grid cell.
Gtheta_per_cell covers the whole grid, not just the block.
Definition at line 3158 of file ULiDARWrapper.py.
| 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 2486 of file ULiDARWrapper.py.
| 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 2495 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateSyntheticLiDARGtheta | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| ctypes.POINTER(UContext) | context_ptr ) |
Calculate synthetic G(theta) for validation.
Definition at line 2644 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.calculateSyntheticLiDARLeafArea | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| ctypes.POINTER(UContext) | context_ptr ) |
Calculate synthetic leaf area for validation.
Definition at line 2636 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.createLiDARHitDataColumn | ( | cloud_ptr, | |
| str | label, | ||
| int | type_code ) |
Create a per-hit scalar-data column with an explicit storage type.
type_code is the HitDataType ABI integer: 0=FLOAT64, 1=FLOAT32, 2=INT32.
Definition at line 2918 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.deleteLiDARHitPoint | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Delete a hit point from the cloud.
Definition at line 2028 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.deleteLiDARHitPoints | ( | cloud_ptr, | |
| int | first, | ||
| int | count ) |
Delete hits [first, first+count), preserving the order of the rest.
Definition at line 3028 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.destroyLiDARcloud | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Destroy LiDARcloud instance.
Definition at line 1210 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.disableLiDARCDGPUAcceleration | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Disable GPU acceleration for collision detection.
Definition at line 2675 of file ULiDARWrapper.py.
| 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 1906 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.enableLiDARCDGPUAcceleration | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Enable GPU acceleration for collision detection.
Definition at line 2668 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.estimateLiDARHitPointMemory | ( | cloud_ptr, | |
| int | hit_count ) |
Estimated resident bytes for a cloud of hit_count points.
Definition at line 2819 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.exportLiDARGtheta | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| str | filename ) |
Export G(theta) values for each grid cell.
Definition at line 2608 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreaDensities | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| str | filename ) |
Export leaf area densities for each grid cell.
Definition at line 2601 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.exportLiDARLeafAreas | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| str | filename ) |
Export leaf areas for each grid cell.
Definition at line 2594 of file ULiDARWrapper.py.
| 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 2185 of file ULiDARWrapper.py.
| 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 2177 of file ULiDARWrapper.py.
| 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 2192 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.exportLiDARTriangleAreas | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| str | filename ) |
Export triangle areas.
Definition at line 2587 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.exportLiDARTriangleNormals | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| str | filename ) |
Export triangle normal vectors.
Definition at line 2580 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.gapfillLiDARMisses | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Gapfill sky/miss points.
Definition at line 2629 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.gapfillLiDARMissesCount | ( | cloud_ptr | ) |
Gapfill every scan, returning only the number of points added.
Definition at line 2732 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.gapfillLiDARMissesCountScan | ( | cloud_ptr, | |
| int | scanID, | ||
| bool | gapfill_grid_only, | ||
| bool | add_flags ) |
Gapfill one scan, returning only the number of points added.
Definition at line 2738 of file ULiDARWrapper.py.
| 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 2519 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellCenter | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get center position of a grid cell.
Definition at line 2291 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellCenterUnrotated | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get the UNROTATED (axis-aligned lattice) center position of a grid cell.
Definition at line 2301 of file ULiDARWrapper.py.
| Tuple[int, int, int] pyhelios.wrappers.ULiDARWrapper.getLiDARCellGlobalIJK | ( | cloud_ptr, | |
| int | index ) |
Lattice index (i, j, k) of a grid cell.
Definition at line 3173 of file ULiDARWrapper.py.
| float pyhelios.wrappers.ULiDARWrapper.getLiDARCellGtheta | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get G(theta) value for a grid cell.
Definition at line 2615 of file ULiDARWrapper.py.
| 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 2540 of file ULiDARWrapper.py.
| float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafArea | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get leaf area of a grid cell.
Definition at line 2328 of file ULiDARWrapper.py.
| 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 2551 of file ULiDARWrapper.py.
| float pyhelios.wrappers.ULiDARWrapper.getLiDARCellLeafAreaDensity | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get leaf area density of a grid cell.
Definition at line 2335 of file ULiDARWrapper.py.
| 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 2533 of file ULiDARWrapper.py.
| 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 2526 of file ULiDARWrapper.py.
| 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.
Definition at line 2321 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARCellSize | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get size of a grid cell.
Definition at line 2311 of file ULiDARWrapper.py.
| dict pyhelios.wrappers.ULiDARWrapper.getLiDARCroppedReturnStats | ( | cloud_ptr | ) |
Returns the last leaf-area inversion inferred from target_count, as a dict of counts.
Definition at line 2763 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARDefaultMaxHitPoints | ( | ) |
Default cap on the number of stored hit points in a cloud.
Definition at line 2837 of file ULiDARWrapper.py.
| bool pyhelios.wrappers.ULiDARWrapper.getLiDARExactPathLengths | ( | cloud_ptr | ) |
Whether path lengths are accumulated exactly.
Definition at line 2855 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARGridCellCount | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Get number of grid cells.
Definition at line 2284 of file ULiDARWrapper.py.
| Tuple[int, int, int] pyhelios.wrappers.ULiDARWrapper.getLiDARGridGlobalCount | ( | cloud_ptr | ) |
Number of lattice cells (nx, ny, nz); raises if the grid is empty or irregular.
Definition at line 3181 of file ULiDARWrapper.py.
| 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 2565 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitColor | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get color of a hit point.
Definition at line 1889 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARHitCount | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Get total number of hit points.
Definition at line 1848 of file ULiDARWrapper.py.
| 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 1913 of file ULiDARWrapper.py.
| 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 1920 of file ULiDARWrapper.py.
| 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).
Definition at line 1963 of file ULiDARWrapper.py.
| 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.
Faster than getLiDARHitData_all for whole-field reads (single cache-linear pass over the contiguous native column). Entries are absent_value where the label is absent for a hit. Returns a list of doubles of length min(n, hit count).
Definition at line 1978 of file ULiDARWrapper.py.
| 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).
Definition at line 1997 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumnF32 | ( | cloud_ptr, | |
| str | label, | ||
| int | n, | ||
| float | absent_value = -9999.0 ) |
Bulk-export a named scalar column as 32-bit floats (no widening of a FLOAT32 column).
Definition at line 2930 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumnF32_np | ( | cloud_ptr, | |
| str | label, | ||
| int | n, | ||
| float | absent_value = -9999.0 ) |
Bulk-export a named scalar column as an (n,) float32 numpy array.
Definition at line 2942 of file ULiDARWrapper.py.
| List[int] pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumnI32 | ( | cloud_ptr, | |
| str | label, | ||
| int | n, | ||
| int | absent_value = -9999 ) |
Bulk-export a named scalar column as 32-bit ints.
Raises if any value is not a 32-bit integer; read such a label as doubles instead.
Definition at line 2957 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataColumnI32_np | ( | cloud_ptr, | |
| str | label, | ||
| int | n, | ||
| int | absent_value = -9999 ) |
Bulk-export a named scalar column as an (n,) int32 numpy array.
Definition at line 2969 of file ULiDARWrapper.py.
| 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).
Definition at line 1989 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARHitDataType | ( | cloud_ptr, | |
| str | label ) |
Storage type of an existing column as the HitDataType ABI integer (raises if unknown).
Definition at line 2924 of file ULiDARWrapper.py.
| 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.
For moving-platform scans this is the per-pulse origin; for static scans it falls back to the single scan origin of the hit's scan.
Definition at line 1869 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARHitPointCapacity | ( | cloud_ptr | ) |
Number of hit points the cloud can hold before its arrays reallocate.
Definition at line 3189 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitRaydir | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get ray direction of a hit point.
Definition at line 1879 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARHitScanID | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get the scan ID a hit point belongs to.
Definition at line 1899 of file ULiDARWrapper.py.
| 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.
Definition at line 2008 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.getLiDARHitScanIDColumn | ( | cloud_ptr, | |
| int | count ) |
Read every hit's scan ID in index order in one pass.
Definition at line 2809 of file ULiDARWrapper.py.
| 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 1933 of file ULiDARWrapper.py.
| 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).
Returns (xyz, rgb), each an (n, 3) float32 array. Much faster than the list-returning variant for million-point clouds — np.frombuffer copies the contiguous ctypes buffer in one shot.
Definition at line 1949 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARHitXYZ | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | index ) |
Get coordinates of a hit point.
Definition at line 1855 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.getLiDARHitXYZColumn | ( | cloud_ptr, | |
| int | count ) |
Read every hit's position in index order in one pass.
Definition at line 2799 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARMaxHitPoints | ( | cloud_ptr | ) |
Current cap on stored hit points.
Definition at line 2831 of file ULiDARWrapper.py.
| float pyhelios.wrappers.ULiDARWrapper.getLiDARMissDistance | ( | ) |
Return the LIDAR_MISS_DISTANCE constant (meters).
Definition at line 1712 of file ULiDARWrapper.py.
| 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 1757 of file ULiDARWrapper.py.
| float pyhelios.wrappers.ULiDARWrapper.getLiDARScanAzimuthOffset | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get the global scanner azimuth (heading) offset angle (radians) for a scan.
Definition at line 1672 of file ULiDARWrapper.py.
| 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 1686 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanCount | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Get number of scans in the cloud.
Definition at line 1719 of file ULiDARWrapper.py.
| float pyhelios.wrappers.ULiDARWrapper.getLiDARScanDetectionThreshold | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get the detection threshold (energy fraction, noise floor) of a scan.
Definition at line 1644 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.getLiDARScanGridDirection | ( | cloud_ptr, | |
| int | scanID, | ||
| int | row, | ||
| int | column ) |
Beam direction at a scan-grid cell as (radius, elevation, azimuth).
Definition at line 2788 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanHitCount | ( | cloud_ptr, | |
| int | scanID ) |
Number of hit points (stored returns plus virtualized misses) belonging to one scan.
Definition at line 3057 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARScanHitDataColumn | ( | cloud_ptr, | |
| int | scanID, | ||
| str | label, | ||
| int | n, | ||
| float | absent_value = -9999.0 ) |
Read one scan's values of a scalar-data label as doubles.
Definition at line 3085 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARScanHitDataColumnF32 | ( | cloud_ptr, | |
| int | scanID, | ||
| str | label, | ||
| int | n, | ||
| float | absent_value = -9999.0 ) |
Read one scan's values of a scalar-data label as 32-bit floats.
Definition at line 3098 of file ULiDARWrapper.py.
| List[int] pyhelios.wrappers.ULiDARWrapper.getLiDARScanHitDataColumnI32 | ( | cloud_ptr, | |
| int | scanID, | ||
| str | label, | ||
| int | n, | ||
| int | absent_value = -9999 ) |
Read one scan's values of a scalar-data label as 32-bit ints.
Definition at line 3111 of file ULiDARWrapper.py.
| List[int] pyhelios.wrappers.ULiDARWrapper.getLiDARScanHitIndices | ( | cloud_ptr, | |
| int | scanID, | ||
| int | n ) |
Global hit indices of one scan, in the order the per-scan readers use.
Definition at line 3063 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.getLiDARScanHitXYZColumn | ( | cloud_ptr, | |
| int | scanID, | ||
| int | n ) |
Read one scan's hit positions in a single pass, as a list of (x, y, z) tuples.
Definition at line 3074 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanMaxReturns | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get the maximum returns per pulse used in single/limited-return mode.
Definition at line 1616 of file ULiDARWrapper.py.
| 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).
Definition at line 1537 of file ULiDARWrapper.py.
| List[float] pyhelios.wrappers.ULiDARWrapper.getLiDARScanOrigin | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get origin of a specific scan.
Definition at line 1726 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanPattern | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get the scan pattern (0 = raster, 1 = spinning multibeam).
Definition at line 1679 of file ULiDARWrapper.py.
| 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).
Definition at line 1630 of file ULiDARWrapper.py.
| 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 1750 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanReturnMode | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get the return-reporting mode (0 = multi, 1 = single).
Definition at line 1588 of file ULiDARWrapper.py.
| 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).
Definition at line 1558 of file ULiDARWrapper.py.
| List[List[float]] pyhelios.wrappers.ULiDARWrapper.getLiDARScanRisleyPrisms | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get the rotating wedge prisms of a Risley-prism scan.
Returns a list of [wedge_angle, refractive_index, rotor_rate, phase] entries in beam-traversal order (empty for scans that are not Risley-prism).
Definition at line 1568 of file ULiDARWrapper.py.
| 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).
Definition at line 1581 of file ULiDARWrapper.py.
| 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).
Definition at line 1551 of file ULiDARWrapper.py.
| 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).
Definition at line 1602 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSizePhi | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get number of azimuthal scan points.
Definition at line 1743 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARScanSizeTheta | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID ) |
Get number of zenith scan points.
Definition at line 1736 of file ULiDARWrapper.py.
| 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).
Definition at line 1544 of file ULiDARWrapper.py.
| 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 1665 of file ULiDARWrapper.py.
| 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 1658 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARSyntheticScanMemoryBudget | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Get the soft memory budget (bytes) for syntheticScan's transient buffers.
Returns the explicitly configured budget, or 0 if using the automatic path-dependent default (4 GiB CPU / 8 GiB GPU).
Definition at line 2391 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARTriangleCount | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Get number of triangles in the mesh.
Definition at line 2067 of file ULiDARWrapper.py.
| 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 2100 of file ULiDARWrapper.py.
| 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 2081 of file ULiDARWrapper.py.
| int pyhelios.wrappers.ULiDARWrapper.getLiDARVirtualMissCount | ( | cloud_ptr | ) |
Number of gap-filled misses currently held in virtualized form.
Definition at line 2748 of file ULiDARWrapper.py.
| bool pyhelios.wrappers.ULiDARWrapper.hasLiDARVirtualMisses | ( | cloud_ptr | ) |
Whether any gap-filled miss is currently held in virtualized form.
Definition at line 2776 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.initializeLiDARCollisionDetection | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| ctypes.POINTER(UContext) | context_ptr ) |
Initialize CollisionDetection for ray tracing.
Definition at line 2660 of file ULiDARWrapper.py.
| bool pyhelios.wrappers.ULiDARWrapper.isLiDARGPUAccelerationEnabled | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Return True if GPU acceleration is currently enabled for collision detection.
Definition at line 2689 of file ULiDARWrapper.py.
| bool pyhelios.wrappers.ULiDARWrapper.isLiDARGPUAvailable | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Return True if a CUDA-capable GPU is available for collision-detection acceleration.
Definition at line 2682 of file ULiDARWrapper.py.
| 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 1698 of file ULiDARWrapper.py.
| 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).
Definition at line 2018 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarCoordinateRotation | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| List[float] | rotation ) |
Rotate all hit points by spherical rotation angles.
Definition at line 2047 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarCoordinateShift | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| List[float] | shift ) |
Translate all hit points by a shift vecto.
Definition at line 2035 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarDisableMessages | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Disable console output messages.
Definition at line 2206 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarDistanceFilter | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| float | maxdistance ) |
Filter hit points by maximum distance.
Definition at line 2149 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarEnableMessages | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Enable console output messages.
Definition at line 2213 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarFirstHitFilter | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Keep only first return hit points.
Definition at line 2163 of file ULiDARWrapper.py.
| bool pyhelios.wrappers.ULiDARWrapper.lidarHasMisses | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Return True if the cloud contains at least one miss.
Definition at line 1705 of file ULiDARWrapper.py.
| bool pyhelios.wrappers.ULiDARWrapper.lidarIsMultiReturnData | ( | cloud_ptr | ) |
Whether any hit has target_count > 1 (the switch triangulateHitPoints() branches on).
Definition at line 2877 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarLastHitFilter | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr | ) |
Keep only last return hit points.
Definition at line 2170 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.lidarReflectanceFilter | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| float | minreflectance ) |
Filter hit points by minimum reflectance.
Definition at line 2156 of file ULiDARWrapper.py.
| 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.
xyz_flat is (tri_count*9,) float32 laid out [v0x,v0y,v0z, v1x,v1y,v1z, v2x,v2y,v2z] per triangle (the same layout getLiDARTriangleVertices_all exports). scan_ids is (tri_count,) int32, one required source scan per triangle. No-op when tri_count is 0.
Definition at line 2125 of file ULiDARWrapper.py.
| 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 2059 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.loadLiDARXML | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| str | filename ) |
Load scan metadata from XML file.
Definition at line 2199 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.materializeLiDARMisses | ( | cloud_ptr | ) |
Convert every virtualized gap-filled miss into a stored hit point.
Definition at line 2782 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.mock_createLiDARcloud | ( | * | args, |
| ** | kwargs ) |
Definition at line 2697 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.mock_lidar_operation | ( | * | args, |
| ** | kwargs ) |
Definition at line 2703 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.reserveLiDARHitPoints | ( | cloud_ptr, | |
| int | hit_count ) |
Reserve capacity for hit points and every scalar-data column at once.
Definition at line 2843 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARCancelFlag | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| flag ) |
Register an external cancellation flag polled during syntheticScan.
flag is a ctypes.c_int (pass by ref) that, when set non-zero from another thread, aborts the scan's ray loop mid-trace. Pass None to clear.
Definition at line 2369 of file ULiDARWrapper.py.
| 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 2622 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARExactPathLengths | ( | cloud_ptr, | |
| bool | exact ) |
Keep every beam path length exactly, instead of binning them.
Definition at line 2849 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARMaxHitPoints | ( | cloud_ptr, | |
| int | max_hits ) |
Set the cap on stored hit points (0 disables the check).
Definition at line 2825 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARProgressCallback | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| callback ) |
Register a progress callback fired with (progress_fraction, message) during syntheticScan.
callback must be a LiDARProgressCallback ctypes instance (or None to clear). The caller is responsible for keeping the LiDARProgressCallback alive for as long as it is registered (ctypes does not hold a reference).
Definition at line 2414 of file ULiDARWrapper.py.
| 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.
Definition at line 1651 of file ULiDARWrapper.py.
| 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).
Definition at line 1623 of file ULiDARWrapper.py.
| 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).
Definition at line 1637 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARScanReturnMode | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | scanID, | ||
| int | return_mode ) |
Set the return-reporting mode (0 = multi, 1 = single).
Definition at line 1595 of file ULiDARWrapper.py.
| 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).
Definition at line 1609 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARSyntheticScanHitSink | ( | cloud_ptr, | |
| callback ) |
Register a synthetic-scan chunk sink.
callback must be a LiDARSyntheticScanHitSinkCallback instance (or None to clear). The caller is responsible for keeping it alive for as long as native code holds it.
Definition at line 3050 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARSyntheticScanMemoryBudget | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| int | bytes ) |
Set the soft memory budget (bytes) for syntheticScan's transient trace buffers.
Bounds the live ray-tracing scratch buffers so large scans are chunked rather than traced in one OOM-prone batch. bytes must be > 0; if never set, Helios uses an automatic path-dependent default (4 GiB CPU / 8 GiB GPU).
Definition at line 2381 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARSyntheticScanProgressPointer | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| ptr ) |
Register an external per-scan progress counter polled during syntheticScan.
ptr is a ctypes.c_int (pass by ref) into which syntheticScan writes the 0-based index of the scan currently being ray-traced, set to getScanCount() when finished. Pass None to clear.
Definition at line 2402 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.setLiDARTriangulationSink | ( | cloud_ptr, | |
| callback ) |
Register a per-scan triangulation sink.
callback must be a LiDARTriangulationSinkCallback instance (or None to clear). The caller is responsible for keeping it alive for as long as native code holds it.
Definition at line 3039 of file ULiDARWrapper.py.
| None pyhelios.wrappers.ULiDARWrapper.syntheticLiDARScan | ( | ctypes.POINTER(ULiDARcloud) | cloud_ptr, |
| ctypes.POINTER(UContext) | context_ptr ) |
Perform synthetic discrete-return LiDAR scan.
Definition at line 2349 of file ULiDARWrapper.py.
| 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 2357 of file ULiDARWrapper.py.
| 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 2424 of file ULiDARWrapper.py.
| 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 2443 of file ULiDARWrapper.py.
| 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.
return_mode is 0 (multi) or 1 (single); it overrides each scan's stored returnMode for this call only. In single mode up to each scan's maxReturns returns per pulse are reported.
Definition at line 2462 of file ULiDARWrapper.py.
| 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 2433 of file ULiDARWrapper.py.
|
protected |
Definition at line 2756 of file ULiDARWrapper.py.
|
protected |
Definition at line 906 of file ULiDARWrapper.py.
|
protected |
Definition at line 985 of file ULiDARWrapper.py.
|
protected |
Definition at line 1019 of file ULiDARWrapper.py.
|
protected |
Definition at line 1180 of file ULiDARWrapper.py.
|
protected |
Definition at line 891 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.addLiDARHitPoint = mock_lidar_operation |
Definition at line 2712 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.addLiDARScan = mock_lidar_operation |
Definition at line 2711 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.argtypes |
Definition at line 49 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.createLiDARcloud = mock_createLiDARcloud |
Create LiDARcloud instance.
Definition at line 2710 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.errcheck |
Definition at line 51 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.LiDARProgressCallback = ctypes.CFUNCTYPE(None, ctypes.c_float, ctypes.c_char_p) |
Definition at line 31 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.LiDARSyntheticScanHitSinkCallback |
Definition at line 42 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.LiDARTriangulationSinkCallback |
Definition at line 36 of file ULiDARWrapper.py.
| pyhelios.wrappers.ULiDARWrapper.restype |
Definition at line 50 of file ULiDARWrapper.py.