StdDev¶
The StdDev SABER block is a diagonal matrix and therefore its own adjoint (it is equal to its transpose). Since the block is auto-adjoint, there is no difference between its application in the adjoint and forward directions, and so it will apply its standard deviation values twice, reflecting how variance is the square of the standard deviation.
The block can be setup several ways. Primarily, it is used to read-in the diagonal coefficients (standard deviations) from a model file. It also can (optionally) apply a scaling factor to all fields either in combination with a model file-read, or as a standalone scaling factor without a file-read. An example with both a file-read and a global scaling is below:
saber outer blocks:
- saber block name: StdDev
scale factor: 2.0 # (optional) if given, must be greater than 0
read:
atlas file:
filepath: <path to coefficients data>
Remember, the scale factor and coefficients from file will be applied twice.
An alternative mode – which is mostly used for testing, demonstration, or tutorials – for
the block is to apply distinct standard deviations to each control variable in your background
error model. In this mode, the block does not use read: and each entry under
standard deviations: must define a stddev value.
saber outer blocks:
- saber block name: StdDev
standard deviations:
- variable: <control_var_1>
stddev: 2.0
- variable: <control_var_2>
stddev: 5.0
As in the other mode, each stddev value will be applied twice within a block-chain.
It is also possible to combine a file-read with variable-specific scaling in the same
StdDev block. In that case, the coefficients are first read from file and then each
variable listed under standard deviations: is additionally multiplied by its own
scale factor.
saber outer blocks:
- saber block name: StdDev
read:
atlas file:
filepath: <path to coefficients data>
standard deviations:
- variable: <control_var_1>
scale factor: 2.0
- variable: <control_var_2>
scale factor: 0.5
When read: is present, entries under standard deviations: must use
scale factor, not stddev. When read: is absent, entries under
standard deviations: must use stddev, not scale factor.