baseline⚓︎
Unsophisticated" but robust (widely applicable) DA methods.
Many are based on raanes2016thesis.
Modules:
Name | Description |
---|---|
series |
Time series management and processing. |
Climatology
⚓︎
A baseline/reference method.
Note that the "climatology" is computed from truth, which might be (unfairly) advantageous if the simulation is too short (vs mixing time).
OptInterp
⚓︎
Optimal Interpolation -- a baseline/reference method.
Uses the Kalman filter equations, but with a prior from the Climatology.
Persistence
⚓︎
Sets estimate to the true state at the previous time index.
The analysis (.a
) stat uses the previous obs. time.
The forecast and universal (.f
and .u
) stats use previous integration time
index.
PreProg
⚓︎
Simply look-up the estimates in user-specified function (schedule
).
For example, with schedule
given by lambda k, xx, yy: xx[k]
the error (err.rms, err.ma, ...
) should be 0.
Var3D
⚓︎
3D-Var -- a baseline/reference method.
This implementation is not "Var"-ish: there is no iterative optimzt. Instead, it does the full analysis update in one step: the Kalman filter, with the background covariance being user specified, through B and xB.
fit_sigmoid(Sb, L, kb)
⚓︎
Return a sigmoid [function S(k)] for approximating error dynamics.
We use the logistic function for the sigmoid; it's the solution of the
"population growth" ODE: dS/dt = a*S*(1-S/S(∞))
.
NB: It might be better to use the "error growth ODE" of Lorenz/Dalcher/Kalnay,
but this has a significantly more complicated closed-form solution,
and reduces to the above ODE when there's no model error (ODE source term).
The "normalized" sigmoid, S1
, is symmetric around 0, and S1(-∞)=0
and S1(∞)=1
.
The sigmoid S(k) = S1(a*(k-kb) + b)
is fitted with
a
corresponding to a given corr. lengthL
.b
to match values ofS(kb)
andSb