Joining 80k parcels to zoning without a single script
Spatially join 80,000 parcels to zoning polygons from PostGIS, flag conflicts, and export styled map layers plus a clean planning file — no scripts.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Read ground-classified LiDAR, per-return-period rainfall rasters, and the storm-drain network with CRS intact.
Grid a hydro-conditioned DEM, compute flow accumulation, and threshold depth against a live return-period slider.
Drape the risk over terrain in 3D and export a GeoTIFF, a glTF scene, and a per-district report.
Spatially join 80,000 parcels to zoning polygons from PostGIS, flag conflicts, and export styled map layers plus a clean planning file — no scripts.
Model post-closure pit-lake rebound in LSD — krige borehole heads against a NetCDF recharge grid and deliver a live 3D drawdown model plus report.
Validate 63 LAS drillhole logs against collar surveys, krige a lithology block model, and export one glTF the whole team can open.
Build churn features from Postgres events and Parquet snapshots, catch a leaky window visually, and score the holdout with ONNX — on one canvas.
Score a million-row Parquet batch with an ONNX model — training-identical normalization, live previews, scored Parquet and metrics out.
Turn raw LAS/LAZ sweeps from a mobile robot into a nav-ready occupancy grid and 3D map — registration to export with zero scripts.
Sync CSV sensor logs with live REST telemetry, flag outliers and dropouts, and score every robot pass/fail before the field trial.
Turn folders of line-scan images and a label CSV into an ONNX defect-segmentation pipeline with overlay QA and a per-coil defect report.
Turn GeoTIFF orthomosaics into a stitched land-cover raster with per-class area stats, using tiled ONNX segmentation you can preview at every step.
Align CMM measurement points to a nominal CAD mesh, compute point-to-surface deviation, and export a color-mapped glTF model with a pass/fail report.
Resample a week of machine sensor logs, baseline each tag, and flag drift and step changes on a live dashboard with a ranked maintenance shortlist.
Join a live meter feed to 85 campus building meshes, aggregate it hourly, and paint a 3D heat-map that repaints as energy use shifts, plus a weekly report.
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.
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.
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.