1.3.64
 
Loading...
Searching...
No Matches
ScanMetadata Struct Reference

Structure containing metadata for a terrestrial scan. More...

#include <LiDAR.h>

Public Member Functions

 ScanMetadata ()
 Default LiDAR scan data structure.
 
 ScanMetadata (const helios::vec3 &origin, uint Ntheta, float thetaMin, float thetaMax, uint Nphi, float phiMin, float phiMax, float exitDiameter, float beamDivergence, const std::vector< std::string > &columnFormat)
 Create a LiDAR scan data structure.
 
helios::SphericalCoord rc2direction (uint row, uint column) const
 Convert the (row,column) of hit point in a scan to a direction vector.
 
helios::int2 direction2rc (const helios::SphericalCoord &direction) const
 Convert the scan ray direction into (row,column) table index.
 

Data Fields

std::string data_file
 File containing hit point data.
 
uint Ntheta
 Number of zenithal angles in scan (rows)
 
float thetaMin
 Minimum zenithal angle of scan in radians.
 
float thetaMax
 Maximum zenithal angle of scan in radians.
 
uint Nphi
 Number of azimuthal angles in scan (columns)
 
float phiMin
 Minimum azimuthal angle of scan in radians.
 
float phiMax
 Maximum azimuthal angle of scan in radians.
 
helios::vec3 origin
 (x,y,z) coordinate of scanner location
 
float exitDiameter
 Diameter of laser pulse at exit from the scanner.
 
float beamDivergence
 Divergence angle of the laser beam in radians.
 
std::vector< std::string > columnFormat
 Vector of strings specifying the columns of the scan ASCII file for input/output.
 

Detailed Description

Structure containing metadata for a terrestrial scan.

A scan is initialized by providing 1) the origin of the scan (see origin), 2) the number of zenithal scan directions (see Ntheta), 3) the range of zenithal scan angles (see thetaMin, thetaMax), 4) the number of azimuthal scan directions (see Nphi), 5) the range of azimuthal scan angles (see phiMin, phiMax). This creates a grid of Ntheta x Nphi scan points which are all initialized as misses. Points are set as hits using the addHitPoint() function. There are various functions to query the scan data.

Definition at line 187 of file LiDAR.h.

Constructor & Destructor Documentation

◆ ScanMetadata() [1/2]

ScanMetadata::ScanMetadata ( )

Default LiDAR scan data structure.

Definition at line 21 of file LiDAR.cpp.

◆ ScanMetadata() [2/2]

ScanMetadata::ScanMetadata ( const helios::vec3 origin,
uint  Ntheta,
float  thetaMin,
float  thetaMax,
uint  Nphi,
float  phiMin,
float  phiMax,
float  exitDiameter,
float  beamDivergence,
const std::vector< std::string > &  columnFormat 
)

Create a LiDAR scan data structure.

Parameters
[in]origin(x,y,z) position of the scanner
[in]NthetaNumber of scan points in the theta (zenithal) direction
[in]thetaMinMinimum scan angle in the theta (zenithal) direction in radians
[in]thetaMaxMaximum scan angle in the theta (zenithal) direction in radians
[in]NphiNumber of scan points in the phi (azimuthal) direction
[in]phiMinMinimum scan angle in the phi (azimuthal) direction in radians
[in]phiMaxMaximum scan angle in the phi (azimuthal) direction in radians

Member Function Documentation

◆ direction2rc()

helios::int2 ScanMetadata::direction2rc ( const helios::SphericalCoord direction) const

Convert the scan ray direction into (row,column) table index.

Parameters
[in]directionSpherical vector corresponding to the ray direction for the given hit point.
Returns
(row,column) table index for the given hit point

Definition at line 62 of file LiDAR.cpp.

◆ rc2direction()

helios::SphericalCoord ScanMetadata::rc2direction ( uint  row,
uint  column 
) const

Convert the (row,column) of hit point in a scan to a direction vector.

Parameters
[in]rowIndex of hit point in the theta (zenithal) direction.
[in]columnIndex of hit point in the phi (azimuthal) direction.
Returns
Spherical vector corresponding to the ray direction for the given hit point.

Definition at line 54 of file LiDAR.cpp.

Field Documentation

◆ beamDivergence

float ScanMetadata::beamDivergence

Divergence angle of the laser beam in radians.

Note
This is not needed for discrete return instruments, and is only used for synthetic scan generation.

Definition at line 246 of file LiDAR.h.

◆ columnFormat

std::vector<std::string> ScanMetadata::columnFormat

Vector of strings specifying the columns of the scan ASCII file for input/output.

Definition at line 249 of file LiDAR.h.

◆ data_file

std::string ScanMetadata::data_file

File containing hit point data.

Definition at line 205 of file LiDAR.h.

◆ exitDiameter

float ScanMetadata::exitDiameter

Diameter of laser pulse at exit from the scanner.

Note
This is not needed for discrete return instruments, and is only used for synthetic scan generation.

Definition at line 240 of file LiDAR.h.

◆ Nphi

uint ScanMetadata::Nphi

Number of azimuthal angles in scan (columns)

Definition at line 221 of file LiDAR.h.

◆ Ntheta

uint ScanMetadata::Ntheta

Number of zenithal angles in scan (rows)

Definition at line 208 of file LiDAR.h.

◆ origin

helios::vec3 ScanMetadata::origin

(x,y,z) coordinate of scanner location

Definition at line 234 of file LiDAR.h.

◆ phiMax

float ScanMetadata::phiMax

Maximum azimuthal angle of scan in radians.

Note
Azimuthal angles start at 0 (x=+,y=0) to 2pi (x=0,y=+) through 2pi.

Definition at line 231 of file LiDAR.h.

◆ phiMin

float ScanMetadata::phiMin

Minimum azimuthal angle of scan in radians.

Note
Azimuthal angles start at 0 (x=+,y=0) to 2pi (x=0,y=+) through 2pi.

Definition at line 226 of file LiDAR.h.

◆ thetaMax

float ScanMetadata::thetaMax

Maximum zenithal angle of scan in radians.

Note
Zenithal angles range from 0 (upward) to pi (downward).

Definition at line 218 of file LiDAR.h.

◆ thetaMin

float ScanMetadata::thetaMin

Minimum zenithal angle of scan in radians.

Note
Zenithal angles range from -pi/2 (downward) to +pi/2 (upward).

Definition at line 213 of file LiDAR.h.


The documentation for this struct was generated from the following files: