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

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, 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

Usage

iterative_ensemble_smoother mainly implements the class ESMDA. Check out the examples section to see how to use it.

Building the documentation

apt install pandoc # Pandoc is required to build the documentation.
uv run 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

29 stars

Watchers

8 watching

Forks

Packages

 
 
 

Contributors

Languages