OneScience-Group/ClimODE
<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
Usage Guide
1. OneCode Usage
Experience intelligent one-click AI4S programming through the OneCode online environment:
Click to Experience Intelligent One-Click AI4S Programming
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
hf download OneScience-Group/ClimODE --local-dir ./ClimODE
cd ClimODEInstall the Runtime Environment
DCU Environment
# 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.aiGPU Environment
# 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.aiTraining 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:
hf download --repo-type dataset OneScience-Group/ERA5 --local-dir ./dataClimODE 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:
python scripts/fake_data.pySynthetic data does not represent ERA5 and cannot reproduce the paper's metrics.
Training
Single GPU:
python scripts/train.pyMulti-GPU:
torchrun --nproc_per_node=8 scripts/train.pyThe 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:
python scripts/train.py --mode finetune --checkpoint data/checkpoints/model_bak.pthAn 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:
python scripts/inference.pyPredictions, uncertainty estimates, and targets are written to result/output/.
Evaluation and Visualization
python scripts/result.pyThe script computes latitude-weighted RMSE, ACC, and CRPS, and writes per-variable figures to result/output/figures/.
Official OneScience Resources
Citation and License
- This repository is a OneScience adaptation of the ClimODE paper and is not the official Aalto-QuML release.
