River Lens: measured accuracy improvements

Prepared 2026-09-24 02:13. Historical satellite observations from 2023–2025. Real-time analysis is not part of this release.

Improved, but not accurate across all rivers. Held-out pixel performance improved. Later dates and longer river sections still show substantial errors; some per-river scores worsened. Keep the satellite-derived NDCI layer as the default. A model estimate is a separate output, not a measurement or a water-safety assessment.

What changed

The model uses nine satellite bands and 36 normalized spectral ratios. A spectral neural network estimates each pixel's NDCI; a bounded GraphSAGE correction uses neighbours within 120 metres. This reduces dependence on graph sampling density. The target-defining B05 band, target NDCI and neighbouring target labels are excluded from inputs.

Four regional clients are simulated on one computer. Each round combines client gradients weighted by training row counts and applies a server AdamW step. This is federated gradient averaging, not the earlier multi-local-epoch FedAvg implementation. It is not a deployment on four devices and does not provide a formal privacy guarantee.

Held-out locations and later dates

Shared evaluation rows and references are used for both models. R² is a regression score, not an accuracy percentage. Negative R² means worse squared error than predicting the evaluation set's reference mean.

evaluation method river RMSE MAE R2 rows
test Previous ALL 0.0388 0.0259 0.6856 20626
test Improved ALL 0.0230 0.0151 0.8896 20626
future Previous ALL 0.0536 0.0383 0.4394 14400
future Improved ALL 0.0442 0.0315 0.6194 14400

Unique pixel sites were split within each client. October–December 2025 were excluded from fitting. Training scalers use training rows only. Candidates and stopping rounds were selected by mean per-river validation RMSE; the winning checkpoint was frozen before these evaluation outcomes were read. Earlier project diagnostics were already seen, so this is a development comparison, not untouched external certification.

Every river: later-date results

evaluation method river RMSE MAE R2 rows
future Previous brahmaputra 0.0267 0.0235 -0.0581 1800
future Previous ganga 0.0137 0.0105 0.6252 1800
future Previous godavari 0.0311 0.0223 0.6228 1800
future Previous kaveri 0.0599 0.0516 0.3396 1800
future Previous mahanadi 0.0411 0.0375 0.3539 1800
future Previous narmada 0.0357 0.0274 -0.6299 1800
future Previous netravathi 0.1144 0.1053 -3.0540 1800
future Previous yamuna 0.0384 0.0283 0.3458 1800
future Improved brahmaputra 0.0160 0.0107 0.6169 1800
future Improved ganga 0.0211 0.0175 0.1157 1800
future Improved godavari 0.0364 0.0299 0.4832 1800
future Improved kaveri 0.0533 0.0423 0.4784 1800
future Improved mahanadi 0.0375 0.0319 0.4630 1800
future Improved narmada 0.0363 0.0286 -0.6816 1800
future Improved netravathi 0.0843 0.0683 -1.2032 1800
future Improved yamuna 0.0301 0.0227 0.5977 1800

Every river: held-out pixel results

evaluation method river RMSE MAE R2 rows
test Previous brahmaputra 0.0190 0.0153 0.6546 2902
test Previous ganga 0.0592 0.0347 0.6566 2503
test Previous godavari 0.0356 0.0264 0.1741 2673
test Previous kaveri 0.0326 0.0252 0.7126 2291
test Previous mahanadi 0.0373 0.0266 0.4606 2721
test Previous narmada 0.0287 0.0177 0.6676 2656
test Previous netravathi 0.0541 0.0414 0.2411 2474
test Previous yamuna 0.0307 0.0217 0.0823 2406
test Improved brahmaputra 0.0117 0.0084 0.8679 2902
test Improved ganga 0.0227 0.0157 0.9496 2503
test Improved godavari 0.0295 0.0182 0.4329 2673
test Improved kaveri 0.0260 0.0191 0.8174 2291
test Improved mahanadi 0.0252 0.0173 0.7546 2721
test Improved narmada 0.0185 0.0115 0.8616 2656
test Improved netravathi 0.0249 0.0169 0.8396 2474
test Improved yamuna 0.0224 0.0150 0.5120 2406

