Changes between Version 2 and Version 3 of OMI_nondiagonal_observation_error_covariance_matrices


Ignore:
Timestamp:
Sep 9, 2024, 9:20:58 AM (3 weeks ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OMI_nondiagonal_observation_error_covariance_matrices

    v2 v3  
    1 == Using non-diagonal R matrices with OMI ==
     1= Using non-diagonal R matrices with OMI =
     2
     3[[PageOutline(2-3,Contents of this page)]]
    24
    35This feature was introduced with PDAF V2.3.
     
    79However, 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.
    810
    9 PDAF-OMIs 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**.
     11PDAF-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**.
    1012
     13
     14
     15== Routines to perform the analysis step ==
     16
     17For 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:
     18
     19||= '''Global Filter'' =||= **diagonal R** =||= **non-diagonal R** =||
     20||= EnKF =|| [wiki:PDAFomi_assimilate_global][[BR]][wiki:PDAFomi_put_state_global] ||  [wiki:PDAFomi_assimilate_enkf_nondiagR][[BR]][wiki:PDAFomi_put_state_enkf_nondiagR]  ||
     21||= ESTKF =|| [wiki:PDAFomi_assimilate_global][[BR]][wiki:PDAFomi_put_state_global] ||  [wiki:PDAFomi_assimilate_global_nondiagR][[BR]][wiki:PDAFomi_put_state_global_nondiagR]  ||
     22||= ETKF =|| [wiki:PDAFomi_assimilate_global][[BR]][wiki:PDAFomi_put_state_global] ||  [wiki:PDAFomi_assimilate_global_nondiagR][[BR]][wiki:PDAFomi_put_state_global_nondiagR]  ||
     23||= PF =|| [wiki:PDAFomi_assimilate_global][[BR]][wiki:PDAFomi_put_state_global] ||  [wiki:PDAFomi_assimilate_nonlin_nondiagR][[BR]][wiki:PDAFomi_put_state_nonlin_nondiagR]  ||
     24||= NETF =|| [wiki:PDAFomi_assimilate_global][[BR]][wiki:PDAFomi_put_state_global] ||  [wiki:PDAFomi_assimilate_nonlin_nondiagR][[BR]][wiki:PDAFomi_put_state_nonlin_nondiagR]  ||
     25||= SEIK =|| [wiki:PDAFomi_assimilate_global][[BR]][wiki:PDAFomi_put_state_global] ||  [wiki:PDAFomi_assimilate_global_nondiagR][[BR]][wiki:PDAFomi_put_state_global_nondiagR]  ||
     26[[BR]]
     27||= '''Local Filter'' =||= **diagonal R** =||= **non-diagonal R** =||
     28||= LEnKF =|| [wiki:PDAFomi_assimilate_lenkf][[BR]][wiki:PDAFomi_put_state_lenkf] ||  [wiki:PDAFomi_assimilate_lenkf_nondiagR][[BR]][wiki:PDAFomi_put_state_lenkf_nondiagR]  ||
     29||= LESTKF =|| [wiki:PDAFomi_assimilate_local][[BR]][wiki:PDAFomi_put_state_local] ||  [wiki:PDAFomi_assimilate_local_nondiagR][[BR]][wiki:PDAFomi_put_state_local_nondiagR]  ||
     30||= LETKF =|| [wiki:PDAFomi_assimilate_local][[BR]][wiki:PDAFomi_put_state_local] ||  [wiki:PDAFomi_assimilate_local_nondiagR][[BR]][wiki:PDAFomi_put_state_local_nondiagR]  ||
     31||= LSEIK =|| [wiki:PDAFomi_assimilate_local][[BR]][wiki:PDAFomi_put_state_local] ||  [wiki:PDAFomi_assimilate_local_nondiagR][[BR]][wiki:PDAFomi_put_state_local_nondiagR]  ||
     32||= LNETF =|| [wiki:PDAFomi_assimilate_local][[BR]][wiki:PDAFomi_put_state_local] ||  [wiki:PDAFomi_assimilate_lnetf_nondiagR][[BR]][wiki:PDAFomi_put_state_lnetf_nondiagR]  ||
     33||= LKNETF =|| [wiki:PDAFomi_assimilate_local][[BR]][wiki:PDAFomi_put_state_local] ||  [wiki:PDAFomi_assimilate_lknetf_nondiagR][[BR]][wiki:PDAFomi_put_state_lknetf_nondiagR]  ||
     34[[BR]]
     35||= '''3D-Var'' =||= **diagonal R** =||= **non-diagonal R** =||
     36||= 3DVar =|| [wiki:PDAFomi_assimilate_3dvar][[BR]][wiki:PDAFomi_assimilate_3dvar] || [wiki:PDAFomi_put_state_3dvar_nondiagR][[BR]][wiki:PDAFomi_put_state_3dvar_nondiagR ] ||
     37||= En3DVar ESTKF =|| [wiki:PDAFomi_assimilate_en3dvar_estkf][[BR]][wiki:PDAFomi_assimilate_en3dvar_estkf] || [wiki:PDAFomi_put_state_en3dvar_estkf_nondiagR][[BR]][wiki:PDAFomi_put_state_en3dvar_estkf_nondiagR] ||
     38||= En3DVar LESTKF =|| [wiki:PDAFomi_assimilate_en3dvar_lestkf][[BR]][wiki:PDAFomi_assimilate_en3dvar_lestkf] || [wiki:PDAFomi_put_state_en3dvar_lestkf_nondiagR][[BR]][wiki:PDAFomi_put_state_en3dvar_lestkf_nondiagR] ||
     39||= hyb3DVar ESTKF =|| [wiki:PDAFomi_assimilate_hyb3dvar_estkf][[BR]][wiki:PDAFomi_assimilate_hyb3dvar_estkf] || [wiki:PDAFomi_put_state_hyb3dvar_estkf_nondiagR][[BR]][wiki:PDAFomi_put_state_hyb3dvar_estkf_nondiagR] ||
     40||= hyb3DVar LESTKF =|| [wiki:PDAFomi_assimilate_hyb3dvar_lestkf][[BR]][wiki:PDAFomi_assimilate_hyb3dvar_lestkf] || [wiki:PDAFomi_put_state_hyb3dvar_lestkf_nondiagR][[BR]][wiki:PDAFomi_put_state_hyb3dvar_lestkf_nondiagR] ||
     41
     42== Call-back routines handling observations ==
     43
     44For the different filters and 3D-Var variants,