Ensemble Adjustment Kalman Filter Update.

The Ensemble Adjustment Kalman Filter (EAKF) [1], is a deterministic variant of the Ensemble Kalman Filter [2].

Specifically, the Ensemble Kalman Filter update step guarantees that the expectation of the ensemble covariance matches that of a usual Kalman filter update step. The EAKF modifies the update step so as to guarantee the ensemble covariance after updating matches that of the true posterior under a Linear Gaussian State Space Model. This update is also deterministic.

This can reduce variance and yield better estimates compared to the Ensemble Kalman Filter. In the univariate observation case, this is about the same cost as an Ensemble Kalman Filter update, but the multivariate observation case will require 2 SVD computations per update.

state Instance of EnsembleKalmanFilterState.
observation Tensor representing the observation for this timestep.
observation_fn callable returning an instance of tfd.MultivariateNormalLinearOperator along with an extra information to be returned in the EnsembleKalmanFilterState.
minimum_observation_prior_variance Python Float. If set, this will be minimum for the observation prior variance.
name Python str name for ops created by this method. Default value: None (i.e., 'ensemble_adjustment_kalman_filter_update').

next_state EnsembleKalmanFilterState representing particles at next timestep, after applying Kalman update equations.


[1] Jeffrey L. Anderson. An Ensemble Adjustment Kalman Filter for Data Assimilation. Monthly Weather Review, 2001.

[2] Geir Evensen. Sequential data assimilation with a nonlinear quasi-geostrophic model using Monte Carlo methods to forecast error statistics. Journal of Geophysical Research, 1994.