EDAPINENUT / CLCRN

This is an official Pytorch implementation of Conditional Local Convolution for Spatio-temporal Meteorological Forecasting, AAAI 2022
130 stars 29 forks source link
aaai2022 continuous-convolution graph-neural-networks meteorological-forecasting pytorch spatio-temporal spherical-geometry

Conditional Local Convolution for Spatio-Temporal Meteorological Forecasting

This is a Official PyTorch implementation of CLCRN in the following paper:

Basic Requirements

Dependency can be installed using the following command:

conda env create --file env_clcrn.yaml
conda activate CLCRN_env

Data Preparation

1) Using the preprocessed dataset:

The four datasets after preprocessed are available at Google Drive.

Download the dataset and copy it into data/ dir. And Unzip them, and obtain data/{cloud_cover,component_of_wind,humidity,temperature}/

2) Generating dataset from scratch:

The raw datasets WeatherBench(Arxiv) can be downloaded from Github: WeatherBench. And the provided scripts/generate_training_data.py is used for data preprocessing.

Dump them into dataset_release/ files, and run the following commands to generate train/test/val dataset.

# Dataset preprocess
python scripts/generate_training_data.py  --input_seq_len=12 --output_horizon_len=12

Training the Model

The configuration is set in /experiments/config_clcrn.yaml file for training process. There are two config files for clcrn/clcstn training. Run the following commands to train the target model.

# CLCRN
python train_clcrn.py --config_filename=./experiments/config_clcrn.yaml

# CLCSTN
python train_clcstn.py --config_filename=./experiments/config_clcstn.yaml

Citation

If you find this repository, e.g., the code and the datasets, useful in your research, please cite the following paper:

@misc{lin2021conditional,
      title={Conditional Local Convolution for Spatio-temporal Meteorological Forecasting}, 
      author={Haitao Lin and Zhangyang Gao and Yongjie Xu and Lirong Wu and Ling Li and Stan. Z. Li},
      year={2021},
      eprint={2101.01000},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

Acknowledgement

The repository is mainly based on DCRNN's Readme, seeing: https://github.com/liyaguang/DCRNN

And

https://arxiv.org/abs/1707.01926

The baselines are implementated based on torch-geometric-temporal, seeing:

https://arxiv.org/abs/2104.07788