NadiNet

Method & evidence

One data source, one model family, one validation protocol, one alert path. Every number on this page was produced by code in the repository; the pipeline that made it is in scripts/run_pipeline.sh.

1. Data and detection

  • Reach: Jamuna from Kazipur to Chauhali, 24.10–24.85°N (~83 km), both mainland banks. Chosen for active erosion, the Bangabandhu Bridge as a fixed reference, and full coverage by one Sentinel-1 track.
  • Radar: every Sentinel-1 IW GRD pass of descending relative orbit 150 (~05:56 local) from Jan 2015 to Dec 2025, read straight from the public Copernicus archive on AWS. VV at 10 m and VH at 20 m are calibrated to σ⁰ with the product's own LUT, Lee-filtered, and geocoded onto a fixed 10 m UTM grid by inverting the product's GCP grid.
  • Water mask: per-scene Otsu threshold on VV dB; VH rescues wind-roughened water; opening and 0.5 ha blob cleaning.
  • Bank line: the braid belt (river-connected water plus the chars it encloses, with narrow khals cut away) is traced on 200 m transects cast from a baseline fixed once from the 2015 passes, as in USGS DSAS.
  • Stage: FFWC gauges and GloFAS were not reachable from the build environment, so river stage is proxied by open water inside the braid belt on each pass. No forecasts are used.
Median bank-position error vs Sentinel-2
20 m
90th percentile 499 m · mean signed 95 m
Water-mask IoU (median)
0.71
range 0.59–0.76 over 16 scene pairs
Label threshold
40 m
max(20 m, 2 × measured median error)

2. Labels and features

A segment is positive if its bank moved landward by at least the threshold between the pass of the forecast date and the pass nearest 28 days later. For the label only, positions are confirmed forward over 36 days (minimum over that window), so a flood edge that recedes is not counted as erosion. Features are strictly as-of: a unit test rebuilds them from data truncated at random dates and fails on any difference.

SplitForecast datesSegment-datesPositive rateMajor (≥100 m) events
Train 2015–2021158116,4476.5%3979
Calibrate 20222821,7986.1%753
Test 2023–20256546,1295.5%1346

3. Results on held-out years

Temporal hold-out: trained on 2015–2021, tuned and calibrated on 2022, scored once on 65 forecast dates in 2023–2025 (46,129 segment-dates, 5.5% positive).

MethodPrecision@20P@20, Jun–OctPR-AUCBrierMajor events in top 20
M1 — LightGBM, calibrated42.3%35.2%0.3780.0414389/1346 (29%)
B0 — persistence
retreat over the last 84 days
4.1%4.1%0.0410.051732/1346 (2%)
B1 — history
retreat over the last 12 months
5.1%3.8%0.0490.051823/1346 (2%)

Model − persistence, precision@20: 38.2 pts (95% CI 30.6 to 46.7); monsoon dates only 31.0 pts (17.8 to 44.5).

Spatial hold-out (trained on the 436 upstream segments, tested on the 434 downstream segments, 2023–2025): model 36.1% vs persistence 4.8%; difference 31.2 pts (95% CI 23.8 to 39.8).

Reliability on 2023–2025

Does a predicted 30% mean 30% of segments eroded? Dot size = number of segment-dates.

Model, calibratedPersistence, calibratedPerfect calibration

Ablation: remove one feature group

Change in test precision@20 (percentage points) versus the full model. Coherence and the surrogate were not built.

4. Claims ledger

Generated by python -m src.claims from the metrics files. Only “Measured” rows are quoted anywhere.

ClaimStatusMeasured value / how
Radar bank lines match Sentinel-2 within a median of 20 mMeasured
median 20 m, 90th pct 499 m over 7912 transect comparisons in 16 S1/S2 pairs (≤2 days apart, independent of the geolocation fit); IoU median 0.71 vs optical active channel, 0.38 vs open water only
Comparison against cloud-free Sentinel-2 L2A (MNDWI) scenes of tile 45RYH
Detection runs on every pass from 2015 to 2025 for the chosen reachMeasured
271 of 271 track-150 passes in the archive processed
Count of passes processed versus passes available in the public Sentinel-1 archive
Model beats persistence on precision@20 for 2023–2025Measured
P@20 42.3% vs 4.1%; difference +38.2 pts (95% CI +30.6 to +46.7), 65 forecast dates
Temporal hold-out, moving-block bootstrap over forecast dates
Model beats persistence on the downstream half of the reachMeasured
P@20 36.1% vs 4.8%; difference +31.2 pts (95% CI +23.8 to +39.8)
Spatial hold-out: trained upstream half, tested downstream half, 2023–2025
Risk probabilities are calibratedMeasured
Brier 0.0414 vs persistence 0.0517; expected calibration error 0.013
Brier score and reliability diagram on test years (target: ECE ≤ 0.05 and Brier below persistence)
Time from a pass becoming available to an updated mapMeasured
processing median 112 s per pass on 5 recent passes (4 vCPU, Linux x86_64, Python 3.13.16); archive latency (sensing → on AWS) median 2.9 h
Timed end-to-end runs (download → mask → banks → features → ranked list)
Radar coherence adds predictive valueNot builtNeeds SLC interferometric processing; not built in this run, so no claim is made
24-hour collapse forecastDroppedNot supported by the 6–12 day revisit
Sub-meter risk mapsDroppedNot supported by 10 m pixels
Bed shear stress and pore pressure from satelliteDroppedNo bathymetry and no ground truth
Zero-shot use on any river on EarthDroppedEach river needs its own retraining and test
92.4% precision on 1,500 events, 1.42 s, 1.2 GB VRAMDroppedNever measured

5. Limitations

  • One track, one reach. Revisit is 12 days on this track (S1B was lost in Dec 2021 and rarely acquired it), with longer gaps in 2015–16 and mid-2024.
  • Stage is a radar proxy, not a gauge. Archived water-level forecasts were not available, so the model has no forward-looking forcing.
  • Sentinel-2 validation covers only the part of the reach inside tile 45RYH (north of ~24.30°N) and dry-season dates.
  • Labels come from the same radar masks as the features; systematic mask errors (e.g. bright wet sand) can affect both.
  • No thermal-noise removal or terrain flattening; geolocation relies on the product's GCP grid.
  • Reasons describe what the model used, not proven causes. The model has never been used with real officials.

6. Data and licences

  • Copernicus Sentinel-1 GRD and Sentinel-2 L2A (ESA/EU, free and open), via AWS Open Data buckets.
  • Copernicus DEM GLO-30 (© DLR/Airbus, provided under COPERNICUS by the EU and ESA), optional bank-height feature.
  • JRC Global Surface Water (Pekel et al., 2016) used only to look at the river before choosing the reach.