# 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.

Important

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

The

`obs perturbations seed`

option in the`obs space`

section must be set to the same value for all ensemble members.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
```