Efficient inference and learning of a generative model for ENSO predictions from large multi-model datasets
Official Jupyter notebooks for the implementation of a variational autoencoder (VAE) for ENSO modeling and prediction.
The work is published in
Groth and Chavez, 2024: Efficient inference and learning of a generative model for ENSO predictions from large multi-model datasets. Climate Dynamics, https://doi.org/10.1007/s00382-024-07162-w.
In this paper, historical simulations of global sea-surface temperature (SST) from the fifth phase of the Coupled Model Intercomparison Project (CMIP5) are analyzed. Based on the concept of a variational auto-encoder (VAE), a generative model of global SST is proposed in combination with an inference model that aims to solve the problem of determining a joint distribution over the data generating factors. With a focus on the El Niño Southern Oscillation (ENSO), the performance of the VAE-based approach in simulating various central features of observed ENSO dynamics is demonstrated. A combination of the VAE with a forecasting model is proposed to make predictions about the distribution of global SST and the corresponding future path of the Niño index from the learned latent factors.
-
The Jupyter notebooks require the VAE package, which is available at:
-
Sample data used in Groth and Chavez (2024) is included in the
data/
folder. The data was collected with the help of the Climate Explorer at:For more information on the data see
data/README.md
.
The repository includes two Jupyter notebooks, one for model training and another one for model exploration.
- The model is trained with
VAEp_train.ipynb
- Properties of the trained model are explored with
VAEp_explore.ipynb
The weights of a trained model used to create the figures in Groth and Chavez (2024) are provided in the logs/
folder of this repository.
Example runs of the Jupyter notebooks are available in the examples/
folder of this repository. The examples are based on the sample data in the data/
folder.
Please add a reference to the following paper if you use parts of this code:
@Article{Groth.Chavez.2024,
author = {Groth, Andreas and Chavez, Erik},
journal = {Climate Dynamics},
title = {Efficient inference and learning of a generative model for {ENSO} predictions from large multi-model datasets},
year = {2024},
doi = {10.1007/s00382-024-07162-w},
publisher = {Springer Science and Business Media LLC},
}