Diagonal observation error covariance

UFO includes a generic diagonal observation covariance operator (which operates on a ioda::ObsVector).

Observation error standard deviations for \(R\) are read as an ObsError group from the observation file.

The covariance can be configured using the following options:

  • obs perturbations amplitude (optional, default value is 1.0) – a multiplier used when generating a random sample of observation perturbations using the observation error covariance matrix (standard deviations are multiplied by this number)

  • zero-mean perturbations: logical variable with a default of false. When set to true observation perturbations will be constrained to have a zero ensemble mean (can be used in EDA Applications). If this option is set to true, the following options also have to be set:

    • member: ensemble member index (1-based);

    • number of members: number of ensemble members.

Important

For the zero-mean perturbations option to work, the following requirements must be satisfied:

  1. The obs perturbations seed option in the obs space section must be set to the same value for all ensemble members.

  2. All ensemble members must use the same observations in the same order.

A diagonal \(R\) can be configured as:

obs error:
  covariance model: diagonal

For an EDA experiment where the amplitude of observation perturbations is half of its default value, the following YAML settings can be used:

obs error:
  covariance model: diagonal
  obs perturbations amplitude: 0.5

For an EDA experiment with 10 ensemble members, and perturbing observations ensuring zero-mean perturbations, a diagonal \(R\) for the 2nd ensemble member can be set up as:

obs error:
  covariance model: diagonal
  zero-mean perturbations: true
  member: 2
  number of members: 10