Satellite-Based Water Change Detection: Monitoring Anomalies
By Alena Bakhoryna
Water change detection is one of the most critical applications of modern remote sensing. As climate volatility increases, the ability to accurately quantify surface water extent and soil moisture levels has become a priority for hydrologists, agricultural practitioners, policymakers and urban planners alike. Utilizing multi-spectral (Sentinel-2) and Synthetic Aperture Radar (Sentinel-1) data, we can now map hydrologic anomalies (droughts or floods) with unprecedented precision.
In the DaFab project, the water change detection workflow is used to enrich satellite data with additional parameters that indicate flood or drought in the scenes. It helps in optimizing the search, automating the selection of the past flood or drought events visible in Sentinel-1 / Sentinel-2 images and finally monitoring, analysing the affected areas from the generated water masks.
This article dives into the workflow of water detection developed in DaFab, data sources for the computations, and AI models used to distinguish between seasonal fluctuations and the anomalies of drought and flood.
Water change detection workflow
DaFab’s water change detection consists of several parts:
- Firstly, Sentinel-2 data preparation for AI analysis [preprocess in the Diagram 1] - downloading Sentinel’s metadata and required bands from Copernicus STAC API; projecting and resampling bands to the same spatial resolution (10 meters); splitting whole satellite image into patches that AI could process and filtering out patches with a lot of bad data (e. g. no-data / saturated in the patch).
- Secondly, Reference water data preparation [preprocess in the Diagram 1] - downloading metadata and required bands; projecting and resampling bands to the same spatial resolution (10 meters)
Reference water (permanent and seasonal) was chosen from two sources: ESA worldcover 2021 for permanent reference water and Global Flood Monitoring (GFM) reference water for seasonal reference water.
- Thirdly, AI inference pipeline to detect observed water in the scene [Water detection AI in the Diagram 1]
The AI model is explained in the chapter Water detection with AI: Geo Foundation Models
- Forthly, AI inference pipeline to detect clouds in the scene [Cloud detection AI in the Diagram 1]
The AI model is adapted from OmniCloudMask (OCM)
- Finally, Observed water and Reference water masks are compared with exclusion of cloud mask [change / anomaly / difference detection in the Diagram 1]
The outputs of the workflow are difference water mask [Image 1.] and metadata values that indicate anomalies in the observed scene.
Water detection with AI: Geo Foundation Models
The vast majority of AI models for geoscience and remote sensing still require labeled data for supervised approaches, which can be expensive to produce. Further, these task-specific models do not generalize well in space and time, necessitating the construction of a new model for each application. Foundation models have emerged to address these issues by leveraging self-supervision to pre-train on large unlabeled datasets. The foundation model can then be fine-tuned to a variety of downstream tasks using smaller labeled datasets. The pre-trained model accelerates the fine-tuning process compared to leveraging randomly initialized weights and achieves superior results while requiring fewer labeled data points.
Two Geo Foundation Models (GFM) were analysed - Prithvi version 2.0 and Terramind version 1.0 - Table 1:
- Both models have Transformer based architectures
- Both models have been finetuned on Sen1Floods11 dataset (minor change to the training dataset label “no-data” that is ignored to “no water” / “other” because that way the model will learn to differentiate water and no-data class Image 2) for water detection task - 50 epochs (learning rate 0.001)
- Both models have only as AI model Input - 6 bands (Red, Green, Blue, NIR_NARROW, SWIR_1, SWIR_2) of Sentinel-2 following the inputs of Prithvi version 2
- Decoder architecture / Loss function - Prithvi (UperNetDecoder / Cross Entropy), Terramind (UNetDecoder / Dice) follows original configuration provided by the publications. Experiments with a combination of losses (Cross Entropy, Dice, Focal)[^1] didn’t score an improvement in accuracy metrics. Image 3-4
- Finetuning is done on Google Colab on T4 GPU - 20min for Terramind and 35min Prithvi
| Model | Number of Model Parameters | F1 score | IoU water | IoU other | mIoU | Note |
|---|---|---|---|---|---|---|
| Prithvi | ~300M | 0.927 | 0.769 | 0.970 | 0.869 | GFM pretrained on satellite imagery (30m resolution) from NASA’s Harmonized Landsat Sentinel-2 (HLS) archive spanning a decade (2014 - 2023) in all representatives over the world locations |
| Terramind | ~100M | 0.928 | 0.774 | 0.969 | 0.871 | GFM pretrained on 500B tokens from 9M spatiotemporally aligned multimodal samples from the TerraMesh dataset |
Table 1. Prithvi and Terramind description and metrics after finetuning

Image 4. RGB False Color (SWIR1, NIR, Red) image, Terramind and Pirthvi water probability (0.0 - red, 1.0 - dark blue) masks for Sentinel-2 (shape 109 km by 109 km) in Bangladesh; 2020 August.
Terramind detects better (more certain probability / closer to one) flooded water than Prithvi
Therefore, conclusion of visual analysis and metrics comparison - Terramind model is the winner for the water detection task. In addition, Terramind has lighter architecture and is faster. In the DaFab, for observed water detection - Terramind is the current choice for AI model.
Conclusion, challenges and what’s next
DaFab has successfully implemented the first version of a satellite-based water change detection workflow using AI on Sentinel-2 satellite data, marking a significant milestone in monitoring environmental anomalies. However, current results still face technical hurdles:
1. Dynamic Rivers & Lakes
Monitoring highly dynamic water bodies, like the Brahmaputra River, is difficult because their shorelines change too fast. Comparing an acquired satellite image to a static reference map often leads to errors - incorrectly flagging natural river movement as a flood or a drought.
- The Fix: Instead of using an outdated “permanent water” map - compare two recent satellite images from the same location which ensures real anomalies rather than just natural seasonal shifts are measured.
2. Urban and Vegetated Obstacles
Complex landscapes “trick” optical satellites. In cities or mountains, tall shadows look identical to water (False Positives). In forests, thick leaf canopies act as a shield, hiding water from view.
- The Fix: Use Radar satellite. Unlike optical light, Radar waves can partially penetrate leaves and bounce off the flat water surface underneath, allowing us to “see” water even through a forest.
3. The Cloud Curtain
Sentinel-2 is an optical sensor, meaning it cannot see through clouds. Since floods usually happen during heavy storms, the “peak” of a flood is often hidden, and we only get a clear view once the water starts to recede. Additionally, if a cloud is misidentified, it can lead to anomalies errors.
- The Fix: Use Radar satellite. Radar pierces through clouds.
5. “Near Real-Time” Limits
While Sentinel-2’s 5-day revisit cycle is ideal for tracking slow-moving crises like droughts, it often misses the narrow window of a sudden flash flood. In these cases, it serves better as a powerful tool for post-disaster damage assessment rather than an instant warning system.
- The Fix: Use data fusion of all available satellites. Different satellites have its own revisit cycles
Continuous refinement is underway to address these challenges and improve the precision of the solution with data fusion of Sentinel-1 (Radar) and Sentinel-2 (Optical).
PS. The Training scripts / notebook and inference for water detection task: https://github.com/DaFab-AI-eu/Summer-School-2025/tree/ai_eo/AI_EO
Alena Bakhoryna (Gcore labs)