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
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.
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:
Generates fake data of shape [C,6,H,W] by index;
Validates the six-face topology and capped leaky ReLU;
Executes U-Net forward/backward, MSE loss, and optimization per epoch;
Computes validation loss on an independent fake validation Dataset;
Saves latest/best checkpoints and history; supports --resume.
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.