Terrestrial LiDAR Point Clouds
modelling Level 4

Terrestrial LiDAR Point Clouds

How tall are these trees? What's the precise elevation of this landslide scarp? LiDAR (Light Detection and Ranging) uses laser pulses to measure distances, creating dense 3D point clouds. This model derives time-of-flight ranging, implements ground point classification, calculates canopy height models, and extracts topographic derivatives from high-resolution LiDAR data.

Prerequisites: laser ranging, time of flight, point cloud processing, surface extraction

Updated 14 min read

1. The Question

What’s the forest canopy height and how does ground elevation vary beneath it?

LiDAR (Light Detection and Ranging) measures distance by timing laser pulse returns.

How it works:

  1. Emit laser pulse (typically 905 or 1064 nm)
  2. Pulse reflects off surface
  3. Measure round-trip time
  4. Calculate distance: $d = ct/2$
  5. Combine with position (GPS) and orientation (IMU) to get 3D coordinates

Key advantages:

  • Active sensor (day/night operation)
  • Penetrates vegetation canopy (multiple returns)
  • Centimeter-level vertical accuracy
  • Dense sampling (1-100 points/m²)

Platforms:

  • Airborne (aircraft, helicopter): Large area mapping
  • UAV/drone: Flexible, lower cost
  • Mobile (vehicle-mounted): Corridor mapping
  • Terrestrial (tripod): Ultra-high density, limited extent

Applications:

  • High-resolution DEMs (bare earth topography)
  • Forest structure (canopy height, biomass)
  • Urban 3D models (buildings, infrastructure)
  • Archaeology (detect subtle features under vegetation)
  • Coastal mapping (beaches, dunes)
  • Powerline corridor management

2. The Conceptual Model

Time-of-Flight Ranging

Basic principle:

\[d = \frac{c t}{2}\]

Where:

  • $d$ = distance to target (m)
  • $c$ = speed of light (3 × 10⁸ m/s)
  • $t$ = round-trip time (s)
  • Factor of 2: Light travels to target and back

Example:

Target 100 m away:

\[t = \frac{2d}{c} = \frac{200}{3 \times 10^8} = 6.67 \times 10^{-7} \text{ s} = 667 \text{ ns}\]

Requires nanosecond timing precision.

Multiple Returns

Laser pulse encounters multiple surfaces:

Example - forest:

  1. Top of canopy (first return)
  2. Mid-canopy branches (intermediate returns)
  3. Ground (last return)

Discrete return systems:

Record up to 4-7 returns per pulse.

Full-waveform systems:

Record entire return signal, extract arbitrary number of returns.

Use:

  • First return → canopy height map (DSM - Digital Surface Model)
  • Last return → ground elevation (DTM - Digital Terrain Model)
  • All returns → vegetation structure

Point Cloud Structure

Each point has:

  • X, Y, Z coordinates (3D position)
  • Intensity (return signal strength)
  • Return number (1st, 2nd, …, last)
  • Classification (ground, vegetation, building, …)
  • RGB color (if fused with imagery)

Typical dataset:

1 km² at 10 points/m² = 10 million points

File formats:

  • LAS/LAZ (binary, compressed)
  • ASCII (text, large files)

Canopy Height Model (CHM)

Definition:

\[\text{CHM} = \text{DSM} - \text{DTM}\]

Where:

  • DSM = Digital Surface Model (top surface, first returns)
  • DTM = Digital Terrain Model (bare ground, last returns)

Result: Height above ground for each location.

Applications:

  • Forest inventory (tree height, volume, biomass)
  • Habitat mapping
  • Fire fuel load estimation

3. Building the Mathematical Model

Coordinate Transformation

Sensor-centric coordinatesground coordinates

Range and angles:

  • $r$ = measured range
  • $\theta$ = scan angle
  • $\phi$ = roll angle

Sensor frame to ground frame:

\[\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \begin{bmatrix} X_0 \\ Y_0 \\ Z_0 \end{bmatrix} + \mathbf{R} \begin{bmatrix} r\sin\theta\cos\phi \\ r\sin\theta\sin\phi \\ r\cos\theta \end{bmatrix}\]

Where:

  • $(X_0, Y_0, Z_0)$ = GPS position of sensor
  • $\mathbf{R}$ = rotation matrix from IMU (orientation)

Errors propagate:

GPS error (~5 cm vertical), IMU error (~0.01°), range error (~1 cm) combine.

Total vertical accuracy: Typically 5-15 cm (airborne), 1-5 cm (terrestrial).

Ground Point Classification

Challenge: Identify which points are ground vs. vegetation/buildings.

Progressive morphological filter:

Algorithm:

  1. Create initial grid at coarse resolution
  2. Find minimum elevation in each cell (likely ground)
  3. Fit surface to minima
  4. Calculate residuals for all points
  5. Points within threshold of surface → ground
  6. Repeat at finer resolutions

Threshold selection:

\[t = s \times w + z_{threshold}\]

Where:

  • $s$ = slope-dependent factor
  • $w$ = window size
  • $z_{threshold}$ = base threshold (~0.15 m)

