Code for the Paper "Graph Dual-stream Convolutional Attention Fusion for precipitation nowcasting" [Elsevier-link].
The proposed GD-CAF can be found in the model-folder under GD-CAF.
This project uses poetry as dependency management. An environment can be created as follows:
conda create --name gd-caf python=3.9
conda activate gd-caf
poetry install
The main packages, which we are using are:
pytorch
pytorch_lightning
xarray
scipy
tensorboard
tqdm
To correctly install PyTorch for gpu, please go to PyTorch - Get Started for more information.
For training on the precipitation task we used the train_precip_lightning.py file.
The training will place a checkpoint file for every model in the default_save_path
, which is set to db/trained_models
. After finishing training place the best models (probably the ones with the lowest validation loss) that you want to compare in another folder in db/checkpoints
.
The test_precip_lightning.py file is used to test the model from a checkpoint, to do it, call eval(path, checkpoint_name)
function on the desired checkpoint. This will print all metrics also used in the paper. With setting the calc_persistence
flag on, you can also run the persistence prediction alongside the model.
ERA5 hourly data on single levels from 2016 to 2022 (link) was used in this work to gather precipitation data over Europe and its extended regions.
The dataset consists of precipitation maps in 1-hour intervals from 2016-2023 over the selected regions.
If you are interested in the dataset that we used please write an e-mail to: s.mehrkanoon@uu.nl
The datafiles should be put into the corresponding data/train/
and data/test/
folder.
@article{vatamany2025graph,
title={Graph Dual-stream Convolutional Attention Fusion for precipitation nowcasting},
author={Vatam{\'a}ny, L{\'o}r{\'a}nd and Mehrkanoon, Siamak},
journal={Engineering Applications of Artificial Intelligence},
volume={141},
pages={109788},
year={2025},
publisher={Elsevier}
}