Data initialization from the control vector fromcontrol/std

Data initialization from the control vector fromcontrol/std#

Description#

fromcontrol transform: map control vector to physical input data formats.

This is the first transform in every forward pipeline branch (start_pipe = True). It reads the current control vector \(\mathbf{x}\) and maps each control variable back to the physical field that the model expects as input.

Two variable types are handled:

  • scalar (default) — the control vector contains multiplicative scaling factors applied element-wise to the prior input field \(x_\textrm{phys} = s \cdot x_\textrm{prior}\).

  • physical — the control vector directly stores the physical field values; no prior multiplication is performed.

The adjoint propagates model sensitivities \(\delta x^*\) from the model grid back into the flattened control-vector gradient controlvect.dx via temporal aggregation and horizontal/vertical projection.

For ensemble inversion modes (EnSRF, Monte Carlo), the optimised forward_perturb path loads all ensemble members from a pre-saved control vector file in a single call to avoid repeated I/O.

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:

Optional arguments#

parameter : str, optional

Parameter name on which the transform works on

component : str, optional

Component name on which the transform works on

orig_parameter_plg : Plugin, optional

Plugin object on which the transform works on

orig_component_plg : Plugin, optional

Corresponding component object on which the transform works on

successor : str, optional

Name of the successor transform

precursor : str, optional

Name of the precursor transform

Requirements#

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

model

Model

True

True

None

None

obsvect

ObsVect

True

True

standard

std

controlvect

ControlVect

True

True

standard

std

YAML template#

Please find below a template for a YAML configuration:

 1transform:
 2  plugin:
 3    name: fromcontrol
 4    version: std
 5    type: transform
 6
 7  # Optional arguments
 8  parameter: XXXXX  # str
 9  component: XXXXX  # str
10  orig_parameter_plg: XXXXX  # Plugin
11  orig_component_plg: XXXXX  # Plugin
12  successor: XXXXX  # str
13  precursor: XXXXX  # str