Innovation-Space Error Diagnostics API

This module implements the Desroziers innovation‑space diagnostic for estimating observation‑error variance and background‑error contributions using only the innovations (OMB and OMA). It is a lightweight tool for monitoring the statistical consistency of the assumed observation-error variance R in UFS DA workflows.

The diagnostic is implemented in:

ufs_da_diagnostics/obs/innovation_br_check.py

and is designed to operate on the same YAML configuration and data structures used by the standard obs_diag utilities.

ATMS‑only innovation-based B/R diagnostics using OMB/OMA and obs_diag.yaml.

Outputs per channel:
  • Sd = E[OMB^2] (innovation variance)

  • R_est = E[OMA * OMB] (Desroziers estimate of R_true)

  • Sd/R = Sd divided by assumed R (chi-square proxy)

  • R_est/R = R_est divided by assumed R (variance scaling indicator)

  • HBH^T = Sd - R_est (background error contribution)

  • HBH^T/R = (Sd - R_est) / R (background-to-observation ratio)

  • scale_R = R_est / R (variance multiplier from Desroziers)

  • infl_chi = sqrt((Sd/R) / chi_target) (std-dev inflation to target chi^2)

Usage:

ufsda-obs-br-check –yaml obs_diag.yaml

ufs_da_diagnostics.obs.innovation_br_check.compute_scalar_desroziers(omb, oma)[source]

Desroziers (2005) identities:

Sd = E[OMB^2] R_est = E[OMA * OMB]

Sd = HBH^T + R_true R_est ≈ R_true

ufs_da_diagnostics.obs.innovation_br_check.diagnose_atms(inst, omb, oma, R_assumed, qc)[source]
ufs_da_diagnostics.obs.innovation_br_check.main()[source]
ufs_da_diagnostics.obs.innovation_br_check.run_br_check(yaml_path)[source]