WeatherBench
模型介绍
WeatherBench 是面向数据驱动全球天气预报的数据集与评估基准。本复现实现论文实际使用的五层全卷积 CNN,并完成 3 天和 5 天 Z500/T850 预报评估。
论文:WeatherBench: A Benchmark Data Set for Data-Driven Weather Forecasting
https://arxiv.org/abs/2002.00469
模型描述
该基准由慕尼黑工业大学、ECMWF、Stockholm University、University of Washington 和 University of Toronto 团队提出。基准使用 1979–2018 年 ERA5 再分析数据,提供多分辨率全球场和 13 个压力层。论文示例 CNN 适用于直接或迭代预测 Z500 和 T850,并与 persistence、climatology、线性回归和 IFS 比较。
适用场景
| 场景 | 说明 |
|---|---|
| 中期天气预报 | 评估 3 天和 5 天 Z500/T850。 |
| 基线比较 | 对比 persistence 和 climatology。 |
| 纬度加权评估 | 计算 WeatherBench RMSE 和 ACC。 |
| ModelScope/OneCode 运行 | 验证结构化数据、训练、推理、天气指标和可视化流程。 |
| 多卡训练 | 通过 torchrun 启动多进程训练。 |
使用说明
1.OneCode
2.下载安装
modelscope download --model OneScience/WeatherBench --local_dir ./WeatherBench
cd WeatherBench
环境依赖
硬件要求
- 推荐使用 GPU 或 DCU 运行。
- CPU 可用于默认小样本配置的连通性验证。
- DCU 用户需预先安装 DTK,建议使用 DTK 25.04.2 以上版本或与当前集群匹配的 OneScience 推荐版本。
DCU环境
# 请首先激活 DTK 及 Conda
conda create -n onescience311 python=3.11 -y
conda activate onescience311
pip install onescience[earth-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
GPU环境
# 请首先激活 Conda
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
pip install onescience[earth-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
训练数据介绍
WeatherBench 原始 ERA5 数据包含 8 个三维变量、13 个压力层、6 个单层变量和常量场,并提供最高 128×256 的处理网格。论文 CNN 实验在 32×64 网格使用 Z500 和 T850 两通道,虚拟数据完整保留该模型输入输出与 6 小时迭代协议,仅减少样本和隐藏通道。结果仅用于工程验证。
python scripts/fake_data.py
训练
单卡训练可使用:
python scripts/train.py
多卡训练可使用:
torchrun --nproc_per_node=2 --nnodes=1 --master_addr="localhost" --master_port=29500 scripts/train.py
训练已完成单卡和双进程 DDP 验证,并生成单一可恢复 checkpoint。五层全卷积 CNN 已使用六小时 Z500/T850 目标完成 MSE 优化和参数更新。训练结果保存到:
result/checkpoints/weatherbench_cnn.pt
result/training/metrics.json
训练权重
论文未提供可供本仓库直接加载的官方 CNN 权重,本地 checkpoint 仅用于工程验证。
推理
python scripts/inference.py
推理将六小时模型迭代至 3 天和 5 天,并保留真值、初值和坐标。输出 shape 为 [4,2,2,32,64] 且数值有限。恢复后的 checkpoint 能够连续完成 12 步和 20 步迭代,并保持经度周期边界协议。推理结果保存到:
result/output/predictions.npz
评估和可视化
python scripts/result.py
评估计算纬度加权 RMSE、ACC 和 persistence RMSE,并生成 5 天 Z500 空间误差图。指标和 PNG 均通过有效性检查。评估结果保存到:
result/evaluation/metrics.json
result/evaluation/comparison.png
OneScience官方信息
| 平台 | OneScience 主仓库 | Skills 仓库 |
|---|---|---|
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
引用与许可证
本仓库为 WeatherBench 公开规格的独立工程复现版本。
原始论文、WeatherBench 代码和 ERA5 数据仍应按照各自项目的许可证及使用条款使用。