Skip to content

EdoardoCalvello/EnsembleKalmanMethods

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ensemble Kalman Methods

Example of application of EnKF on Lorenz `96 state estimation problem

Ensemble Kalman methods and numerical experiments from the paper "Ensemble Kalman Methods: A Mean Field Perspective" (https://arxiv.org/abs/2209.11371). To cite this repository use

@article{Calvello2025Ensemble,
  title={Ensemble Kalman methods: A mean-field perspective},
  volume={34},
  journal={Acta Numerica},
  author={Calvello, Edoardo and Reich, Sebastian and Stuart, Andrew M.},
  year={2025},
  pages={123–291}
}

The code contained in the files ./Lorenz96/DATools_.py and ./Lorenz96/L96_multiscale.py is due to Dmitry Burov. If using the Lorenz `96 data generation files, please also cite

@article{Burov2021Kernel,
  title={Kernel analog forecasting: {M}ultiscale test problems},
  author={Burov, Dmitry and Giannakis, Dimitrios and Manohar, Krithika and Stuart, Andrew},
  journal={Multiscale Modeling \& Simulation},
  volume={19},
  number={2},
  pages={1011--1040},
  year={2021},
  publisher={SIAM}
} 

Quick Start Guide

The folder Data_Assimilation contains the DA algorithms used in the paper. Namely, the file DA_Filtering.py contains the filtering schemes ThreeDVAR and EnKF, on the other hand the file DA_Inversion.py contains EKI_transport, which can be used for both Bayesian inversion and optimization, and EKI_post for Bayesian inversion.

To generate Lorenz `96 data, run the python script data_gen.py from the Lorenz96 folder.

To reproduce the filtering experiments from the paper, run the python scripts 3DVAR_L96m.py, 3DVAR_L96s.py and EnKF_L96s.py, either running them directly or through the script run.sh. This will create a "results" folder containing the saved data. To subsequently generate the plots run the python script generate_plots.py.

Similarly, to reproduce the inversion experiments from the paper, run the python scripts EKI_1D.py, EKI_L96.py, either running them directly or through the script run.sh. This will again create a "results" folder containing the saved data. To subsequently generate the plots run the python script generate_plots.py.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors