yzt15806542928's picture
Upload folder using huggingface_hub
989c6ea verified
|
Raw
History Blame Contribute Delete
5.73 kB
metadata
license: gpl-3.0
language:
  - en
  - zh
tags:
  - OneScience
  - Earth Science
  - Weather Forecasting
  - Global Weather Forecasting
  - ERA5
frameworks: PyTorch
datasets:
  - OneScience/ERA5

DLWP-CS

Model Overview

DLWP-CS employs cubed-sphere convolutional neural networks for global weather forecasting, mitigating the geometric distortions that conventional latitude-longitude grids suffer near the poles.

Paper: Improving Data-Driven Global Weather Prediction Using Deep Convolutional Neural Networks on a Cubed Sphere

https://doi.org/10.1029/2020MS002109

Model Description

This directory provides an independent PyTorch structural smoke implementation based on the paper and official code, featuring cubed-sphere cross-face padding, convolutions, a simplified U-Net, capped leaky ReLU, and autoregressive inference. It is not a reproduction of the paper's experimental architecture or ERA5 training.

Use Cases

Scenario Description
Cubed-Sphere Architecture Research Verify six-face adjacency, flipping, and convolution.
Local Rapid Verification Run training and rollout with fake data.
ERA5 Global Weather Forecasting Subsequently interface with ERA5 data processed via Tempest-Remap.

Usage

1. OneCode

Click to experience intelligent one-click AI4S programming

2. Manual Installation & Usage

Hardware Requirements

  • CPU can run the current minimum configuration.
  • GPU is recommended for training on real data.

Download the Model Package

hf download --model OneScience-Group/DLWP-CS --local-dir ./DLWP-CS
cd DLWP-CS

Set Up the Runtime Environment

DCU Environment

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 Environment

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

Data

The default training uses a deterministic fake Dataset from model/dataset.py and requires no additional download; each sample has shape [C,6,H,W], and the validation set uses an independent seed.

Training

python scripts/train.py

The script performs multi-epoch training, validation, learning rate scheduling, and early stopping:

  1. Generates fake data of shape [C,6,H,W] by index;
  2. Validates the six-face topology and capped leaky ReLU;
  3. Executes U-Net forward/backward, MSE loss, and optimization per epoch;
  4. Computes validation loss on an independent fake validation Dataset;
  5. Saves latest/best checkpoints and history; supports --resume.
python scripts/train.py --epochs 10
python scripts/train.py --resume weight/training/latest.pth --epochs 20

Checkpoint outputs:

weight/model.pth
weight/training/latest.pth
weight/training/best.pth
weight/training/history.json

Inference

python scripts/inference.py

Inference results:

result/prediction.pt
result/target.pt
result/inference.json

Result Inspection

python scripts/result.py

The result script produces result/metrics.json and result/comparison.png. The current rmse and spatial_acc serve only as connectivity checks on fake tensors; they do not apply the denormalization, latitude-weighted area averaging, cubed-sphere inverse mapping, or daily climatological anomaly computation required by the paper.

Paper vs. Current Implementation I/O

Item Paper DLWP-CS Current Smoke Implementation
Dynamic Input 4 variables at t-6h,t, 8 channels 2-channel single state with no physical semantics
Auxiliary Input Solar radiation, land-sea mask, topography Not implemented
Spatial Grid [6,48,48] cubed sphere [6,8,8] fake grid
Output 4 variables at t+6h,t+12h, 8 channels 2-channel output of the same shape
Network / Training Two-level U-Net, combined loss over two autoregressive steps Single-level simplified U-Net, multi-epoch single-step MSE training
Analysis Physical-unit, latitude-weighted RMSE/ACC Smoke metrics without physical units

The complete execution flow is train.py -> inference.py -> result.py. The fake Dataset preserves the cubed-sphere input shape but does not represent a continuous weather time series; the model package is distributed without local training weights or result/ artifacts. A production mode further requires an ERA5 Dataset implementation, CS48 remapping, 4 dynamic variables, auxiliary fields, normalization statistics, and the paper's two-step iterative training loss.

Real Data

Real-data training requires ERA5 variables Z500, Z1000, 300–700 hPa geopotential thickness, and 2 m temperature, along with solar radiation, a land-sea mask, topography, and Tempest-Remap offline remapping weights.

OneScience Official Information

Citation & License

  • Official Code: https://github.com/jweyn/DLWP-CS
  • This directory is an independent adaptation based on the paper and official structure, licensed under GPL-3.0.