# Deep Learning for Post-Processing Ensemble Weather Forecasts
We make available the data as well as the code that is necessary to run the models in our [paper](https://arxiv.org/abs/2005.08748) through this repository. It is our hope that our findings and the data can be used to further advance weather forecasting research.
## Research description
Our research focuses on applying recent architectures from Deep Learning to Ensemble Weather Forecasts. To achieve this we use global reforecast data from the ECMWF that we call **ENS10**, as well as reanalysis data **ERA5**. More specifically, ENS10 is aimed at providing researchers with a basic dataset of forecasted values that would be used in modern numerical weather prediction pipelines. Using ERA5 data as ground truth, we then use a subset of the ensemble forecasts to post-process and improve. Our aim is to help weather forecasting centers predict extreme weather events cheaper and more accurately.
<p align="center">
<img width="40%" src="/report/G_Winston_E10_step1.png">
<img width="40%" src="/report/G_Winston_B5U5C-E10_step1.png">
</p>
In the case of tropical cyclone [Winston](https://en.wikipedia.org/wiki/Cyclone_Winston) we achieve a relative improvement of over 26% in forecast skill, measured in Continuous Ranked Probability Score (CRPS) over the full 10 member ensemble, using a subset of five trajectories. Additionally, the models specifically predict the future path of the cyclone more accurately.
## Dependencies
In order to run our code in Python 3 through a virtual environment: Clone this repository, open a terminal, set the working directory to this directory and run:
```bash
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
```
We use tensorflow-gpu 1.14, therefore you will also need to install [CUDA 10.0](https://developer.nvidia.com/cuda-10.0-download-archive) and [cuDNN 7.4](https://developer.nvidia.com/cudnn) separately. You will need to register on Nvidia and select 7.4 from the cuDNN versions.
The newest Uncertainty Quantification models are now also available in PyTorch-Lightning, please refer to the PyTorch [README](Uncertainty_Quantification/Pytorch/README.md)
If you prefer using conda, which will install CUDA and cuDNN automatically, use the commands:
```
conda create -y --name env python==3.7
conda install --force-reinstall -y -q --name env -c conda-forge --file conda-requirements.txt
conda activate env
pip install eccodes==0.9.5
```
## Data
The raw GRIB data we used for our experiments is available under the [Deep Weather Dataset](http://spclstorage.inf.ethz.ch/projects/deep-weather/).
For the full separate datasets refer to their original sources:
- [ENS10](https://confluence.ecmwf.int/display/UDOC/ECMWF+ENS+for+Machine+Learning+%28ENS4ML%29+Dataset)
- [ERA5](https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels?tab=form)
- [Alternate link](http://spclstorage.inf.ethz.ch/projects/deep-weather/) in case the previous ones do not work. (The ENS10 data files are marked with 2018, but contain the data of all years described in our paper)
To transform the Deep Weather data into Numpy arrays and TensorFlow records as done for our paper, refer to our preprocessing steps. If you want to use different parameters directly from the original sources you will have to edit the preprocessing scripts.
## Contents
We separate our experiments into the exploration of ensemble output bias correction, which needs ERA5 data as the ground truth, and ensemble uncertainty forecasting using reduced ensemble members, which runs solely on ENS10 data.
To make a combined prediction aimed at reducing the forecast skill (CRPS), you will need to provide a path to the bias corrected mean and ground truth in the appropriate form in [preprocessing_parameters.py](Uncertainty_Quantification/Preprocessing/preprocessing_parameters.py), as well as set the CRPS flag there and in [parameters.py](Uncertainty_Quantification/parameters.py).
### Contents structure
`Bias_Correction` Preprocessing and model for Bias Correction, refer to `Bias_Correction/README.md`
`Uncertainty_Quantification` Preprocessing and model for Uncertainty Quantification
- `\parameters.py` All hyperparameters and settings for the model, edit this file to add the paths to your preprocessed data
- `\predict.py` Evaluates the model on test data
- `\RESNET2D.py` Our TensorFlow model for Uncertainty Quantification
- `\train.py` Runs training and validation operations on the model
- `\Preprocessing` Contains all necessary files to transform GRIB files into TensorFlow records
- `\GRIB2npy.py` Converts GRIB files to Numpy arrays, needs to be adjusted for the selected parameters
- `\npy2tfr.py` Converts the Numpy arrays to TensorFlow records and performs the Local Area-wise Standardization (LAS) described in our paper
- `\preprocessing_parameters` Parameters for all preprocessing steps, be sure to edit the path folders
- `\means.npy` Precomputed means for the LAS
- `\stddevs.npy` Precomputed standard deviations for the LAS
- `\Pytorch` PyTorch-Lightning models and training for Uncertainty Quantification, refer to `Pytorch/README.md`
## How to cite
```
@article{grnquist2020deep,
title={Deep Learning for Post-Processing Ensemble Weather Forecasts},
author={Peter Grönquist and Chengyuan Yao and Tal Ben-Nun and Nikoli Dryden and Peter Dueben and Shigang Li and Torsten Hoefler},
year={2020},
eprint={2005.08748},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
```
Should there be any questions, feel free to contact us.
没有合适的资源?快使用搜索试试~ 我知道了~
deep-weather:深度学习用于后处理集成天气预报
共62个文件
py:42个
readme:5个
md:3个
需积分: 50 9 下载量 143 浏览量
2021-05-07
16:25:35
上传
评论 1
收藏 157.74MB ZIP 举报
温馨提示
深度学习用于后处理集成天气预报 我们使可用的数据,以及为需要运行在我们的模型中的代码通过这个资料库。 我们希望我们的发现和数据可以用于进一步推进天气预报研究。 研究内容 我们的研究重点是应用从深度学习到集成天气预报的最新架构。 为了实现这一目标,我们使用来自ECMWF的全局重新预测数据(我们称为ENS10 )以及重新分析数据ERA5 。 更具体地说,ENS10旨在为研究人员提供基本的预报值数据集,这些数据将用于现代数值天气预报管道中。 使用ERA5数据作为基本事实,然后使用整体预测的子集进行后处理和改进。 我们的目标是帮助天气预报中心更便宜,更准确地预测极端天气事件。 在热带气旋的情况下,我们使用五个轨迹的子集,在全部10个成员合奏中的连续排名概率得分(CRPS)中进行了测量,相对于预测技能,其相对提高了26%以上。 此外,这些模型可以更准确地预测旋风的未来路径。 依存关系 为了通过虚拟
资源详情
资源评论
资源推荐
收起资源包目录
deep-weather-master.zip (62个子文件)
deep-weather-master
requirements.txt 318B
Bias_Correction
args.py 4KB
plot.py 9KB
ckpt
.readme 28B
run.py 334B
data
tfdata
.readme 34B
planalysis 340B
npydata
.readme 40B
GRIBglobal.py 11KB
initdata
.readme 29B
data_macro.py 2KB
dataset.py 1KB
GRIBemos.py 10KB
plfl 2KB
log
.readme 33B
models
Unet3_tile.py 3KB
one2one.py 2KB
refcrps.py 2KB
LCN.py 5KB
Unet2_main.py 3KB
layers.py 15KB
Unet3_local.py 3KB
models.py 12KB
utils.py 25KB
tile_CNN.py 3KB
Unet2.py 6KB
Unet2_l2.py 5KB
memory_saving_gradients.py 18KB
refmse.py 1KB
Unet3.py 2KB
emos.py 3KB
LCN_unet.py 7KB
README.md 4KB
config.py 2KB
global_macros.py 375B
cross_validate.py 5KB
main.py 5KB
combine_pred.py 2KB
runall.sh 1KB
conda-requirements.txt 303B
README.md 6KB
report
fig2p2.pdf 60KB
G_Winston_B5U5C-E10_step1.png 357KB
G_Winston_E10_step1.png 157KB
Uncertainty_Quantification
Preprocessing
means.npy 83.29MB
GRIB2npy.py 5KB
npy2tfr.py 4KB
stddevs.npy 83.29MB
preprocessing_parameters.py 1KB
Pytorch
infer.py 5KB
loader.py 4KB
pytorch_environment.yml 3KB
models.py 13KB
utils.py 5KB
README.md 3KB
ssim.py 11KB
Model_Filter.ipynb 12.68MB
train.py 6KB
RESNET2D.py 9KB
parameters.py 2KB
predict.py 3KB
train.py 7KB
共 62 条
- 1
胜负欲
- 粉丝: 21
- 资源: 4642
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0