Sandbox — LSD is in active testing. All systems operational·payments are test-mode (no real charges).
Overview Use Cases News Docs Tool Store Support Community Get LSD
Use cases/ GIS/ Flood-risk mapping from LiDAR and rainfall rasters
Flood-depth raster draped over the LiDAR terrain in the 3D viewer with the return-period slider open replace with clip · 1600 × 900

Flood-risk mapping from LiDAR and rainfall rasters

Drop LAS/LAZ terrain, rainfall GeoTIFFs, and a drainage Shapefile on the canvas, condition a DEM, route flow accumulation, and threshold depth against a live return-period slider. You get a flood-risk raster, a scrubbable 3D flyover, and a per-district report from one pipeline. Point the load node at next season's rainfall and every export rebuilds itself.

▶ Video walkthrough Advanced ⏱ 40 min flood-risklidarhydrologyrainfalldem

The folder every flood study leaves behind#

By the end of a flood study there's always a graveyard of intermediates: a filled DEM someone made in one tool, flow grids from another, a rainfall raster resampled by hand, and a project file that only opens on one machine. Nobody remembers which storm the final map used. LSD replaces that graveyard with a single live canvas — the inputs stay put, and the risk map is always a fresh function of them, right down to the return-period slider you drag to compare storms.

What you'll need#

A few LAS/LAZ tiles of ground-classified LiDAR over your catchment, a rainfall GeoTIFF per return period (IDF grids from your met agency work fine), and a drainage Shapefile of culverts and channels. No PDAL, no Whitebox scripts, no conda environment that only built once. If you're just kicking the tires, the sample valley dataset bundled with LSD runs the whole thing end to end.

When the forecast changes#

This is where it earns its place. New IDF curves land, or the catchment gets re-flown after a storm, and you point the @load node at the new file. The conditioned DEM, the flow grids, and the risk raster recompute on their own from cache. The 3D flyover and the district report rebuild in a couple of minutes, and the planning team pulls the update without anyone re-running a notebook.

Step by step

How it's built

  1. #051 · Load 01

    Drop the terrain, rainfall, and drainage layers

    Drag the LiDAR tiles, the rainfall GeoTIFFs, and the drainage Shapefile onto the canvas together. LSD reads each into its own @load node — ground-classified returns, one raster per return period, and the storm-drain network — and previews all three in place. The inspector confirms every layer's CRS so nothing silently lands in the wrong spot.

    LiDAR tiles, rainfall rasters, and the drainage network previewed together on the canvas replace with screenshot · 1200 × 750
  2. 02

    Condition a DEM from the ground returns

    Add a @shape node that rasterizes the ground returns into a clean DEM, then chain a fill-and-breach step to remove the pits and flat spots that trap water artificially. The hillshade preview updates as you drag the breach depth, so you watch false sinks disappear. The conditioned DEM caches, so the routing steps never re-grid the point cloud.

    Hillshade of the conditioned DEM with filled sinks highlighted replace with screenshot · 1200 × 750
  3. 03

    Route the water with flow accumulation

    Chain a flow-direction node and a flow-accumulation node onto the conditioned DEM. The preview lights up the drainage network as bright accumulation lines, and dropping in the drainage Shapefile snaps modeled channels to the real culverts. Both grids are cached intermediates, so the depth step downstream recomputes in seconds.

    Flow-accumulation grid tracing the channel network over the terrain replace with screenshot · 1200 × 750
  4. #052 · Shape 04

    Threshold depth with live sliders

    Add a node that spreads each rainfall raster across the accumulated flow to estimate standing depth, then expose a return-period slider and a depth-threshold slider. Drag from the 10-year to the 100-year storm and watch the inundation footprint grow live over the map. Cells past the threshold flag as at-risk, everything below as dry.

    Return-period and depth-threshold sliders with the inundation footprint updating live replace with screenshot · 1200 × 750
  5. #053 · Deliver 05

    Fly the risk over the terrain

    Wire the risk grid into the 3D viewer and drape it over the LiDAR terrain. Scrub the camera down each valley to see which streets and parcels sit inside the 100-year footprint, and toggle return periods to compare scenarios in place. When a stakeholder asks about one block, you fly straight to it instead of re-rendering.

    3D flyover of the flood-risk raster draped over the valley terrain replace with screenshot · 1200 × 750
  6. 06

    Export the raster and district report

    Add a @deliver node set to GeoTIFF for the risk raster and glTF for the draped 3D scene, then attach a report template that rolls depth-class area up by district. Hit export and the raster, the scene, and a per-district report land in the shared folder together. Point the @load node at next season's rainfall and all three rebuild untouched.

    Export node with the risk GeoTIFF, glTF scene, and district report configured replace with screenshot · 1200 × 750
The pipeline

Every step used, at a glance

Load

Terrain, rainfall & drainage

Read ground-classified LiDAR, per-return-period rainfall rasters, and the storm-drain network with CRS intact.

LAS/LAZGeoTIFFShapefile
Shape

Condition, route & threshold

Grid a hydro-conditioned DEM, compute flow accumulation, and threshold depth against a live return-period slider.

Deliver

Risk raster, flyover & report

Drape the risk over terrain in 3D and export a GeoTIFF, a glTF scene, and a per-district report.

GeoTIFFglTF
10 → 100 yr
return periods compared with one slider
1 conditioned DEM
shared by every routing step
Zero scripts
from raw LiDAR to a district report

More use cases