Diagonal observation error covariance

The diagonal observation error covariance \(R\) implementation in OOPS can be used both for any of the toy models, and for the models that use UFO.

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. Set to true to constrain observation perturbations to have a zero ensemble mean (can be used in the Ensemble of Data Assimilations (EDA)). 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.


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