Python module for the implementation of a variational autoencoder (VAE) for climate data. The VAE is a generative model that can be used to learn the underlying distribution of a dataset and to generate new samples from it.
The present methodology extends on the VAE by adding a second decoder to the model. The second decoder is trained to make predictions about the future evolution of the data from the latent space. The VAE is trained to learn the distribution of the data and the prediction decoder is trained to make predictions about the future distribution of the data.
The modeling framework is published in Groth and Chavez (2024). For an implementation see the corresponding Jupyter notebooks at:
The required packages can be installed with pip
:
pip install -r requirements.txt
or with conda
:
conda install --file requirements.txt
Clone the repository, cd
into the project directory and install the package with:
pip install -e .
Python 3.9 or higher is required. The following packages are required:
python>=3.9
tensorflow>=2.5
numpy
scipy
scikit-learn
netCDF4
pandas
matplotlib
cartopy
jupyterlab
See the documentation for more details.
For applications of the VAE to climate data, see its implementation in the following repositories:
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},
}