wiki:OMI_nondiagonal_observation_error_covariance_matrices

Version 3 (modified by lnerger, 5 weeks ago) (diff)

--

Using non-diagonal R matrices with OMI

This feature was introduced with PDAF V2.3.

The default mode of PDAF-OMI is to use a diagonal observation error covariance matrix R and specifying the observation error variances, i.e. the diagonalof R only. This is in line with the common choice in data assimilation to assume that observation errors are uncorrelated.

However, there are also observation types with significant observation error correlations, which should be represented by a non-diagonal observation error covariance matrix. With PDAF V2.3 support for such nondiagonal R matrices was added to OMI.

PDAF-OMI's support for nondiagonal R-matrices consists in given the user access to the routines that perform operations involve R. This differs with the filter type, e.g. in LESTKF and LETKF a produce of some matrix with the inverse of R ha sto be computed, while in the traditional, perturbed observations, EnKF the matrix R has to be added to some other matrix. For the particle filter and the NETF the computation of the likelihood involves R.

Routines to perform the analysis step

For using a nondiagonal R there is a modified variant of the PDAF-OMI routines PDAFomi_assimilate_* or PDAFomi_put_state_*. Compared to the case of a diagonal R, the routines are slightly less generic. Below we provide an overview of the routines including the links to the interface description of each:

Global Filter diagonal R non-diagonal R
EnKF PDAFomi_assimilate_global
PDAFomi_put_state_global
PDAFomi_assimilate_enkf_nondiagR
PDAFomi_put_state_enkf_nondiagR
ESTKF PDAFomi_assimilate_global
PDAFomi_put_state_global
PDAFomi_assimilate_global_nondiagR
PDAFomi_put_state_global_nondiagR
ETKF PDAFomi_assimilate_global
PDAFomi_put_state_global
PDAFomi_assimilate_global_nondiagR
PDAFomi_put_state_global_nondiagR
PF PDAFomi_assimilate_global
PDAFomi_put_state_global
PDAFomi_assimilate_nonlin_nondiagR
PDAFomi_put_state_nonlin_nondiagR
NETF PDAFomi_assimilate_global
PDAFomi_put_state_global
PDAFomi_assimilate_nonlin_nondiagR
PDAFomi_put_state_nonlin_nondiagR
SEIK PDAFomi_assimilate_global
PDAFomi_put_state_global
PDAFomi_assimilate_global_nondiagR
PDAFomi_put_state_global_nondiagR


Local Filter diagonal R non-diagonal R
LEnKF PDAFomi_assimilate_lenkf
PDAFomi_put_state_lenkf
PDAFomi_assimilate_lenkf_nondiagR
PDAFomi_put_state_lenkf_nondiagR
LESTKF PDAFomi_assimilate_local
PDAFomi_put_state_local
PDAFomi_assimilate_local_nondiagR
PDAFomi_put_state_local_nondiagR
LETKF PDAFomi_assimilate_local
PDAFomi_put_state_local
PDAFomi_assimilate_local_nondiagR
PDAFomi_put_state_local_nondiagR
LSEIK PDAFomi_assimilate_local
PDAFomi_put_state_local
PDAFomi_assimilate_local_nondiagR
PDAFomi_put_state_local_nondiagR
LNETF PDAFomi_assimilate_local
PDAFomi_put_state_local
PDAFomi_assimilate_lnetf_nondiagR
PDAFomi_put_state_lnetf_nondiagR
LKNETF PDAFomi_assimilate_local
PDAFomi_put_state_local
PDAFomi_assimilate_lknetf_nondiagR
PDAFomi_put_state_lknetf_nondiagR


3D-Var diagonal R non-diagonal R
3DVar PDAFomi_assimilate_3dvar
PDAFomi_assimilate_3dvar
PDAFomi_put_state_3dvar_nondiagR
PDAFomi_put_state_3dvar_nondiagR
En3DVar ESTKF PDAFomi_assimilate_en3dvar_estkf
PDAFomi_assimilate_en3dvar_estkf
PDAFomi_put_state_en3dvar_estkf_nondiagR
PDAFomi_put_state_en3dvar_estkf_nondiagR
En3DVar LESTKF PDAFomi_assimilate_en3dvar_lestkf
PDAFomi_assimilate_en3dvar_lestkf
PDAFomi_put_state_en3dvar_lestkf_nondiagR
PDAFomi_put_state_en3dvar_lestkf_nondiagR
hyb3DVar ESTKF PDAFomi_assimilate_hyb3dvar_estkf
PDAFomi_assimilate_hyb3dvar_estkf
PDAFomi_put_state_hyb3dvar_estkf_nondiagR
PDAFomi_put_state_hyb3dvar_estkf_nondiagR
hyb3DVar LESTKF PDAFomi_assimilate_hyb3dvar_lestkf
PDAFomi_assimilate_hyb3dvar_lestkf
PDAFomi_put_state_hyb3dvar_lestkf_nondiagR
PDAFomi_put_state_hyb3dvar_lestkf_nondiagR

Call-back routines handling observations

For the different filters and 3D-Var variants,