Skip to content

Latest commit

 

History

History
93 lines (75 loc) · 6.85 KB

details.md

File metadata and controls

93 lines (75 loc) · 6.85 KB

Per-Point TPU for ALS Point Cloud Data

Three components are required to generate per-point total propagated uncertainty (TPU) for airborne laser scanning (ALS) point cloud data:

  1. The measurements used to compute the ground coordinates (xyz) of each point
  2. The uncertainty (i.e., variance or standard deviation) associated with each measurement
  3. The ALS sensor model.

The first component consists of lidar range, scanner angle, sensor location (lon/lat/height or xyz), sensor attitude (roll, pitch, heading), axes misalignment between the scanner and IMU (boresight roll, pitch, heading), and relative location between the scanner and IMU (lever arm xyz). The second component is simply the uncertainty for each of these measurements (also called observations). The third component - the sensor model - refers to the reference frame definitions for the inertial motion unit (IMU), scanner, local level coordinate system, and ground coordinate system and the rotation types and orders for the boresight and IMU angles.

The sensor model (third component) enables us to properly form the math in the standard ALS georeferencing equation:

Ground coordinates can then be generated by feeding the measurements (first component) into this equation. The measurements and ALS georeferencing equation also allow us to propagate measurement uncertainties (second component) into covariance matrices for each ground point, i.e., per-point TPU, via the General Law Of Propagation of Variance (GLOPOV).

Unfortunately, geospatial scientists and analysts are rarely, if ever, supplied with the three components necessary for per-point ALS TPU. Instead, they have access to point cloud data generated by proprietary software implementing a sensor-specific ALS georeferencing equation on raw sensor measurements. Even if the necessary information were available, a non-trivial algorithm would need to be developed to generate the TPU.

ALS TPU with PDAL

To address - in part - the challenge outlined above, a plugin filter, filters.als_tpu, has been developed for the Point Data Abstraction Library (PDAL) that enables generation of per-point ALS TPU estimates from lidar point clouds that have corresponding ALS sensor trajectory information. Trajectory information refers to the position (xyz) and attitude (roll, pitch, heading) of the ALS sensor at high frequency time intervals and can be estimated from ALS point cloud data via a separate PDAL plugin filter, filters.sritrajectory.

Within filters.als_tpu, a generic ALS sensor model (component three) is defined and the lidar range and scanner angle measurements for each point are inverted from the trajectory and point data. The only necessary measurements (component one) that are still missing are the boresight angles and lever arm displacements. These are set equal to zero, which has little impact on the final per-point TPU values since their actual magnitudes are quite small in practice.

To generate TPU for a single xyz ground coordinate triplet, each measurement required by the ALS georeferencing equation must have a corresponding uncertainty (component two). This includes those measurements that have been set equal to zero. Many of these uncertainties are assumed static for a given ALS collection campaign (boresight angles, lever arm displacements, sensor location and attitude), or we only have knowledge of a single estimate provided by the sensor manufacturer (lidar range, scanner angle). These uncertainties are not inferred from the data; the user must supply them.

User-Supplied Measurement Uncertainties

The best way to determine measurement uncertainties is to obtain the make and model of the lidar scanner and the inertial motion unit (IMU) comprising the ALS sensor used to collect the data. Datasheets with typical uncertainties for the lidar range and scanner angle (lidar scanner) and sensor position and attitude (IMU) can usually be found online. Boresight and lever arm uncertainties may require access to the ALS survey report or be estimated by rule of thumb or sources in the literature (e.g, Glennie's 2007 paper).

The measurement uncertainties are supplied to the als_tpu filter via a JSON file. Example JSON for channel 1 of an Optech Titan ALS is given below.

{
    "system": "Optech Titan channel 1 (1550nm, 3.5 degrees forward looking) with a Northrup Grumman LN200",
    "uncertainties": [
        {
            "name": "std_lidar_range",
            "source": "Titan datasheet",
            "value": 0.008
        },
        {
            "name": "std_scan_angle",
            "source": "not found, using angular resolution of 0.001 deg from Optech 3100 shown in Glennie's 2007 JAG paper",
            "value": 0.001
        },
        {
            "name": "std_sensor_xy",
            "source": "LN200 datasheet, airborne PP RMS = 0.01 meters",
            "value": 0.01
        },
        {
            "name": "std_sensor_z",
            "source": "LN200 datasheet, airborne PP RMS = 0.02 meters",
            "value": 0.02
        },
        {
            "name": "std_sensor_rollpitch",
            "source": "LN200 datasheet, PP RMS = 0.005 degrees",
            "value": 0.005
        },
        {
            "name": "std_sensor_yaw",
            "source": "LN200 datasheet, PP RMS = 0.007 degrees",
            "value": 0.007
        },
        {
            "name": "std_bore_rollpitch",
            "source": "unknown, using 0.001 degrees from Table 2 in Glennie's 2007 JAG paper",
            "value": 0.001
        },
        {
            "name": "std_bore_yaw",
            "source": "unknown, using 0.004 degrees from Table 2 in Glennie's 2007 JAG paper",
            "value": 0.004
        },
        {
            "name": "std_lever_xyz",
            "source": "unknown, using conservative estimate of 2cm from Glennie's 2007 JAG paper",
            "value": 0.02
        },
        {
            "name": "beam_divergence",
            "source": "Titan datasheet: 0.35 mrad at 1/e * sqrt(2) = 0.49 mrad at 1/e^2",
            "value": 0.49
        }
    ]
}

Note that the als_tpu filter is only concerned with the objects in the uncertainties array. Within each of these objects, the filter looks for the name and value keys. The system and source keys are ignored and can be omitted, but provide an example of one way to document the source of the uncertainty information. All possible uncertainties are shown in the above example. The filter will assign a value of zero to any uncertainty that is omitted. Note that the angular values must be given in degrees, the linear units in meters, and laser beam divergence must use the $1/e^2$ definition and be given in milliradians.