obsoperators class#

class pycif.utils.classes.obsoperators.ObsOperator(plg_orig=None, orig_name='', **kwargs)[source]#

Bases: Plugin

Plugin type for observation operators.

Maps between control/model space and observation space in both forward and adjoint modes. Wraps the full chain from model run to simulated observation values.

Concrete implementations live in pycif/plugins/obsoperators/.

obsoper(inputs, mode, run_id=0, datei=datetime.datetime(1979, 1, 1, 0, 0), datef=datetime.datetime(2100, 1, 1, 0, 0), workdir='./', **kwargs)[source]#

The observation operator. This function maps information from the control space to the observation space and conversely depending on the running mode.

Parameters:
  • self (ObsOperator) – the ObsOperator plugin

  • inputs (Controlvect or Obsvect) – the inputs of the fwd or adj mode

  • mode (str) – the running mode

  • run_id (int) – the ID of the current run (determines the

  • name (sub-directory)

  • datei (datetime.datetime) – beginning of the simulation window

  • datef (datetime.datetime) – end of the simulation window

  • workdir (str) – path to the parent directory

classmethod register_plugin(name, version, module, subtype='', **kwargs)[source]#

Register a module for a plugin and version with possibly options

Parameters:
  • name (str) – name of the plugin

  • version (str) – version of the plugin

  • module (types.ModuleType) – module defining the interface between pyCIF and the plugin

  • plugin_type (str) – type of plugin

  • **kwargs (dictionary) – default options for module

initiate_template()[source]#

Initialise the ObsOperator plugin template.

Loads the registered observation-operator module and attaches obsoper as a bound method on this instance.