UFO
ufo::ObsComposite Class Reference

A collection of observation operators used to simulate different variables. More...

#include <ObsComposite.h>

Inheritance diagram for ufo::ObsComposite:
Collaboration diagram for ufo::ObsComposite:

Public Types

typedef ObsCompositeParameters Parameters_
 

Public Member Functions

 ObsComposite (const ioda::ObsSpace &, const Parameters_ &)
 
 ~ObsComposite () override
 
void simulateObs (const GeoVaLs &, ioda::ObsVector &, ObsDiagnostics &) const override
 Obs Operator. More...
 
const oops::Variables & requiredVars () const override
 Operator input required from Model. More...
 
oops::Variables simulatedVars () const override
 List of variables simulated by this operator. More...
 
- Public Member Functions inherited from ufo::ObsOperatorBase
 ObsOperatorBase (const ioda::ObsSpace &odb, const eckit::Configuration &=eckit::LocalConfiguration())
 
virtual ~ObsOperatorBase ()
 
virtual std::unique_ptr< Locationslocations () const
 Locations for GeoVaLs. More...
 

Static Public Member Functions

static const std::string classname ()
 

Private Member Functions

void print (std::ostream &) const override
 

Private Attributes

const ioda::ObsSpace & odb_
 
std::vector< std::unique_ptr< ObsOperatorBase > > components_
 
oops::Variables requiredVars_
 

Detailed Description

A collection of observation operators used to simulate different variables.

Use this operator to split the list of simulated variables in the ObsSpace into groups, each of which should be simulated with a different operator. For example, if the list of simulated variables contains some upper-air variables that need to be vertically interpolated and some surface variables that don't, you can arrange the obs operator section in the input YAML file as in the following example:

obs operator:
  name: Composite
  components:
  - name: VertInterp
    variables:
    - name: relative_humidity
      name: northward_wind
      name: eastward_wind
  - name: Identity
    variables:
    - name: surface_pressure
Note
Only some operators (currently VertInterp and Identity) currently support the variables option and thus can be used to simulate only a subset of variables.

Definition at line 55 of file ObsComposite.h.

Member Typedef Documentation

◆ Parameters_

The type of parameters accepted by the constructor of this operator. This typedef is used by the ObsOperatorFactory.

Definition at line 60 of file ObsComposite.h.

Constructor & Destructor Documentation

◆ ObsComposite()

ufo::ObsComposite::ObsComposite ( const ioda::ObsSpace &  odb,
const Parameters_ parameters 
)

Definition at line 31 of file ObsComposite.cc.

Here is the call graph for this function:

◆ ~ObsComposite()

ufo::ObsComposite::~ObsComposite ( )
override

Definition at line 50 of file ObsComposite.cc.

Member Function Documentation

◆ classname()

static const std::string ufo::ObsComposite::classname ( )
inlinestatic

Definition at line 62 of file ObsComposite.h.

◆ print()

void ufo::ObsComposite::print ( std::ostream &  os) const
overrideprivatevirtual

Implements ufo::ObsOperatorBase.

Definition at line 87 of file ObsComposite.cc.

◆ requiredVars()

const oops::Variables& ufo::ObsComposite::requiredVars ( ) const
inlineoverridevirtual

Operator input required from Model.

Implements ufo::ObsOperatorBase.

Definition at line 69 of file ObsComposite.h.

◆ simulatedVars()

oops::Variables ufo::ObsComposite::simulatedVars ( ) const
overridevirtual

List of variables simulated by this operator.

The default implementation returns the list of all simulated variables in the ObsSpace.

Reimplemented from ufo::ObsOperatorBase.

Definition at line 68 of file ObsComposite.cc.

◆ simulateObs()

void ufo::ObsComposite::simulateObs ( const GeoVaLs ,
ioda::ObsVector &  ,
ObsDiagnostics  
) const
overridevirtual

Obs Operator.

Implements ufo::ObsOperatorBase.

Definition at line 56 of file ObsComposite.cc.

Member Data Documentation

◆ components_

std::vector<std::unique_ptr<ObsOperatorBase> > ufo::ObsComposite::components_
private

Definition at line 78 of file ObsComposite.h.

◆ odb_

const ioda::ObsSpace& ufo::ObsComposite::odb_
private

Definition at line 77 of file ObsComposite.h.

◆ requiredVars_

oops::Variables ufo::ObsComposite::requiredVars_
private

Definition at line 79 of file ObsComposite.h.


The documentation for this class was generated from the following files: