NadiNet

Sentinel-1 radar · Jamuna, Bangladesh · 2015–2025

Watching the Jamuna's banks through monsoon cloud.

NadiNet maps the river's banks after every free Sentinel-1 radar pass and tells local officials which 200 m stretches are most likely to lose land in the next 28 days — tested against what really happened.

Bank line vs Sentinel-2
20 m median error
16 cloud-free scene pairs, 7,912 transect checks
Top-20 hit rate, 2023–2025
42% vs 4%
model vs persistence, 65 held-out forecast dates
Radar passes processed
271 of 271
every descending track-150 pass, Jan 2015 – Dec 2025
Sentinel-1 radar, 2025-07-13
Sentinel-2 optical, 2025-07-14
Optical, 14 Jul 2025 · 99% cloud Radar, 13 Jul 2025
Same reach, same monsoon week. Left: Sentinel-2 true colour, mostly cloud. Right: Sentinel-1 VV backscatter — water is dark, land bright, and the bank line is visible through the cloud. Drag the slider to compare.

The problem

The Jamuna is one of the world's largest braided rivers. Its banks shift by tens to hundreds of metres in a single season, taking homes, farmland and embankments with them — and much of that happens during the monsoon, exactly when help has the least information to work with.

Optical satellites go blind

Monsoon cloud hides the river from Sentinel-2 and Landsat for weeks at a time, right when banks are failing.

Boats can't survey safely

High, fast water makes field surveys dangerous during peak flow, so bank lines go unmeasured for months.

Predictions are annual

CEGIS publishes respected annual erosion predictions. Nobody publishes a pass-by-pass monsoon update with a tested short-horizon ranking.

How it works

Six small steps, each tested on its own. Everything runs on open data.

  1. 1

    Radar pass

    Sentinel-1 VV/VH, track 150, every 12 days. Calibrated, speckle-filtered, geocoded to 10 m.

  2. 2

    Water mask

    Per-scene Otsu threshold on VV, VH rescue for wind-roughened water, small blobs cleaned.

  3. 3

    Bank lines

    Braid-belt edge measured on 871 transects, every 200 m along both mainland banks.

  4. 4

    Features

    Recent retreat, channel distance, char shielding, river stage, season — only data before the forecast date.

  5. 5

    28-day risk

    LightGBM, isotonic calibration, SHAP reasons. Always shown next to persistence.

  6. 6

    Human decides

    Officials get the brief. A Warning reaches residents only after an official approves it.

Evidence, not claims

Every number below came out of an experiment in the repository. The test years 2023–2025 were held out and scored once. Anything not measured is labelled as a target.

Full results
Minimum levelreached

Median bank error ≤ 20 m and detection across the full 2015–2025 archive

Good levelreached

Model beats persistence on test precision@20, bootstrap 95% CI excludes zero

Strong levelreached

Beats persistence on temporal and spatial hold-outs, with a lower Brier score

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

Who it's for

  • Upazila and union disaster management committees and BWDB field offices along the Sirajganj–Tangail reach: a weekly ranked list of segments, with reasons, to target inspections and emergency works.
  • NGOs working in char and riverbank areas: the same list to plan relocation support and cash transfers before a segment fails.
  • Riverbank households, reached only through those institutions: an official approves each Warning before a prerecorded Bangla voice call and SMS goes out.

What it does not claim

  • No 24-hour collapse forecast — radar revisits every 12 days on this track.
  • No sub-metre maps — pixels are 10 m; results are per 200 m segment.
  • No bed shear stress or pore pressure — the riverbed can't be seen from space.
  • No “works on any river” — every new river is retrained and retested.
  • No all-clear — the absence of an alert does not mean a bank is safe.

Pick any date in 2023–2025. See what the model knew, then what happened.