/Precipitation-Nowcasting

pytorch implemention of trajGRU.

Primary LanguagePython

Introduction

This repo has implemented a pytorch-based encoder-forecaster model with RNNs including (TrajGRU, ConvLSTM) to do precipitation nowcasting. For more information about TrajGRU, please refer to HKO-7.

If you are interested in my implementation of ConvLSTM and TrajGRU, please see ConvLSTM and TrajGRU. It is assumed that the input shape should be . All of my implementation have been proved to be effective in HKO-7 Dataset. Hopefully it helps your research.

Train

Firstly you should apply for HKO-7 Dataset from HKO-7, and modify somelines in config.py to find the dataset path. Secondly and last, run python3 experiments/trajGRU_balanced_mse_mae/main.py, and then run python3 experiments/trajGRU_frame_weighted_mse/main.py since I have finetuned the model on the basis of model trained in last step.

Environment

Python 3.6+, PyTorch 1.0 and Ubuntu or macOS.

Demo

Performance

The performance on HKO-7 dataset is below.

CSI HSS Balanced MSE Balanced MAE
0.5496 0.4772 0.3774 0.2863 0.1794 0.6713 0.6150 0.5226 0.4253 0.2919 5860.97 15062.46

Download

Dropbox Pretrained Model

Citation

@inproceedings{xingjian2017deep,
    title={Deep learning for precipitation nowcasting: a benchmark and a new model},
    author={Shi, Xingjian and Gao, Zhihan and Lausen, Leonard and Wang, Hao and Yeung, Dit-Yan and Wong, Wai-kin and Woo, Wang-chun},
    booktitle={Advances in Neural Information Processing Systems},
    year={2017}
}
@inproceedings{xingjian2015convolutional,
  title={Convolutional LSTM network: A machine learning approach for precipitation nowcasting},
  author={Xingjian, SHI and Chen, Zhourong and Wang, Hao and Yeung, Dit-Yan and Wong, Wai-Kin and Woo, Wang-chun},
  booktitle={Advances in neural information processing systems},
  pages={802--810},
  year={2015}
}