Max Krehbiel

All projects

LiDAR Terrain Lab

Before a cedar-removal job on Heart 7, I needed two answers: how many acres the brush and young trees had taken over, and where water goes when it rains. Airborne LiDAR answers both, because every laser return records the height of whatever it hit.

This separates ground returns from vegetation, builds bare-earth and canopy-height models on a 1 meter grid, routes water across the terrain to find drainage lines, and totals acreage by vegetation height and by management zone.

LiDAR Terrain Lab: example output

View the code (opens in a new tab)Read the README (opens in a new tab)Open the live report (opens in a new tab)

Google Earth file (KMZ)

The problem

Size a brush-removal job and map drainage before spending money in the field.

What I built

A package that classifies ground returns, builds bare-earth, surface and canopy-height models, fills depressions, routes surface flow, and totals vegetation acreage by height class and zone.

What it produces

Map images, a GeoTIFF bundle, GeoJSON, a Google Earth file and a report, each scored against a synthetic landscape with known answers.

Grew out of scoping a $130K cedar-removal program on Heart 7 Ranch. The demo runs on a synthetic landscape; real runs use public USGS data.

The demo landscape is synthetic. Real runs read public USGS 3DEP point clouds, downloaded at run time and never committed.

In pictures

Overview of the synthetic 400 m scene: bare-earth terrain with drainage, vegetation by height, contributing area and slope class.
Bare-earth terrain from the synthetic point cloud, with 19.9 m of relief and the extracted drainage lines in blue.
Vegetation height classes across three synthetic management units; shrub and small-tree treatment area totals 5.0 acres.
Canopy height, surface minus bare earth, for every synthetic cell with growth at least 0.5 m tall; the tallest crown is 11.9 m.
Contributing area for each cell of the synthetic scene, with 1,070 m of drainage line where more than 0.48 ha drains through.
Slope classes for the synthetic scene: 61% of the area is under 5 degrees and the steepest ground lines the channel banks.

How it works

  1. Read. LAS or LAZ tiles, cropped to a study box, with flagged noise dropped.
  2. Ground. Labels ground returns, using the provider's class or re-deriving it.
  3. Rasterize. Bare-earth, surface and canopy-height models on one 1 m grid.
  4. Terrain. Slope, aspect and shaded relief from the bare earth.
  5. Hydrology. Fills depressions, routes flow and extracts drainage lines.
  6. Vegetation. Classes canopy height and totals acreage by class and zone.
  7. Export. Maps, GeoTIFFs, GeoJSON, a KMZ for Google Earth and a report.

Where to look in the code

README sections

Files