enkf {spatPomp}R Documentation

Generalized Ensemble Kalman filter (EnKF)

Description

A function to perform filtering using the ensemble Kalman filter of Evensen, G. (1994). This function is generalized to allow for an measurement covariance matrix that varies over time. This is useful if the measurement model varies with the state.

Usage

## S4 method for signature 'spatPomp'
enkf(data, Np, ..., verbose = getOption("verbose", FALSE))

Arguments

data

A spatPomp object.

Np

The number of Monte Carlo particles used to approximate the filter distribution.

...

If a params argument is specified, abf will estimate the likelihood at that parameter set instead of at coef(object).

verbose

logical; if TRUE, messages updating the user on progress will be printed to the console.

Value

An object of class ‘enkfd_spatPomp’ that contains the estimate of the log likelihood (via the loglik attribute), algorithmic parameters used to run enkf(). Also included are estimated filter means, prediction means and forecasts that are generated during an enkf() run.

References

G. Evensen. Sequential data assimilation with a nonlinear quasi-geostrophic model using Monte Carlo methods to forecast error statistics. Journal of Geophysical Research: Oceans 99, 10143–10162, 1994.

G. Evensen. Data assimilation: the ensemble Kalman filter. Springer-Verlag, 2009.

J.L. Anderson. An Ensemble Adjustment Kalman Filter for Data Assimilation. Monthly Weather Review 129, 2884–2903, 2001.

See Also

ienkf(), igirf, iubf, ibpf

Other likelihood evaluation algorithms: abf(), abfir(), bpfilter(), girf()

Examples

# Complete examples are provided in the package tests
## Not run: 
# Create a simulation of a Brownian motion
b <- bm(U=2, N=5)

# Run EnKF
enkfd_bm <- enkf(b, Np = 20)

# Get a likelihood estimate
logLik(enkfd_bm)

## End(Not run)

[Package spatPomp version 0.34.2 Index]