Prepared 2026-09-24 02:13. Historical satellite observations from 2023–2025. Real-time analysis is not part of this release.
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.
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.
| 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 |
| 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 |
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 |
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 |
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.
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.
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.