File size: 5,340 Bytes
807a08b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
frameworks: PyTorch
language:
- en
license: apache-2.0
tags:
- OneScience
- Earth Science
- Weather Forecast
- Global Weather Forecast
- ERA5
- Neural ODE
tasks: []
datasets:
- OneScience/ERA5
---
<p align="center">
  <strong>
    <span style="font-size: 30px;">ClimODE</span>
  </strong>
</p>

# Model Introduction

ClimODE is a weather forecasting model proposed in 2024 by researchers from Aalto University and collaborating institutions.

Paper: ClimODE: Climate and Weather Forecasting with Physics-informed Neural ODEs

https://arxiv.org/abs/2404.10024

# Model Description

ClimODE is a physics-informed neural ordinary differential equation model for global, monthly-scale, and regional climate and weather forecasting. It represents atmospheric evolution as a continuous-time dynamical system and incorporates a transport-based physical inductive bias into the neural ODE.

# Use Cases

| Scenario | Description |
| :---: | :--- |
| Global weather forecasting | Train or evaluate ClimODE on ERA5 data following this project's five-variable protocol. |
| Local quick validation | Use synthetic ERA5 HDF5 data to check data loading, training, inference, evaluation, and 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**

- Training and inference require a GPU or DCU recognized by PyTorch. CPU can be used to generate synthetic data and inspect configuration, but cannot run the current training and inference scripts.
- Multi-GPU training uses the NCCL backend. Ensure that the device driver, communication libraries, and PyTorch version are compatible.
- 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/ClimODE --local-dir ./ClimODE
cd ClimODE
```

### 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 paths in `conf/config.yaml` point to the downloaded data:

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

ClimODE reads the five variables `z`, `t`, `t2m`, `u10`, and `v10`, regridding the source `721x1440` fields to the model's `32x64` grid. The source variable mapping is defined in `conf/config.yaml`.

### Generate Synthetic Data

When real ERA5 data is unavailable, generate a full-resolution synthetic fixture for pipeline validation:

```bash
python scripts/fake_data.py
```

Synthetic data does not represent ERA5 and cannot reproduce the paper's metrics.

### Training

Single GPU:

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

Multi-GPU:

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

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

### Fine-tuning

To fine-tune from an existing checkpoint, pass an explicit checkpoint and mode:

```bash
python scripts/train.py --mode finetune --checkpoint data/checkpoints/model_bak.pth
```

An official pretrained checkpoint can be selected explicitly with `--use-pretrained --pretrained-checkpoint <path>`.

### Training Weights

This repository provides a `weight/` directory for ClimODE 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. If it is unavailable, pass `--checkpoint` explicitly:

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

Predictions, uncertainty estimates, and targets are written to `result/output/`.

### Evaluation and Visualization

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

The script computes latitude-weighted RMSE, ACC, and CRPS, and writes per-variable figures to `result/output/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

- This repository is a OneScience adaptation of the ClimODE paper and is not the official Aalto-QuML release.