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.
|