Views
No views yet

OneForecast: A Universal Framework for Global and Regional Weather Forecasting
Yuan Gao† , Hao Wu† , Ruiqi Shu† , Huanshuo Dong, Fan Xu, Rui Ray Chen, Yibo Yan, Qingsong Wen, Xuming Hu, Kun Wang, Jiahao Wu, Qing Li, Hui Xiong, Xiaomeng Huang*
(† Equal contribution, * Corresponding Author)
Abstract: Accurate weather forecasts are important for disaster prevention, agricultural planning, etc. Traditional numerical weather prediction (NWP) methods offer physically interpretable high-accuracy predictions but are computationally expensive and fail to fully leverage rapidly growing historical data. In recent years, deep learning models have made significant progress in weather forecasting, but challenges remain, such as balancing global and regional high-resolution forecasts, excessive smoothing in extreme event predictions, and insufficient dynamic system modeling. To address these issues, this paper proposes a global-regional nested weather forecasting framework (OneForecast) based on graph neural networks. By combining a dynamic system perspective with multi-grid theory, we construct a multi-scale graph structure and densify the target region to capture local high-frequency features. We introduce an adaptive messaging mechanism, using dynamic gating units to deeply integrate node and edge features for more accurate extreme event forecasting. For high-resolution regional forecasts, we propose a neural nested grid method to mitigate boundary information loss. Experimental results show that OneForecast performs excellently across global to regional scales and short-term to long-term forecasts, especially in extreme event predictions. Codes link: \url{https://github.com/YuanGao-YG/OneForecast}.
# git clone this repository
git clone https://github.com/YuanGao-YG/OneForecast.git
cd OneForecast
# create new anaconda env
conda env create -f environment.yml
conda activate oneforecast./data/
|--global
| |--test
| | |--2020.h5
| |--mean.npy
| |--std.npysh inference.shsh inference_finetune.sh./data/
|--global
| |--test
| | |--2020.h5
| |--mean.npy
| |--std.npy
|--regional
| |--test
| | |--2020.h5sh inference_nng.sh./data/
|--global
| |--train
| | |--1959.h5
| | |--1960.h5
| | |--.......
| | |--2016.h5
| | |--2017.h5
| |--valid
| | |--2017.h5
| | |--2018.h5
| |--test
| | |--2020.h5
| |--mean.npy
| |--std.npysh train.sh./train_finetune.sh file and ./config/Model.yaml file.run_num='20250603-190101', multi_steps_finetune=2, finetune_max_epochs=10, lr: 1E-6. Please note that using a small learning rate (lr) to finetune model may contribute to convergence, you can adjust it according to your total batch size.run_num='20250603-190101', multi_steps_finetune=3, finetune_max_epochs=10, lr: 1E-6.sh train_finetune.sh./data/
|--global
| |--train
| | |--1959.h5
| | |--1960.h5
| | |--.......
| | |--2016.h5
| | |--2017.h5
| |--valid
| | |--2017.h5
| | |--2018.h5
| |--test
| | |--2020.h5
| |--mean.npy
| |--std.npy
|--regional
| |--train
| | |--1959.h5
| | |--1960.h5
| | |--.......
| | |--2016.h5
| | |--2017.h5
| |--valid
| | |--2017.h5
| | |--2018.h5
| |--test
| | |--2020.h5./train_nng.sh file and ./config/Model_nng.yaml file.run_num='20250603-190101', multi_steps_finetune=1, finetune_max_epochs=200, lr: 1E-3. You can also adjust the learning rate (lr) according to your total batch size.sh train_nng.sh




@article{gao2025oneforecast,
title={OneForecast: A Universal Framework for Global and Regional Weather Forecasting},
author={Gao, Yuan and Wu, Hao and Shu, Ruiqi and Dong, Huanshuo and Xu, Fan and Chen, Rui and Yan, Yibo and Wen, Qingsong and Hu, Xuming and Wang, Kun and others},
journal={arXiv preprint arXiv:2502.00338},
year={2025}
}