File size: 5,022 Bytes
aa8cca6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
---
frameworks: PyTorch
language:
- en
- zh
license: apache-2.0
tags:
- OneScience
- Earth Science
- Weather Forecast
- Short-to-Medium-Range Weather Forecast
- ERA5
tasks: []
datasets:
  - OneScience/ERA5
---
<p align="center">
  <strong>
    <span style="font-size: 30px;">GraphCast</span>
  </strong>
</p>

# Model Introduction

GraphCast is a global medium-range weather forecast model developed by the Google DeepMind team, with its core paper published in the top-tier international journal *Science*.

Paper: GraphCast: Learning skillful medium-range global weather forecasting

https://arxiv.org/abs/2212.12794

# Model Description

GraphCast is a global medium-range weather forecast model built on a Graph Neural Network (GNN). It is trained on the ERA5 global atmospheric reanalysis dataset (1979–2017) provided by ECMWF.

# Use Cases

| Scenario | Description |
| :---: | :--- |
| Global Weather Forecast Research | Train a GraphCast-style GNN forecast model using annual ERA5 HDF5 data. |
| Local Quick Validation | Use synthetic data to verify data loading, auxiliary file generation, training entry points, and result scripts. |
| ModelScope / OneCode Execution | Download as a standalone model package, install dependencies, and run scripts directly. |
| Multi-GPU Training | Launch multi-process training via `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
modelscope download --model OneScience/GraphCast --local_dir ./GraphCast
cd GraphCast
```

### 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 ERA5 data for training (due to file size limits, the current repository contains a slice of the full dataset). Users can download it with the command below and confirm that the data path in `conf/config.yaml` is set correctly:

```bash
modelscope download --dataset OneScience/ERA5 --local_dir ./data
```

### Generate Auxiliary Files

```bash
python scripts/get_data_json.py
python scripts/compute_time_diff_std.py
```

Generated files:

- `data.json`
- `time_diff_std.npy`

### Training

Single GPU:

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

Multi-GPU:

```bash
torchrun --nproc_per_node=8 --nnodes=1 --rdzv_id=1000 --rdzv_backend=c10d --max_restarts=0 --master_addr="localhost" --master_port=29500 scripts/train.py
```

Training outputs:

```text
data/checkpoints/model_bak.pth
data/checkpoints/trloss.npy
```

### Training Weights

This repository provides weights trained on ERA5 data from 1979 to 2017 in the `weights/` folder. The weight files will be uploaded soon and are expected to be available in the near future.

### Fine-tuning

Before fine-tuning, you must first complete training and generate `data/checkpoints/model_bak.pth`.

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

Fine-tuning outputs:

```text
data/checkpoints/model_finetune_bak.pth
data/checkpoints/ft_trloss.npy
```

### Inference

Inference reads `data/checkpoints/model_finetune_bak.pth` by default:

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

Prediction results are output to:

```text
result/output/
```

### Evaluation and Visualization

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

Output contents include:

- `result/rmse.npy`
- `result/acc.npy`
- `result/loss.png`
- Forecast comparison plots for specified dates and variables

# OneScience Official Information

| 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 & License

- Apache License 2.0. The code is open source, permitting both commercial and non-commercial use.
- The weights are permitted for non-commercial use only.