Steep terrain: Larger threshold needed.

Cloth Simulation Filter (CSF):

Alternative method:

  1. Invert point cloud (flip upside down)
  2. Simulate cloth falling onto inverted surface
  3. Points contacting cloth = ground

Advantages: Robust in complex terrain.

Canopy Metrics from Point Clouds

Height percentiles:

For all points in area (e.g., 20m plot):

  • Sort by height above ground
  • Extract percentiles (25th, 50th, 75th, 95th)

Example:

  • 25th percentile = 5 m (understory)
  • 50th percentile = 12 m (mid-canopy)
  • 95th percentile = 25 m (canopy top)

Canopy cover:

\[\text{Cover} = \frac{N_{\text{veg}}}{N_{\text{total}}} \times 100\%\]

Where:

  • $N_{\text{veg}}$ = returns above threshold (e.g., 2m)
  • $N_{\text{total}}$ = all returns

Leaf Area Index (LAI) proxy:

Related to return density and penetration ratio.

\[\text{LAI} \approx -\ln\left(\frac{N_{\text{ground}}}{N_{\text{total}}}\right)\]

Tree segmentation:

  1. Create CHM
  2. Apply local maxima filter → tree tops
  3. Watershed segmentation → individual tree crowns
  4. Extract per-tree metrics (height, crown area, volume)

4. Worked Example by Hand

Problem: Calculate canopy height from LiDAR returns.

Point cloud data (simplified, 10 returns):

Point X (m) Y (m) Z (m) Return
1 100 200 345.2 1st
2 100.5 200 342.8 2nd
3 100 200 338.5 Last
4 101 201 344.9 1st
5 101 201 338.7 Last
6 102 202 346.5 1st
7 102.5 202 343.1 2nd
8 102 202 339.2 Last
9 103 203 338.9 1st
10 103 203 338.8 Last

Note: Points 9-10 are ground returns (no canopy).

Calculate ground elevation, canopy height, and metrics.

Solution

Step 1: Identify ground points

Last returns typically hit ground (if penetration occurs).

Ground elevations (last returns):

  • Point 3: 338.5 m
  • Point 5: 338.7 m
  • Point 8: 339.2 m
  • Point 10: 338.8 m

Also point 9 (first return = last return → open area).

Step 2: Estimate ground surface

Average ground elevation:

\[Z_{\text{ground}} = \frac{338.5 + 338.7 + 339.2 + 338.8 + 338.9}{5} = 338.8 \text{ m}\]

(In practice, would interpolate spatially)

Step 3: Calculate canopy heights

Height above ground = Z - Z_ground:

  • Point 1 (canopy top): 345.2 - 338.8 = 6.4 m
  • Point 2 (mid-canopy): 342.8 - 338.8 = 4.0 m
  • Point 4 (canopy top): 344.9 - 338.8 = 6.1 m
  • Point 6 (canopy top): 346.5 - 338.8 = 7.7 m
  • Point 7 (mid-canopy): 343.1 - 338.8 = 4.3 m

Step 4: Summary statistics

Canopy heights: 6.4, 4.0, 6.1, 7.7, 4.3 m

  • Minimum: 4.0 m
  • Maximum: 7.7 m
  • Mean: 5.7 m
  • Median: 6.1 m

Step 5: Canopy cover

Vegetation points (height > 2m): 5 points
Total points: 10

\[\text{Cover} = \frac{5}{10} \times 100\% = 50\%\]

Summary:

  • Ground elevation: ~338.8 m
  • Canopy height range: 4-7.7 m
  • Mean canopy height: 5.7 m
  • Canopy cover: 50%

Interpretation: Moderate canopy (6-8 m typical for small trees/shrubs), 50% open.


5. Computational Implementation

Below is an interactive LiDAR point cloud analyzer.

Total points: --

Ground points: -- (--%)

Mean ground elev: -- m

Max canopy height: -- m

Canopy cover: --%

Observations:

  • Green points show canopy/building tops (first returns)
  • Light green shows intermediate vegetation returns
  • Brown points show ground surface (last returns)
  • Forest scenarios show clear vertical stratification
  • Urban buildings show flat tops and sharp transitions
  • Point density affects detail captured
  • Bare ground shows all returns at surface
  • Multiple returns enable seeing through vegetation to ground

Key insights:

  • LiDAR penetrates canopy to measure ground beneath forest
  • Multiple returns reveal 3D vegetation structure
  • Dense point clouds enable centimeter-scale terrain mapping
  • Classification separates ground from non-ground features
  • Combination of first and last returns produces DSM and DTM

6. Interpretation

Forestry Applications

Plot-level inventory:

Traditional field measurement: Labor-intensive, sample-based.

LiDAR approach:

  • 100% coverage
  • Tree-level metrics automatically
  • Consistent, objective

Biomass estimation:

Allometric relationships:

\[\text{Biomass} = a \times H^b \times \text{Crown Area}^c\]

Where parameters calibrated with field plots.

Accuracy: ±10-15% for plot-level biomass.

Commercial value:

Timber volume estimation without expensive field crews.

Geomorphology

High-resolution DEMs reveal subtle features:

