Deep Learning Weather Prediction (DLWP) model for weather forecasting
This example is an implementation of the DLWP Cubed-sphere model. The DLWP model can be used to predict the state of the atmosphere given a previous atmospheric state. You can infer a 320-member ensemble set of six-week forecasts at 1.4° resolution within a couple of minutes, demonstrating the potential of AI in developing near real-time digital twins for weather prediction
The goal is to train an AI model that can emulate the state of the atmosphere and predict global weather over a certain time span. The Deep Learning Weather Prediction (DLWP) model uses deep CNNs for globally gridded weather prediction. DLWP CNNs directly map u(t) to its future state u(t+Δt) by learning from historical observations of the weather, with Δt set to 6 hr
The model is trained on 7-channel subset of ERA5 Data that is mapped
onto a cubed sphere grid with a resolution of 64x64 grid cells. The map
files were generated using
TempestRemap
library. The model uses years 1980-2015 for training, 2016-2017 for
validation and 2018 for out of sample testing. Some sample scripts for
downloading the data and processing it are provided in the
data_curation
directory. A larger subset of dataset is hosted at the
National Energy Research Scientific Computing Center (NERSC). For
convenience it is available to all via
Globus.
You will need a Globus account and will need to be logged in to your
account in order to access the data. You may also need the Globus
Connect to transfer data.
DLWP uses convolutional neural networks (CNNs) on a cubed sphere grid to produce global forecasts. The latest DLWP model leverages a U-Net architecture with skip connections to capture multi-scale processes.The model architecture is described in the following papers
Sub-Seasonal Forecasting With a Large Ensemble of Deep-Learning Weather Prediction Models
Prerequisites
Install the required dependencies by running below:
pip install -r requirements.txt
To train the model, run
python train_dlwp.py
Progress can be monitored using MLFlow. Open a new terminal and navigate to the training directory, then run:
mlflow ui -p 2458
View progress in a browser at http://127.0.0.1:2458