← Back to main page

Forecasting Global Weather with Graph Neural Networks

My 2022 solo paper showed that a machine learning model could forecast global weather on par with the operational physics-based models from NOAA and ECMWF at 1° resolution. Cited 450+ times, it helped spark today's wave of AI weather models.

Open source

Run the model yourself

I've open-sourced the code and weights under the MIT license.

  • 10-day forecast in under a minute on a laptop
  • Initialize forecasts from ERA5 or recent ECMWF IFS analysis
  • Scripts for evaluating against ERA5, computing forecast sensitivities, and forecasting Hurricane Sandy

My hope is that, as a relatively lightweight model, this can serve as a starting point for anyone interested in ML weather prediction.

Forecast sensitivity. How does tomorrow's wind at one location (the white dot) depend on today's winds everywhere else?
Single step

6-hour model predictions

6-hour changes in geopotential height, temperature and humidity: ERA5 versus the ML model
An example of the 6-hour difference in geopotential height, temperature, and humidity in the ERA5 dataset (left column) and the prediction from the machine learning model (right column). The model is able to accurately predict 6-hour changes in these variables using only the initial state.
Multi-step rollout

5-day rollouts

ERA5 (left) and the ML model (right). Three separate rollouts are shown, and for each rollout we cycle through Q850, T850, U500, V500, W500, and Z500.
Model

Architecture

Encoder, processor and decoder graph neural networks mapping between a latitude/longitude grid and an icosahedron grid
Using the current atmospheric state, the model evolves the state forward by 6 hours. The 3D atmospheric state is defined on a uniform latitude/longitude grid, with 78 channels per pixel (6 physical variables × 13 pressure levels = 78 channels). An Encoder GNN encodes onto latent features defined on an icosahedron grid, a Processor GNN performs additional processing of the latents, and a Decoder GNN maps back to the atmospheric state on a latitude/longitude grid.
Stress test

1-year rollout

While this system was designed to forecast weather on ~5-day horizons, it is interesting to observe the model behavior over very long rollouts. The videos below show a 1-year rollout, from 2020-01-01 to 2021-01-01. While the model remains numerically stable over 1460 steps, it does develop several unphysical properties: overly smooth predictions, location-specific anomalies, and a grid pattern corresponding to the icosahedron processing grid.

Z500, Q850, T850

U500, V500, W850

Case study

Hurricane Sandy

An 8-day rollout of Z1000 (geopotential height at 1000 hPa) for Hurricane Sandy. The original GFS forecast is shown on the left, the ERA5 reanalysis data is shown in the center, and the 8-day forecast from the ML model (with ERA5 initial conditions) is shown on the right.
Cite

Citation

@article{keisler2022forecasting,
  title   = {Forecasting Global Weather with Graph Neural Networks},
  author  = {Keisler, Ryan},
  journal = {arXiv preprint arXiv:2202.07575},
  year    = {2022}
}