Source code for pycif.utils.classes.obsoperators

import datetime
from types import MethodType

from .baseclass import Plugin


[docs]class ObsOperator(Plugin):
[docs] def obsoper( self, inputs, mode, run_id=0, datei=datetime.datetime(1979, 1, 1), datef=datetime.datetime(2100, 1, 1), workdir="./", **kwargs ): """The observation operator. This function maps information from the control space to the observation space and conversely depending on the running mode. Args: 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 sub-directory name datei (datetime.datetime): beginning of the simulation window datef (datetime.datetime): end of the simulation window workdir (str): path to the parent directory """ return
[docs] @classmethod def register_plugin(cls, name, version, module, subtype="", **kwargs): """Register a module for a plugin and version with possibly options Args: 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 """ super(ObsOperator, cls).register_plugin( name, version, module, plugin_type="obsoperator", subtype=subtype )
[docs] def initiate_template(self): super(ObsOperator, self).initiate_template( plg_type="obsoperator", default_functions={"obsoper": True} )