Forecasting water resources from satellite image time series using a graph-based learning strategy: GraphCast for Satellite Image Time Series
Source code for the paper "Forecasting water resources from satellite image time series using a graph-based learning strategy" by Corentin Dufourg, Charlotte Pelletier, Stéphane May and Sébastien Lefèvre, at ISPRS Technical Commission II Symposium 2024.
We propose to adapt a recent weather forecasting architecture, called GraphCast, to a water resources forecasting task using high-resolution satellite image time series (SITS). Based on an intermediate mesh, the data geometry used within the network is adapted to match high spatial resolution data acquired in two-dimensional space. In particular, we introduce a predefined irregular mesh based on a segmentation map to guide the network’s predictions and bring more detail to specific areas.
# Params | RMSE (↓) | PSNR (↑) | SSIM (↑) | Runtime (min) | |
---|---|---|---|---|---|
Input average | - | 0.1550 | 23.32 | 0.7465 | - |
Persistence | - | 0.1332 | 25.03 | 0.7897 | - |
LSTM | 17,345 | 0.1162±0.0005 | 25.53±0.05 | 0.8282±0.0005 | 22 |
ConvLSTM | 150,721 | 0.1197±0.0029 | 25.28±0.19 | 0.8113±0.0030 | 26 |
TDCNN-ConvLSTM | 407,681 | 0.1111±0.0008 | 25.68±0.08 | 0.8083±0.0008 | 46 |
Ours | 228,673 | 0.1097±0.0035 | 26.42±0.27 | 0.8170±0.0070 | 41 |
Table: Number of parameters, RMSE, PSNR, SSIM and runtimefor baseline models and our GraphCast adaptation. The results are provided with average and standard deviation on three random initializations (best).
ndwi_tiny_generate_dataset.py
can be used to generate a reduced version of the SEN2DWATER dataset, retaining only the NDWI channel over a limited number of dates.relocated_splitted_patches.py
fixes the geolocation of the splitted patches from the SEN2DWATER dataset.train_baseline_train-val-test.py
is the method to train the baseline models (LSTM, ConvLSTM, TDCNN-ConvLSTM).train_graphcast_train-val-test.py
is the method to train our adaptation of GraphCast. TheNB_SPXL
,T_LEN
andSLIC_MULTITEMPORAL
constants can be set to reproduce auxiliary results.train_graphcast_train-val-test_noSPE-noTPE.py
,train_graphcast_train-val-test_SPE-noTPE.py
andtrain_graphcast_train-val-test_noSPE-TPE.py
are used to perform the ablation study of the temporal and spatial encodings.dataset/
should contain the data from SEN2DWATER to train and evaluate the models.data/
contains data structure and dataset classes.dataio/
contains the reading functions of the SEN2DWATER dataset, adapted from its GitHub repository.models/
contains the architectures implemented with PyTorch and PyG.
The data derived from SEN2DWATER dataset are governed by the Legal Notice on the use of Copernicus Sentinel Data and Service Information.
The split used for the data is given in folder datasets/
. The seeds used for the 3 random initializations are 0,1,2
. Note that the pyg.utils.scatter
operation use in Graph Neural Networks may behave nondeterministically when given tensors on a CUDA device.
If you use this work, consider citing our paper:
@article{dufourg2024forecasting,
title={Forecasting water resources from satellite image time series using a graph-based learning strategy},
author={Dufourg, Corentin and Pelletier, Charlotte and May, St{\'e}phane and Lef{\`e}vre, S{\'e}bastien},
journal={The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences},
volume={48},
pages={81--88},
year={2024},
publisher={Copernicus GmbH}
}