Landslides:

  • Scarps (elevation discontinuities)
  • Hummocky deposits
  • Lateral margins

Active faults:

  • Offset streams
  • Scarps
  • Deformation patterns

Glacial features:

  • Moraines
  • Drumlins
  • Meltwater channels

Example - Puget Lowland, Washington:

Airborne LiDAR through forest canopy reveals:

  • Unmapped faults
  • Thousands of landslides
  • Seismic hazard reassessment

Archaeological Applications

Jungle-covered sites:

Traditional surveys miss features under dense vegetation.

LiDAR penetrates canopy:

Example - Angkor, Cambodia:

  • Massive urban complex revealed
  • Irrigation networks
  • Previously unknown temples

Example - Maya cities, Central America:

  • Pyramids, platforms, causeways
  • Agricultural terraces
  • Entire city layouts

Non-invasive: No excavation required for mapping.

Flood modelling

High-resolution DTMs improve hydraulic modelling:

Bare earth elevation essential for:

  • Flow direction
  • Inundation extent
  • Flood depth

1m LiDAR DTM vs 30m SRTM:

Order of magnitude better accuracy in flood prediction.

Critical infrastructure:

Levee heights measured to ±5cm enables failure risk assessment.


7. What Could Go Wrong?

Water Absorption

Near-infrared laser (905, 1064 nm) absorbed by water.

Problem:

No returns from water surface (appears as data gaps).

Impact:

  • Rivers/lakes unmapped
  • Intertidal zones missing
  • Flooded areas invisible

Solution:

  • Bathymetric LiDAR (green laser, 532 nm penetrates water)
  • Combine with other data sources
  • Mark as “no data” rather than incorrect elevation

Dense Vegetation

Some canopies too dense for penetration:

  • Bamboo
  • Dense tropical forest
  • Agricultural crops (mature corn)

Result: Ground points sparse or absent.

Impact: DTM interpolation errors.

Solution:

  • Higher pulse density
  • Multiple flight lines (different angles)
  • Acknowledge limitation in data gaps

Scan Angle Effects

Off-nadir points have:

  • Lower point density
  • Reduced penetration
  • Geometric distortion

Typical maximum scan angle: ±15-20° from nadir

Solution:

  • Flight planning (adequate overlap)
  • Angle-dependent filtering

Classification Errors

Automated ground classification fails at:

  • Steep slopes
  • Sharp terrain breaks
  • Low vegetation (difficult to distinguish from ground)
  • Cars, boulders (classified as ground incorrectly)

Impact:

  • DTM artifacts
  • Bridges included in terrain (should be excluded)

Solution:

  • Manual editing for critical areas
  • Multiple classification algorithms
  • Validation against field data

8. Extension: Full-Waveform LiDAR

Discrete return systems: Record peak locations only.

Full-waveform: Records entire return signal.

Advantages:

More information:

  • Weak returns detectable (undergrowth)
  • Return width (target roughness)
  • Multiple returns per object

Canopy density:

Waveform integral proportional to leaf area encountered.

Ground in dense canopy:

Gaussian decomposition extracts ground return from composite signal.

Challenge: Data volume (100× larger than discrete).

Research applications:

  • Detailed forest structure
  • Biomass estimation
  • Snow depth (dual-wavelength)

9. Math Refresher: 3D Coordinate Systems

Cartesian Coordinates

Position vector:

\[\mathbf{p} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}\]

Distance between points:

\[d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2}\]

Spherical Coordinates

Alternative representation:

\[\begin{align} x &= r \sin\theta \cos\phi \\ y &= r \sin\theta \sin\phi \\ z &= r \cos\theta \end{align}\]

Where:

  • $r$ = radial distance (range)
  • $\theta$ = zenith angle (from vertical)
  • $\phi$ = azimuth angle

LiDAR measures $(r, \theta, \phi)$ then converts to $(x,y,z)$.

Rotation Matrices

Orientation from IMU:

\[\mathbf{R} = \mathbf{R}_z(\psi) \mathbf{R}_y(\theta) \mathbf{R}_x(\phi)\]

Where $\psi, \theta, \phi$ = yaw, pitch, roll.

Transform point:

\[\mathbf{p}_{\text{ground}} = \mathbf{R} \mathbf{p}_{\text{sensor}} + \mathbf{t}\]

Where $\mathbf{t}$ = translation (GPS position).


Summary

  • LiDAR measures distance via laser pulse time-of-flight enabling 3D point cloud generation
  • Multiple returns per pulse penetrate vegetation revealing ground beneath canopy
  • Ground point classification separates terrain from vegetation and buildings
  • Canopy Height Model derived as difference between surface and terrain models
  • Point cloud densities of 1-100 pts/m² enable centimeter-scale elevation mapping
  • Applications span forestry biomass, geomorphology, archaeology, and flood modelling
  • Forestry metrics include tree height, canopy cover, and structure from automated analysis
  • Challenges include water absorption, dense vegetation, and classification errors
  • Full-waveform systems capture complete return signal for enhanced information extraction
  • Critical tool for high-resolution 3D mapping and vegetation structure analysis

References