es⚓︎
ES type schemes
ES
⚓︎
Bases: EnKF
Ensemble Smoother (ES).
Assimilates all observations simultaneously in a single update, rather than
sequentially in time as the filter does. It is :class:EnKF specialised to
one data group, and shares its analysis step; only the iteration budget and
the misfit bookkeeping differ.
A single conditioning step is cheap but can over-correct when the model is
strongly non-linear. :class:ESMDA addresses this by spreading the same
update over several inflated steps.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
keys_da
|
dict
|
Parsed |
required |
keys_en
|
dict
|
Parsed |
required |
sim
|
object
|
Forward simulator instance, e.g. |
required |
analysis
|
(approx, full, subspace)
|
Analysis flavour, i.e. how the ensemble-approximated sensitivity is
inverted. Defaults to the |
'approx'
|
Attributes:
| Name | Type | Description |
|---|---|---|
ensemble |
AssimilationEnsemble
|
Collaborator holding the state realisations, observed data and
simulator. Its state is exposed as properties on the scheme, so
|
analysis |
AnalysisBase
|
The bound analysis object. Note the constructor takes |
analysis_name |
str
|
The flavour name that was resolved, e.g. |
iteration |
int
|
Accepted iterations completed so far. |
data_misfit, prior_data_misfit |
float
|
Current and initial mean data misfit. |
Notes
assimindex is flattened to a single group at construction, so the
ordering that matters for :class:EnKF has no effect here.
Because there is only one step, the full flavour coincides with
approx -- the prior-increment term they differ over is only reached
when iterating -- so :attr:EnKF.COMPATIBLE_ANALYSES, inherited
unchanged here, points "full" at the cheaper approx analysis.
Examples:
References
Evensen, Data Assimilation: The Ensemble Kalman Filter evensen2009a.
See Also
EnKF : Sequential form of the same update. ESMDA : Spreads the conditioning over several inflated steps.
__init__(keys_da, keys_en, sim, analysis=None, ensemble=None)
⚓︎
Build the ensemble from the config (or take the one given) and bind the analysis.
See the class docstring for the parameters.
check_convergence()
⚓︎
ES takes a single all-data-at-once step; nothing stops early.
score_and_commit()
⚓︎
Calculate the "convergence" of the method. Important to