Metadata-Version: 2.1
Name: iterative_ensemble_smoother
Version: 0.2.1
Summary: A library for the iterative ensemble smoother algorithm.
Author-email: Equinor <fg_sib-scout@equinor.com>
Maintainer-email: Eivind Jahren <ejah@equinor.com>, Feda Curic <fcur@equinor.com>
License: GPL-3.0
Project-URL: Homepage, https://github.com/equinor/iterative_ensemble_smoother
Project-URL: Repository, https://github.com/equinor/iterative_ensemble_smoother
Project-URL: Bug Tracker, https://github.com/equinor/iterative_ensemble_smoother/issues
Project-URL: Documentation, https://iterative_ensemble_smoother.readthedocs.io/en/stable/
Classifier: Development Status :: 1 - Planning
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/markdown
License-File: COPYING
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: doc
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: pydata_sphinx_theme; extra == "doc"
Requires-Dist: jupyter_sphinx; extra == "doc"
Requires-Dist: sphinxcontrib.bibtex; extra == "doc"
Requires-Dist: matplotlib; extra == "doc"
Requires-Dist: pygments; extra == "doc"
Requires-Dist: jupytext; extra == "doc"
Requires-Dist: pandas; extra == "doc"
Requires-Dist: p_tqdm; extra == "doc"
Requires-Dist: ipykernel; extra == "doc"
Requires-Dist: ipywidgets; extra == "doc"
Requires-Dist: numpydoc; extra == "doc"
Requires-Dist: scipy; extra == "doc"
Requires-Dist: jinja2; extra == "doc"
Requires-Dist: m2r2; extra == "doc"
Requires-Dist: myst_nb; extra == "doc"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-snapshot; extra == "dev"
Requires-Dist: pytest-memray; extra == "dev"
Requires-Dist: tox; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: matplotlib; extra == "dev"
Requires-Dist: scipy; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pandas; extra == "dev"
Requires-Dist: p_tqdm; extra == "dev"
Requires-Dist: pylint; extra == "dev"

Iterative Ensemble Smoother
===========================

[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/equinor/iterative_ensemble_smoother/blob/main/COPYING)
[![Stars](https://img.shields.io/github/stars/equinor/iterative_ensemble_smoother.svg?style=social&label=Star&maxAge=2592000)](https://github.com/equinor/iterative_ensemble_smoother/stargazers)
[![Python](https://img.shields.io/pypi/pyversions/iterative_ensemble_smoother.svg)](https://pypi.org/pypi/iterative_ensemble_smoother)
[![PyPI](https://img.shields.io/pypi/v/iterative_ensemble_smoother.svg)](https://pypi.org/pypi/iterative_ensemble_smoother)
[![Downloads](https://static.pepy.tech/badge/iterative_ensemble_smoother)](https://pepy.tech/project/iterative_ensemble_smoother)
[![Build Status](https://github.com/equinor/iterative_ensemble_smoother/actions/workflows/upload_to_pypi.yml/badge.svg)](https://github.com/equinor/iterative_ensemble_smoother/actions/workflows/main.yml)
[![Precommit: enabled](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![docs](https://readthedocs.org/projects/iterative_ensemble_smoother/badge/?version=latest&style=plastic)](https://iterative-ensemble-smoother.readthedocs.io/)

## About

**iterative_ensemble_smoother** is a Python package that implements the subspace iterative ensemble smoother as described in [evensen2019](https://www.frontiersin.org/articles/10.3389/fams.2019.00047/full).
This algorithm is particularly effective for problems with a large number of parameters (e.g., millions) and a few realizations or samples (e.g., hundreds).

## Installation

**iterative_ensemble_smoother** is on PyPi and can be installed using pip:

```text
pip install iterative_ensemble_smoother
```

If you want to do development, then run:

```text
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

```bash
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.
