Package: pyesmda
pyESMDAPython Ensemble Smoother with Multiple Data Assimilationpyesmdais an open-source, pure python, and object-oriented library that provides
a user friendly implementation of one of the most popular ensemble based method
for parameters estimation and data assimilation: the Ensemble Smoother with
Multiple Data Assimilation (ES-MDA) algorithm, introduced by Emerick and Reynolds [1-2].Thanks to its simple formulation, ES-MDA of Emerick and Reynolds (2012) is perhaps the
most used iterative form of the ensemble smoother in geoscience applications.Free software: MIT licenseDocumentation:https://pyesmda.readthedocs.io.How to CiteSoftware/Code citation for pyESMDA:Antoine Collet. (2023). pyESMDA - Python Ensemble Smoother with Multiple Data Assimilation (v0.4.3). Zenodo.https://doi.org/10.5281/zenodo.7425670References[1] Emerick, A. A. and A. C. Reynolds, Ensemble smoother with multiple
data assimilation, Computers & Geosciences, 2012.[2] Emerick, A. A. and A. C. Reynolds. (2013). History-Matching
Production and Seismic Data in a Real Field Case Using the Ensemble
Smoother With Multiple Data Assimilation. Society of Petroleum
Engineers - SPE Reservoir Simulation Symposium
1.    2. 10.2118/163675-MS.Changelog0.4.3 (2023-08-03)!PR39ENH: introduce abstraction through a base class and remove some code duplication (see solve methods) and remove some conflicts around the inflation parameters.
ESMDA-RS now supports local update (batch_sizeandis_parallel_analyse_step) and initial inflation of the ensemble (cov_mm_inflation_factor). The keywordseedhas been replaced by a more flexiblerandom_state, that acceptsnp.random.RandomStateandGeneratorin addition to classic seeds. In ESMDA-RS, thestd_m_prioris no longer mandatory and can be omitted. In that case,
the initial adjusted parameter variance is estimated from the ensemble.0.4.2 (2023-08-02)!PR36ENH: add some correlation functions.Also add new hooks in pre-commit.0.4.1 (2023-07-31)!PR33FIX: the covariance inflation is now applied before the forecast step.0.4.0 (2023-06-28)!PR30ENH: Allow to perform the analyse step by batches of gridblocks and avoid the
construction on large (N, M) correlation matrices. Three new parameters have been introduced -batch_size: Number of parameters that are assimilated at once. This option is
available to overcome memory limitations when the number of updated parameters is large. In that case, the size of the covariance matrices tends to explode
and the update step must be performed by chunks of parameters.is_parallel_analyse_step: Whether to use parallel computing for the analyse step if the number of batch is above one. The default is True.n_batches: Number of batches required during the update step.
It also introduces the support for sparse matrices for correlation matrices and observation covariance matrix.!PR29ENH: Add a function to get the ensemble variance. Convinient to compute the uncertainty a posteriori without the full covariance matrix approximation.STYLE: Format with updated version of black.0.3.3 (2022-12-12)!PR27STYLE: Add a DOI number from zenodo and correct typos.0.3.2 (2022-10-07)!PR21FIX: design - some static methods should be moved to a utils.py file.0.3.1 (2022-08-12)!PR20Fix ESMDA-RS documentation and change thecov_m_priorinput parameter to its diagonalstd_m_priorto be consistent with the implementation and be less memory consuming.0.3.0 (2022-08-12)!PR15Implement ESMDA-RS (restricted step) which provides
an automatic estimation of the inflation parameter and determines when to stop (number of assimilations) on the fly.!PR14Add keywordis_forecast_for_last_assimilationto choose whether to
compute the predictions for the ensemble obtained at the last assimilation step. The default is True.!PR13Implementation: Faster analyse step by avoiding matrix inversion.!PR12Add a seed parameter for the random
number generationseedin the prediction perturbation step.
To avoid confusion ,cov_dhas been renamedcov_obs.!PR11Implement the covariance localization. Introduces the
correlation matricesdd_correlation_matrixandmd_correlation_matrix.
To avoid confusion ,cov_dhas been renamedcov_obs.!PR10Implement the parameters auto-covariance inflation.
Add the estimation of the parameters auto-covariance matrix. The parameteralphabecomescov_obs_inflation_factors.0.2.0 (2022-07-23)!PR6The parameterstdev_dbecomescov_d.!PR5The parametern_assimilationbecomesn_assimilations.!PR4The parameterstdev_mis removed.!PR3Type hints are now used in the library.!PR2Add the possibility to save the history of m and d. This introduces a new knew
keyword (boolean) for the constructorsave_ensembles_history.
Note that them_meanattribute is depreciated and two new attributes are
introduced:m_history,d_historyrespectively to access the successive
parameter and predictions ensemble.0.1.0 (2021-11-28)First release on PyPI.MIT LicenseCopyright (c) 2021, Antoine ColletPermission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.