Giter VIP home page Giter VIP logo

paper-linear-invariants-ensemble-filters's Introduction

A Julia package for preserving linear invariants in ensemble filtering methods

This repository is a companion to the work 1: [Le Provost, Glaubitz, and Marzouk, 2024, "Preserving linear invariants in ensemble filters for data assimilation", under preparation]

Abstract: Formulating dynamical models for physical phenomena is essential for understanding the interplay between the different mechanisms, predicting the evolution of physical states, and developing effective control strategies. However, a dynamical model alone is often insufficient to address these fundamental tasks, as it suffers from model errors and uncertainties. One common remedy is to rely on data assimilation, where the state estimate is updated with observations of the true system. Ensemble filters sequentially assimilate observations by updating a set of samples over time. They operate in two steps: a forecast step that propagates each sample through the dynamical model and an analysis step that updates the samples with incoming observations. For accurate and robust predictions of dynamical systems, discrete solutions must preserve their critical invariants. While modern numerical solvers satisfy these invariants, existing invariant-preserving analysis steps are limited to Gaussian settings and are often not compatible with classical regularization techniques of ensemble filters, e.g., inflation and covariance tapering. The present work focuses on preserving linear invariants, such as mass, stoichiometric balance of chemical species, and electrical charges. Using tools from measure transport theory (Spantini et al., 2022, SIAM Review), we introduce a generic class of nonlinear ensemble filters that automatically preserve desired linear invariants in non-Gaussian filtering problems. By specializing this framework to the Gaussian setting, we recover a constrained formulation of the Kalman filter. Then, we show how to combine existing regularization techniques for the ensemble Kalman filter (Evensen, 1994, J. Geophys. Res.) with the preservation of the linear invariants. Finally, we investigate the influence of the number of linear invariants on the performance of the unconstrained/constrained ensemble Kalman filter.

This repository contains the source code and Jupyter notebooks to reproduce the numerical experiment in Le Provost et al. 1

Time evolution of the linear invariant $U_\perp^T x_t$ for the true state process (green) and the posterior mean obtained with the unconstrained EnKF (blue) and the constrained EnKF (dashed yellow) for an ensemble size of $M = 40$

Installation

This package works on Julia 1.6 and above. To install from the REPL, type e.g.,

] add https://github.com/mleprovost/Paper-Linear-Invariants-Ensemble-Filters.git

Correspondence email

[email protected]

References

Licence

See LICENSE.md

Footnotes

  1. Le Provost, Glaubitz, and Marzouk (2024) "Preserving linear invariants in ensemble filters for data assimilation," under preparation. 2

paper-linear-invariants-ensemble-filters's People

Contributors

mleprovost avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.