Forward run forward/std#
Description#
Forward (or tangent-linear) run of the observation operator.
Mathematical framework#
The observation operator \(\mathcal{H}\) maps the control vector \(\mathbf{x} \in \mathbb{R}^n\) to the observation space \(\mathbf{y} \in \mathbb{R}^m\):
When run_mode = 'tl', only the linearised (tangent-linear) operator is
evaluated:
where \(\mathbf{H} = \partial\mathcal{H}/\partial\mathbf{x}\) is the Jacobian of \(\mathcal{H}\) evaluated at the linearisation point \(\mathbf{x}_b\).
OSSE perturbation#
When perturb_obsvect = True, synthetic observations are generated by
adding Gaussian noise to the simulated values:
where \(\delta\) is set by the obserror parameter. This is used to
create synthetic truth in Observing System Simulation Experiments (OSSEs).
Outputs#
Simulated observation vector — written to the
sim(orsim_tl) column of the outputmonitor.ncfile.OSSE observations — when
perturb_obsvect = True, perturbed values are written to theobscolumn and \(\sigma_\varepsilon\) toyobs_err.4-D concentration fields — saved by the model plugin when configured to do so.
YAML arguments#
The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:
- run_mode : “fwd” or “tl”, optional, default “fwd”
Running mode for the forward simulation
“fwd”: run a full forward mode
“tl”: run the tangent-linear operator
- use_xb : bool, optional, default True
Initialise the control vector
xfrom the backgroundxbbefore running.
- perturb_obsvect : bool, optional, default False
Generate synthetic observations for OSSEs by adding Gaussian noise to the simulated values: \(y_\mathrm{obs} = y_\mathrm{sim} + \varepsilon\), \(\varepsilon \sim \mathcal{N}(0,\,\delta\cdot\sigma_{y_\mathrm{sim}})\), where \(\delta\) is set by
obserror. Perturbed values are written to theobscolumn ofmonitor.ncand \(\sigma_\varepsilon\) toyobs_err.
- obserror : float, optional, default 0.0
Fractional scale \(\delta\) for the OSSE noise: \(\sigma_\varepsilon = \delta \cdot \sigma_{y_\mathrm{sim}}\). Used only when
perturb_obsvect = True.
- reload_results : bool, optional, default False
Skip already-completed simulations and reload their results from disk.
Requirements#
The current plugin requires the present plugins to run properly:
Requirement name |
Requirement type |
Explicit definition |
Any valid |
Default name |
Default version |
|---|---|---|---|---|---|
controlvect |
True |
True |
standard |
std |
|
obsoperator |
True |
False |
standard |
std |
YAML template#
Please find below a template for a YAML configuration:
1mode:
2 plugin:
3 name: forward
4 version: std
5 type: mode
6
7 # Optional arguments
8 run_mode: XXXXX # fwd|tl
9 use_xb: XXXXX # bool
10 perturb_obsvect: XXXXX # bool
11 obserror: XXXXX # float
12 reload_results: XXXXX # bool
See also