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
A prior ensemble
Proxy records (often called proxy observations)
Proxy estimates, and
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.