Changes between Initial Version and Version 1 of PDAF_diag_reliability_budget


Ignore:
Timestamp:
May 13, 2025, 2:36:19 PM (5 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF_diag_reliability_budget

    v1 v1  
     1= PDAF_diag_reliability_budget =
     2
     3This page documents the routine `PDAF_diag_reliability_budget` of PDAF, which was introduced with PDAF V3.0.
     4
     5The diagnostics derives a balance relationship that decomposes the
     6departure between the ensemble mean and observations:[[BR]]
     7|| Depar^2^ = Bias^2^ + !EnsVar + !ObsUnc^2^ + Residual||[[BR]]
     8under the assumption of a perfectly reliable ensemble. When the
     9residual 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.
     10
     11In this subroutine, the budget array returns each term of the
     12reliability budget is given at each given time step. The returned
     13array can be used for significant t-test where each time step is used
     14as a sample from the population. The actual budget is the mean over
     15time steps except for Bias^2 term, which is given separately. This
     16is because the unsquared bias is used in the t-test in the original
     17paper.
     18
     19The subroutine does not comes with a t-test to ensure that
     20the reliability budget is statistically significant as done
     21in the original paper. However, this can be achieved with external
     22libraries or software if the t-test is deemed important. The t-test
     23should account for the temporal autocorrelation between time steps
     24in the given trajectory.
     25 
     26The diagnostics requires a trajectory of ensemble and observations,
     27a trajectory of an ensemle of observation error variances. The
     28ensemble of observation error variances can be the square of
     29observation errors sampled from observation error distribution as
     30done in stochastic ensemble Kalman filter. In deterministic ensemble
     31systems, the ensemble of observation error variances can be the
     32observation error variances where each ensemble member has the same
     33value.
     34
     35The reliability budget is proposed by
     36Rodwell, M. J., Lang, S. T. K., Ingleby, N. B., Bormann, N., Holm,
     37E., Rabier, F., ... & Yamaguchi, M. (2016).
     38Reliability in ensemble data assimilation.
     39Quarterly Journal of the Royal Meteorological Society, 142(694), 443-454.
     40
     41The routine can be called in the pre/poststep routine of PDAF both before and after the analysis step to compute the ensemble statistics. It can also be alled independently from PDAF, i.e. without a prior call to `PDAF_init`.
     42
     43The interface is:
     44{{{
     45SUBROUTINE PDAF_diag_reliability_budget(n_times, dim_ens, dim_p, &
     46                                        ens_p, obsvar, obs_p, budget, bias_2)
     47
     48  INTEGER, INTENT(in) :: n_times                        !< Number of time steps
     49  INTEGER, INTENT(in) :: dim_ens                        !< Number of ensemble members
     50  INTEGER, INTENT(in) :: dim_p                          !< Dimension of the state vector
     51  REAL, INTENT(in) :: ens_p(dim_p, dim_ens, n_times)    !< Ensemble matrix over times
     52  REAL, INTENT(in) :: obsvar(dim_p, dim_ens, n_times)   !< Squared observation error/variance at n_times.
     53                                                        !< In ensemble of var/stochastic EnKF system,
     54                                                        !< the observation error is different for each ensemble member.
     55                                                        !< If an observation variance is given directly,
     56                                                        !< same value can be used across dimensions.
     57  REAL, INTENT(in)  :: obs_p(dim_p, n_times)            !< Observation vector       
     58  REAL, INTENT(out) :: budget(dim_p, n_times, 5)        !< Budget term for a single time step
     59                                                        !< 1. depar^2, 2. bias, 3. ensvar, 4. obsunc, 5. residual
     60                                                        !< Each time step is used as a sample for significant tests
     61  REAL, INTENT(out) :: bias_2(dim_p)                    !< bias^2 uses
     62}}}