Changes between Version 7 and Version 8 of DataAssimilationDiagnostics


Ignore:
Timestamp:
May 27, 2025, 5:02:18 PM (5 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataAssimilationDiagnostics

    v7 v8  
    33[[PageOutline]]
    44
    5 With version 1.12 of PDAF, we introduce a first set of routines to compute diagnostics about the ensembles. The diagnostics can be used to assess the quality of the ensemble. The routine have been ported from the tool developed by the SANGOMA project, in which the PDAF developers were involved. We plan to provide further diagnostic routines in future releases of PDAF.
     5The data assimilation diagnostics can be used to assess the quality of the ensemble. The first set of routines were ported from the tools developed by the SANGOMA project, in which the PDAF developers were involved. With PDAF V3.0 we extended the set of diagnostics.
    66
    77For now there are four routines:
     8
     9== PDAF_diag_ensmean ==
     10
     11This routine computes the ensemble mean state vector.
     12
     13For a documentation  see the [wiki:PDAF_diag_ensmean detail page on PDAF_diag_ensmean].
     14
     15
     16
     17== PDAF_diag_stddev ==
     18
     19This routine computes the mean ensemble standard deviation as the square root of the spatial mean variance. This value is a common diagnostic of the ensemble spread, which is often computed in `prepoststep_pdaf`.
     20
     21There are two variants:
     22* [wiki:PDAF_diag_stddev]: This routine computes the standard deviation taking into account the parlalelization. Thus, if the ensemble array is decomposed in PDAF, the global standard deviation will be computed. The routine uses the parallelization as initialized by the call to `PDAF_init`.
     23* [wiki:PDAF_diag_stddev_nompi]: This routine does not used parallelization and computes the standard deviation for the provided ensemble array. If this is for a sub-domain in case of a parallelized model, the resulting value is only valid for this sub-domain. This routine does not require that PDAF was initialized by a call to `PDAF_init`.
     24
     25
     26== PDAF_diag_variance ==
     27
     28This routine computes the variance field related to the ensemble spread of a provided ensemble array. The routine also return the mean ensemble standard deviation as the square root of the spatial mean variance, analogous to `PDAF_diag_stddev`.
     29
     30There are two variants:
     31* [wiki:PDAF_diag_variance]: This routine takes parallelization into account. Thus, it computes the variance field for the provided ensemble array. If the ensemble is decomposed by parallelization in PDAF, the global standard deviation will be computed. The routine uses the parallelization as initialized by the call to `PDAF_init`.
     32* [wiki:PDAF_diag_variance_nompi]: This routines does not use parallelization. It computes the variance field and the ensmeble mean standard deviation for the provived ensemble array.  If this is for a sub-domain in case of a parallelized model, the resulting mean standard deviation is only valid for this sub-domain. This routine does not require that PDAF was initialized by a call to `PDAF_init`.
     33
     34
     35== PDAF_diag_rmsd ==
     36
     37This routine computes root mean square difference (RMSD) beween two input vectors. These could be, for ex the ensemble mean state and a reference state.
     38
     39there are two variants:
     40* [wiki:PDAF_diag_rmsd]: This routine takes parallelization. It assumes that both input vectors are decomposed according to the parallelization intiialized by the call to `PDAF_init`. It then computes the RMSD for the global vectors.
     41* [wiki:PDAF_diag_rmsd_nompi]: The routine does not use parallelization. It only computes the RMSD for the provided input vectors. If these are decomposed by the parallelization the RMSD is only computed for the sub-domain. This routine does not require that PDAF was initialized by a call to `PDAF_init`.
     42
     43Note: For computing the RMSD between a observation and the observed ensemble, one can use the routine [wiki:OMI_observation_diagnostics_PDAF3 PDAFomi_diag_rmsd] provided by the PDAF-OMI observation diagnostics module.
    844
    945== PDAF_diag_effsample ==
     
    3268== PDAF_diag_CRPS ==
    3369
    34 This routine was added in PDAF V2.0. It computes the continuous ranked probability score (CRPS) and its decomposition in reliability and resoliution (Hersbach, Weather and Forecasting, 2000).
     70This routine computes the continuous ranked probability score (CRPS) and its decomposition in reliability and resolution (Hersbach, Weather and Forecasting, 2000).
    3571
    36 For a documention on `PDAF_diag_CRPS` see the [wiki:PDAF_diag_crps detail page on PDAF_diag_CRPS]. The routine is used in the Lorenz-63 model example in `models/lorenz63/compute_truerms.F90`.
     72For use within the PDAF environment, i.e. after calling `PDAF_initz`, there is the routine:
     73* [wiki:PDAF_diag_crps]
     74This routine is used in the Lorenz-63 model example in `models/lorenz63/compute_truerms.F90`.
    3775
    38 With PDAF V2.2.1 we added two further CRPS routines:
     76There are also routines that can be used outside the PDAF environment, i.e. they don't need that `PDAF_init` was called before:
    3977 * [wiki:PDAF_diag_CRPS_nompi]: This routine computes CRPS and related quantities without parallelization
    4078 * [wiki:PDAF_diag_CRPS_mpi]: This routine computes CRPS and related quantities utilizing parallelization to obtain global scores for parallized models.
    41 These routines can be used outside the PDAF environment, i.e. they don't need that `PDAF_init` was called before.
     79
     80
     81
     82
     83
     84== PDAF_diag_compute_moments ==
     85
     86This routine computes the mean, the unbiased variance, the unbiased skewness, and the unbiased excess kurtosis from an ensemble. All moments are stored in a single array. One can select the highest order that should be computed. With parallelized models, the moments are computed for the process-local state.
     87
     88The routine does not use parallelization and can also be used if PDAF was not initialized by calling `PDAF_init`.
     89
     90For a documentation  see the [wiki:PDAF_diag_compute_moments page on PDAF_diag_compute_moments].
     91
     92== PDAF_diag_reliability_budget ==
     93
     94This routines computes the reliability budget of an ensemble as proposed by Rodwell, M. J., Lang, S. T. K., Ingleby, N. B., Bormann, N., Holm, E., Rabier, F., ... & Yamaguchi, M. (2016). Reliability in ensemble data assimilation. Quarterly Journal of the Royal Meteorological Society, 142(694), 443-454.
     95
     96The reliability budget derives a balance relationship that decomposes the
     97departure between the ensemble mean and observations:[[BR]]
     98|| Depar^2^ = Bias^2^ + !EnsVar + !ObsUnc^2^ + Residual||[[BR]]
     99under the assumption of a perfectly reliable ensemble. When the
     100residual term is not small, one can identify the sources of problematic ensemble representation of the uncertainty by looking at each terms. One of the benefits of the reliability budget diagnostics is that it can identify spatially local issues in ensemble perturbations.
     101
     102For a documentation  see the [wiki:PDAF_diag_reliability_budget page on PDAF_diag_reliability_budget].