Skip to content

equinor/iterative_ensemble_smoother

Iterative Ensemble Smoother

License: GPL v3 Stars Python PyPI Downloads Build Status Precommit: enabled Ruff Mypy Code style: black docs

About

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).

Installation

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]'

Usage

iterative_ensemble_smoother mainly implements the two classes SIES and ESMDA. Check out the examples section to see how to use them.

Building the documentation

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/

Releasing a new version

  • Create a tag, e.g. git tag -a v1.0.0 -m "A short note" cf2c87270d3 locally on the commit.
  • Push the tag, e.g. git push upstream v1.0.0.
  • Create a release on the GitHub GUI.

About

Algorithms for data assimilation using ensemble methods.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 27

Languages