Analytical inversions (analytic / std)

Description

Computes an analytical inversion based on a given observation operator, control vector and observation vector.

It first computes explicitly the linear observation operator \(\mathbf{H}\) by running so-called base functions or response functions. To do so, it iterates on every dimension \(i\) of the control vector and computes \(\mathcal{H}(\mathbf{x}_i)\) with \(\mathbf{x}_i\) a control vector whose values are null, with the exception of the element \(i\) set to 1.

Base functions are computed as individual pyCIF forward simulations and are stored in $workdir/base_functions/

Warning

As one forward simulation per dimension of the control vector is needed for this mode, please first check the dimension of your control vector and the time required for each forward run. You can check this by using the option dryrun (see below)

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

dump_nc_base_control: (optional): False

Dumps elementary control vectors used to build the base functions as NetCDF format; this helps diagnosing whether base functions are computed based on e.g., fluxes consistent with the user expectations

accepted type: <class ‘bool’>

dryrun: (optional): False

Runs a dry analytical inversion to estimate the time needed to compute the full observation operator

accepted type: <class ‘bool’>

Requirements

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

obsvect

ObsVect

False

True

standard

std

controlvect

ControlVect

True

True

standard

std

obsoperator

ObsOperator

True

True

standard

std

platform

Platform

True

True

None

None

Yaml template

Please find below a template for a Yaml configuration:

 1mode:
 2  plugin:
 3    name: analytic
 4    version: std
 5    type: mode
 6
 7
 8  # Optional arguments
 9  dump_nc_base_control: XXXXX
10  dryrun: XXXXX