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
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, we use uv to have one synchronized development environment for all packages. See installing uv. We recommend installing uv using your system's package manager, or into a small dedicated virtual environment.
git clone https://github.com/equinor/iterative_ensemble_smoother.git
cd iterative_ensemble_smoother
uv sync --all-extras
iterative_ensemble_smoother mainly implements the class ESMDA.
Check out the examples section to see how to use it.
apt install pandoc # Pandoc is required to build the documentation.
uv run 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.