File size: 5,617 Bytes
1616901
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
---
frameworks: PyTorch
language:
- en
license: apache-2.0
tags:
- OneScience
- Earth Science
- Weather Forecast
- Subseasonal Forecast
- Coupled Atmosphere-Ocean-Land
- ERA5
tasks: []
datasets:
- OneScience/ERA5
---
<p align="center">
  <strong>
    <span style="font-size: 30px;">FengWu-W2S</span>
  </strong>
</p>

# Model Introduction

FengWu-W2S (FengWu Weather-to-Subseasonal) is a seamless global weather-to-subseasonal forecasting model extending FengWu.

Paper: FengWu-W2S: A deep learning model for seamless weather-to-subseasonal forecast of global atmosphere

https://arxiv.org/abs/2411.10191

# Model Description

The model uses a six-hour time step for autoregressive forecasts of up to 42 days. Coupled atmospheric, ocean, and land branches, together with diversity perturbations, are used to improve extended-range forecast skill. This repository contains a compact implementation of the coupled interfaces for reproducible workflow checks.

# Use Cases

| Scenario | Description |
| :---: | :--- |
| Weather-to-subseasonal forecast research | Train a 78-channel coupled model with six-hourly global atmospheric, ocean, and land fields. |
| Local quick validation | Use small-grid synthetic HDF5 data to check training, fine-tuning, inference, and forecast visualization. |
| ModelScope / OneCode execution | Download the standalone model package, install dependencies, and run the scripts directly. |
| Multi-GPU training | Launch PyTorch DistributedDataParallel with `torchrun`. |

# Usage Guide

## 1. OneCode Usage

Experience intelligent one-click AI4S programming through the OneCode online environment:

[Click to Experience Intelligent One-Click AI4S Programming](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home)

## 2. Manual Installation and Usage

**Hardware Requirements**

- A GPU or DCU is recommended.
- CPU can be used for import and small-scale connectivity verification; full training and inference will be slow.
- DCU users must install DTK in advance. DTK 25.04.2 or above, or the OneScience recommended version matching your cluster, is recommended.

### Download the Model Package

```bash
hf download OneScience-Group/FengWu-W2S --local-dir ./FengWu-W2S
cd FengWu-W2S
```

### Install the Runtime Environment

**DCU Environment**

```bash
# Please activate DTK and CONDA first
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# uv installation is supported
pip install onescience[earth-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/  --trusted-host mirrors.onescience.ai
```

**GPU Environment**
```bash
# Please activate CONDA first
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
# uv installation is supported
pip install onescience[earth-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/  --trusted-host mirrors.onescience.ai
```

### Training Data Introduction

The OneScience community provides an ERA5 data slice for training. Download it and confirm that the data path in `conf/config.yaml` is correct:

```bash
hf download --repo-type dataset OneScience-Group/ERA5 --local-dir ./data
```

Real files must contain all 78 channels listed in `conf/config.yaml`, including atmospheric, ocean, and land variables, with six-hour time spacing. The configured group indices define the coupled branches.

### Generate Synthetic Data

The default configuration describes a full `721x1440` grid. For a practical local smoke test, generate a small fixture explicitly:

```bash
python scripts/fake_data.py --height 32 --width 64 --timesteps 12
```

Synthetic HDF5 files are for workflow validation only and do not represent the ERA5 reanalysis or the paper's forecast quality.

### Training

Single GPU:

```bash
python scripts/train.py
```

Multi-GPU:

```bash
torchrun --nproc_per_node=2 scripts/train.py
```

For a short smoke run, reduce the workload while keeping the generated data and model grid consistent:

```bash
python scripts/train.py --max-epoch 1 --batch-size 1 --num-workers 0 --rollout-steps 1
```

The default checkpoint is saved to `data/checkpoints/model_bak.pth`.

### Fine-tuning

Resume from the base checkpoint with the lower fine-tuning learning rate:

```bash
python scripts/train.py --finetune
```

### Training Weights

This repository provides a `weight/` directory for FengWu-W2S checkpoints. The weight files will be uploaded soon and are expected to be available in the near future.

### Inference

Inference reads `data/checkpoints/model_bak.pth` by default and writes forecasts grouped by initialization year to `result/output/<year>/`, together with `result/output/index.json`:

```bash
python scripts/inference.py
```

Use `--steps` and `--limit` to bound a local smoke test; `--stochastic` enables perturbation sampling.

### Evaluation and Visualization

```bash
python scripts/result.py
```

The script computes per-channel RMSE, normalized RMSE, and anomaly ACC, and generates forecast-comparison, lead-time skill, channel-ranking, and training-loss figures.

# Official OneScience Resources

| Platform | OneScience Main Repository | Skills Repository |
| --- | --- | --- |
| 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 |

# Citation and License

- Paper: https://arxiv.org/abs/2411.10191
- This directory is an independent reproduction of the paper method and does not represent official code, weights, or training results released by the authors.