Previously unseen river audit

Transfer improved on four rivers and worsened on four. Each fold retrains its scaler, spectral model and graph correction with that river excluded. Checkpoint selection uses only the other rivers' validation rows. Architecture was selected using the overall development dataset; this audit is not fully nested external validation. The previous and new models also use different optimization protocols.

held_out_river RMSE_previous MAE_previous R2_previous rows_previous RMSE_new MAE_new R2_new rows_new
brahmaputra 0.0308 0.0262 0.0972 21000 0.0450 0.0369 -0.9327 21000
ganga 0.0800 0.0473 0.3864 18524 0.0809 0.0525 0.3730 18524
godavari 0.0396 0.0301 0.1224 19573 0.0496 0.0345 -0.3758 19573
kaveri 0.0426 0.0329 0.5049 16612 0.0425 0.0326 0.5088 16612
mahanadi 0.0389 0.0287 0.4440 20281 0.0361 0.0268 0.5220 20281
narmada 0.0393 0.0239 0.3057 19162 0.0407 0.0223 0.2574 19162
netravathi 0.0680 0.0518 -0.0256 18364 0.0633 0.0476 0.1127 18364
yamuna 0.0475 0.0342 -0.8531 18361 0.0331 0.0239 0.1001 18361

Actual mapped-course requests

These are existing saved requests, evaluated without fitting their labels. They contain dense pixels beyond the small training reaches, including different dates and nearby water within the mapped corridor. Requests can overlap and must not be treated as independent samples. Every tested request is shown, including regressions and failures.

request river year month method RMSE MAE R2 rows
34ffeb2d Krishna 2025 12 Previous 0.0574 0.0498 -0.0734 141178
34ffeb2d Krishna 2025 12 Improved 0.0583 0.0473 -0.1070 141178
394f2e4b Netravathi 2025 12 Previous 0.0847 0.0724 -1.5994 49255
394f2e4b Netravathi 2025 12 Improved 0.0673 0.0523 -0.6404 49255
3c8d0c64 Mahanadi 2025 12 Previous 0.0690 0.0599 -0.8860 103812
3c8d0c64 Mahanadi 2025 12 Improved 0.0558 0.0475 -0.2332 103812
3f950bcc Netravathi 2025 11 Previous 0.1406 0.1284 -4.0393 51954
3f950bcc Netravathi 2025 11 Improved 0.1103 0.0937 -2.1055 51954
e01b2e09 Krishna 2025 12 Previous 0.0584 0.0514 -0.3145 191815
e01b2e09 Krishna 2025 12 Improved 0.0573 0.0468 -0.2635 191815

Why limitations remain

The training data sample eight small reaches, not every river or the full lengths of these rivers. The satellite spectrum-to-NDCI relationship can change across locations, dates and water conditions. Training samples are spatially correlated. These are plausible sources of transfer error; the current checks do not prove a single cause. More independent reaches, seasons and scenes are needed before claiming reliable nationwide model predictions.

When valid red and red-edge observations are available, NDCI can be calculated directly. That satellite reference is already displayed separately. Model/reference agreement does not validate chlorophyll concentration, pH, dissolved oxygen, contamination or safe drinking water.

Training evidence

Validation error during spectral training and graph refinement

Prediction plots

Up to 8,000 pixels are displayed per panel for readability. Scores use all evaluation pixels. The dashed line shows exact agreement with the satellite index, not field validation.

Previous and new predictions on held-out pixels, later dates and the Netravathi December course

Reproducibility

Model SHA-256: e6ab1a2d6fae8dcb9e80224df9d91d1b3c341b30756dfd7040cce02a6e338c73. Selection, evaluation manifest, predictions and comparison CSV files are stored with this report. The previous checkpoint and saved requests remain preserved. New requests use the new checkpoint; older results keep their original model identity.

Next scientific step: collect additional representative reaches and dates for development, reserve geographically separate rivers and future scenes before training, and repeat the evaluation. Do not train on these evaluated outcomes and then present them as unseen tests.