pyPDAF.PDAF.diag_reliability_budget¶
- pyPDAF.PDAF.diag_reliability_budget(n_times: int, dim_ens: int, dim_p: int, ens_p: np.ndarray, obsvar: np.ndarray, obs_p: np.ndarray) Tuple[np.ndarray, np.ndarray]¶
Compute ensemble reliability budget
The diagnostics derives a balance relationship that decomposes the departure between the ensemble mean and observations: Depar^2 = Bias^2 + EnsVar + ObsUnc^2 + Residual under the assumption of a perfectly reliable ensemble [1]. When the residual 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.
In this subroutine, the budget array returns each term of the reliability budget is given at each given time step. The returned array can be used for significant t-test where each time step is used as a sample from the population. The actual budget is the mean over time steps except for Bias^2 term, which is given separately. This is because the unsquared bias is used in the t-test in the original paper.
The subroutine does not comes with a t-test to ensure that the reliability budget is statistically significant as done in the original paper. However, this can be achieved with external libraries or software if the t-test is deemed important. The t-test should account for the temporal autocorrelation between time steps in the given trajectory.
The diagnostics requires a trajectory of ensemble and observations, a trajectory of an ensemle of observation error variances. The ensemble of observation error variances can be the square of observation errors sampled from observation error distribution as done in stochastic ensemble Kalman filter. In deterministic ensemble systems, the ensemble of observation error variances can be the observation error variances where each ensemble member has the same value.
References
E., Rabier, F., … & Yamaguchi, M. (2016). Reliability in ensemble data assimilation. Quarterly Journal of the Royal Meteorological Society, 142(694), 443-454.
- Parameters:
n_times (int) – Number of time steps
dim_ens (int) – Number of ensemble members
dim_p (int) – Dimension of the state vector
ens_p (ndarray[np.float64, ndim=3]) – Ensemble matrix over times Array shape: (dim_p, dim_ens, n_times)
obsvar (ndarray[np.float64, ndim=3]) – Squared observation error/variance at n_times Array shape: (dim_p, dim_ens, n_times)
obs_p (ndarray[np.float64, ndim=2]) – Observation vector Array shape: (dim_p, n_times)
- Returns:
budget (ndarray[np.float64, ndim=3]) – Budget term for a single time step Array shape: (dim_p, n_times, 5)
bias_2 (ndarray[np.float64, ndim=1]) – bias^2 uses Array shape: (dim_p)