particleFilter

YOu can use the particleFilter class to implement an offline particle filter assimilation algorithm. The class implements particleFilter objects. You can use these objects to set the experimental parameters and data inputs for a particular analysis, and then run the algorithm using the indicated settings. On the remainder of this page, we’ll examine some key commands and features of this class.

Essential Inputs

Like the Kalman filter, the particle filter also requires 4 essential inputs. These are

  1. A prior ensemble

  2. Proxy records (often called proxy observations)

  3. Proxy estimates, and

  4. Proxy uncertainties

You can provide each of these inputs to a Kalman filter object using the associated kalmanFilter input command. These commands are prior, observations, estimates, and uncertainties.

Weighting Scheme

When using a particle filter, the updated analysis for each assimilation time step consists of a weighted mean across the ensemble members. The particleFilter class allows you to select the weighting scheme used by the algorithm. Currently, the class supports two weighting schemes:

Bayesian

The default weighting scheme weights the ensemble members using a Bayes’ formula. This method conforms to the classical particle filter, but may suffer from degeneracy in some cases.

Best N

The “Best N” weighting scheme determines the N ensemble members that most closely match the proxy observations and assigns them equal weight. All other ensemble members are given a weight of 0. The case where N=1 is sometimes referred to as a “degenerate particle filter” or as the “analogue method”.

You can select a weighting scheme using the particleFilter.weights command.