iterative_ensemble_smoother is a Python library for data assimilation and history matching using ensemble-based methods. It implements efficient algorithms particularly effective for problems with a large number of parameters (e.g., millions) and relatively few realizations (e.g., hundreds).
The package provides two main algorithms:
- ESMDA (Ensemble Smoother with Multiple Data Assimilation) - A non-iterative method with multiple data assimilation steps, described in Emerick & Reynolds 2013
- SIES (Subspace Iterative Ensemble Smoother) - An iterative Gauss-Newton method described in Evensen et al. 2019
The package also supports two methods of localization: correlation-based (AdaptiveESMDA) and distance-based (DistanceESMDA).
iterative_ensemble_smoother is on PyPi and can be installed using pip:
pip install iterative_ensemble_smoother
If you want to do development, then run:
git clone https://github.com/equinor/iterative_ensemble_smoother.git
cd iterative_ensemble_smoother
<create environment>
pip install --editable '.[doc,dev]'
iterative_ensemble_smoother mainly implements the two classes SIES and ESMDA.
Check out the examples section to see how to use them.
apt install pandoc # Pandoc is required to build the documentation.
pip install .[doc]
sphinx-build -c docs/source/ -b html docs/source/ docs/build/html/- Create a tag, e.g.
git tag -a v1.0.0 -m "A short note" cf2c87270d3locally on the commit. - Push the tag, e.g.
git push upstream v1.0.0. - Create a release on the GitHub GUI.