PROJECT NAME Flood Damage from Space: Trishuli
TAGLINE From raw Sentinel-1 to "who is cut off": a reproducible flood and damage pipeline for the Trishuli valley, Nepal, checked against Copernicus EMSR927.
INSPIRATION When monsoon floods and debris flows hit Himalayan valleys, responders need three answers fast: where the water is, what it hit, and which villages can no longer reach a hospital. Clouds hide optical imagery when it matters most, so we built the pipeline around radar and processed the raw data ourselves rather than using ready-made products.
WHAT IT DOES
- Flood extent: processes raw Sentinel-1 GRD in ESA SNAP (orbit, calibration, speckle filter, terrain correction), then runs same-track pre/post change detection. A previous-acquisition null pair sets the thresholds, and a layover/shadow mask is applied. Sentinel-2 is used when the sky is clear.
- AI water segmentation: a 5-model U-Net ensemble trained on Sen1Floods11 and Kuro Siwo (S1 + Copernicus DEM, flip TTA). It scores water IoU 0.669 on the test split.
- Damage: overlays the flood and change classes on pre-event OpenStreetMap (an ohsome snapshot taken before the event) to count exposed buildings, roads and hospitals. At the baseline threshold, 556 structures are exposed, with a range of 244 to 1,078.
- Who is cut off: graph reachability from each settlement to a town or hospital on the pre-event road network, with flooded segments removed. Of 446 settlements, 301 stay reachable, 141 had no pre-flood path, and 4 are cut off: Devighat and Betrawati in Nepal, plus two settlements north of Rasuwa Gadhi across the border. 18 sensitivity scenarios give the full range.
- Copilot and reporting: a 1-page situation report in English and Nepali, with every number read from the pipeline outputs, plus an interactive dashboard and a 6-page technical report.
VALIDATION (EMSR927, used only for checking) EMSR927 maps landslide and damage polygons, not flood extent, so we score against it on those terms. On the held-out Bidur area (AOI03), strict precision is 0.93, recall 0.17 and IoU 0.16. A blob-relocation chance baseline and a 1 km block bootstrap test whether this agreement beats chance. We also cross-checked the SNAP route against the Planetary Computer RTC product (IoU 0.362).
HOW WE BUILT IT Python, ESA SNAP (gpt), PyTorch / segmentation-models-pytorch, rasterio, GeoPandas, SciPy sparse graphs, the ohsome API, Microsoft Planetary Computer STAC, Kaggle GPUs for training, and Folium/Leaflet for the dashboard. We used only free and open data: Sentinel-1, Sentinel-2, Copernicus DEM GLO-30 and pre-event OSM. A clean clone reproduces the case study within 1%, and all 54 tests pass.
CHALLENGES
- Steep Himalayan terrain causes radar layover and shadow, and debris flows don't look like open water.
- No reference flood-extent map exists for this event, so we could only validate against what EMSR927 actually maps.
- Sentinel-2 chips over the valley never met a 70% clear-sky rule, so the optical checks stay qualitative.
WHAT WE'RE PROUD OF The pipeline runs end to end from raw data, and a judge can point it at any bbox and date. We set thresholds with null pairs instead of tuning on the answer key. Every limitation is stated next to the number it affects.
LIMITATIONS (stated in full in the report)
- The AI model detects open-water-like patterns, not debris flows. Against a Sentinel-2 pseudo-reference over Trishuli its IoU is only 0.061, so SNAP change detection is the headline product.
- Thresholds for the Terai plains are uncalibrated (fewer than 3 reference dates).
- The AI river-corridor test is not separable from its null (0.009 vs 0.008).
- The Nepali report needs native-speaker review.
WHAT WE LEARNED In mountain floods, radar processing and terrain masking mattered more than model size. Our U-Net ensemble scored well on its test split but reached an IoU of only 0.061 over Trishuli. The null tests also caught things a clean-looking map would have hidden, like the AI river-corridor result being no better than its null.
WHAT'S NEXT Debris-flow-specific training labels, calibration for the Terai, a GPU fast path for live use, and native-speaker review of the Nepali sitrep.
BUILT WITH python, esa-snap, pytorch, segmentation-models-pytorch, rasterio, geopandas, scipy, openstreetmap, ohsome, sentinel-1, sentinel-2, copernicus-dem, planetary-computer, kaggle, leaflet
LINKS Code: https://github.com/MANIKANTH678/trishuli-flood-mapping Report: docs/REPORT.pdf in the repo Video: https://www.youtube.com/watch?v=GDmMkj99c0Q
ATTRIBUTION Contains modified Copernicus Sentinel data 2026. Produced using Copernicus WorldDEM-30 © DLR e.V. 2010–2014 and © Airbus Defence and Space GmbH 2014–2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. European Union, Copernicus Emergency Management Service data (EMSR927, validation only). Map data © OpenStreetMap contributors
Log in or sign up for Devpost to join the conversation.