← Back to the Atlas

Methods / Model card

How the model was built and tested.

A flood segmentation model for Sentinel-1 radar, trained and scored on a public benchmark, then run on Italian events as a qualitative demonstration.

Accuracy is reported only on the benchmark test set. Italian maps carry no accuracy claim.

Task
Per-pixel segmentation of Sentinel-1 radar into no water, permanent water and flood.
Input
Six bands, VV and VH in decibels: one post-event and two pre-event images, terrain-corrected at 10 m.
Model
U-Net with 1,929,347 parameters, exported to ONNX (opset 18, 7.8 MB).
Training
21,462 water-containing chips of 224 × 224 pixels from the Kuro Siwo benchmark’s official training events; 3 seeds of 30 epochs.
Selection
Seed 1, epoch 6, chosen by flood IoU on validation events at locations not used in training (0.658; seeds 0.634–0.658).
Baseline
A fixed two-date rule fitted on training pixels only: flood where post-event VV ≤ −13.5 dB and it dropped by at least 1.75 dB from the pre-event mean.

15,896 chips from 10 held-out events, model and baseline on the same 787.3 M pixels. No test chip overlaps a training or validation chip.

Benchmark test scores, model against baseline
ClassModel P / R / IoUBaseline P / R / IoU
Flood0.821 / 0.739 / 0.6360.651 / 0.764 / 0.542
Permanent water0.6170.321
Any water0.841 / 0.815 / 0.7060.663 / 0.852 / 0.594

P precision, R recall, IoU intersection over union. Permanent water: IoU only.

  • The model gains mainly through precision: 6.2 M false-flood pixels against 15.7 M for the baseline, at slightly lower recall.
  • The labels are expert interpretations of the same radar images, so scores measure agreement with that interpretation, not with independent ground truth.
  • Flood probabilities are not well calibrated in the middle range; they are shown as scores, not as likelihoods.
Agreement
On 135.9 M validation pixels, ONNX Runtime differs from PyTorch float32 on 1 pixel and from the evaluated predictions on 0.010%; flood IoU changes by 0.00046.
Speed
1.3–1.5 megapixels per second on 4 cores of a local Intel Core Ultra 7 265H, standing in for a small server; one 224 × 224 chip takes 0.038 s.
Memory
About 1.4 GiB per input megapixel with the default memory arena, 0.66 GiB without it.
On this site
Maps are computed offline and published as static images; nothing runs on a server when you visit.
  • Benchmark accuracy describes the benchmark’s events and labels. It does not transfer to Italian floods, which the model never saw.
  • Radar sees open water. Water under vegetation, urban flooding and wet soil are likely missing from both the labels and the predictions.
  • Broad drops in backscatter without open water, such as soil moisture or crop change, can be labelled flood. Water already present before an event can be labelled permanent water.
  • The Italian inputs follow the benchmark’s processing with a different elevation model, and the scenes differ from the training data in season and level.
  • Kuro Siwo (Orion AI Lab), labeled GRD set, CC BY 4.0: arXiv:2311.12056.
  • Contains modified Copernicus Sentinel data (2023), processed with ESA SNAP.
  • © European Union, Copernicus Emergency Management Service (2023), EMSR664 AOI03 GRA_PRODUCT v1. Underlying optical imagery is not republished.
  • Terrain correction 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.
  • Map software: MapLibre GL JS and PMTiles; see the third-party licences.