Airborne LiDAR, post-event
- Python
- laspy
- SciPy
- GeoPandas
- pyproj
- Overpass API
- Leaflet
- GPX
Structural Triage Engine
Turns a post-earthquake laser scan into a ranked inspection list and a field route, on day one, with no internet connection.
- The problem
- Hours after an earthquake, a municipal government has thousands of standing buildings and a handful of qualified inspectors. Nothing tells them where to start, and connectivity is usually the first thing to fail.
- Who it serves
- Municipal building-safety departments, civil protection units, and disaster-response NGOs working the first 72 hours.
- What I built
- A prototype relative-priority heuristic, packaged as an offline-first Python CLI. One command takes a post-event airborne LiDAR point cloud and returns a self-contained interactive priority map plus an optimised GPX route for the crew that has to drive it.
- Result
- Runs unchanged on two independent post-disaster datasets from different countries, coordinate systems and construction typologies — Haiti 2010 and Kumamoto 2016.
- Main limitation
- The score ranks buildings relative to their neighbours in one scan. It is not a damage classification, and it has not been checked against engineer-assigned damage grades.
Read the full technical case study
- How it works
- Four geometric indicators per building footprint: vertical distribution entropy at 40%, a heuristic signal associated with irregular or debris-filled returns; point density irregularity at 30% for chaotic scatter; roof planarity RMSE at 20% by least-squares plane fitting; and point count deficit at 10% against expected intact-roof return density. Footprints come from OSM via the Overpass API. Percentile ranking assigns Critical, High, Moderate and Low tiers, and route order is nearest-neighbour within each tier — Critical first, shortest travel.
- Validation
- Haiti 2010, magnitude 7.0, 17.9 million points, EPSG:32618, informal concrete-block construction. Kumamoto 2016, magnitude 7.0, 8 million points, EPSG:2444, Japanese timber frame. Same codebase, no changes between runs.
- Limits and next steps
- The indicators are heuristics chosen for physical plausibility, not calibrated parameters — the engine says which buildings look least like their neighbours, not that a building is unsafe. Scoring against engineer-assigned damage grades is the validation that would make it operational. A real deployment would also need multi-crew route assignment and sync, authentication, and pre-event baseline scans to separate new damage from pre-existing condition.