UFO
|
Categorical observation operator. More...
#include <ObsCategorical.h>
Public Types | |
typedef ObsCategoricalParameters | Parameters_ |
Public Member Functions | |
ObsCategorical (const ioda::ObsSpace &, const Parameters_ &) | |
~ObsCategorical () 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... | |
![]() | |
ObsOperatorBase (const ioda::ObsSpace &odb, const eckit::Configuration &=eckit::LocalConfiguration()) | |
virtual | ~ObsOperatorBase () |
virtual std::unique_ptr< Locations > | locations () const |
Locations for GeoVaLs. More... | |
virtual oops::Variables | simulatedVars () const |
List of variables simulated by this operator. 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_ |
ObsSpace. More... | |
ObsCategoricalData< ObsOperatorBase > | data_ |
Data handler for the Categorical operator and TL/AD code. More... | |
Categorical observation operator.
The Categorical operator can be used to run several observation operators, each of which produces a vector of H(x) values. The Categorical operator then creates a final H(x) vector by selecting the observation operator at each location according to a categorical variable.
The choice of observation operator at each location is governed by the categorical variable
parameter, which must be an integer or string variable in the MetaData group.
The categorised operators
map is used to produce a correspondence between values of the categorical variable and the operator used.
The fallback operator
parameter governs the observation operator that will be used whenever a particular value of the categorical variable does not exist in categorised operators
.
The operator configurations
parameter governs the configuration of each of the operators to be used. If either the fallback operator or one of the categorised operators have not been configured, an exception will be thrown.
An example yaml configuration is as follows: obs operator: name: Categorical categorical variable: station_id fallback operator: "Composite" categorised operators: {"47418": "Composite", "54857": "Identity"} operator configurations:
This operator uses station_id@MetaData as the categorical variable. Both the Identity and Composite operators are used to produce H(x) vectors. Then, at each location in the ObsSpace:
Definition at line 81 of file ObsCategorical.h.
The type of parameters accepted by the constructor of this operator. This typedef is used by the ObsOperatorFactory.
Definition at line 86 of file ObsCategorical.h.
ufo::ObsCategorical::ObsCategorical | ( | const ioda::ObsSpace & | odb, |
const Parameters_ & | params | ||
) |
Definition at line 29 of file ObsCategorical.cc.
|
override |
Definition at line 42 of file ObsCategorical.cc.
|
inlinestatic |
Definition at line 88 of file ObsCategorical.h.
|
overrideprivatevirtual |
Implements ufo::ObsOperatorBase.
Definition at line 72 of file ObsCategorical.cc.
|
inlineoverridevirtual |
Operator input required from Model.
Implements ufo::ObsOperatorBase.
Definition at line 95 of file ObsCategorical.h.
|
overridevirtual |
|
private |
Data handler for the Categorical operator and TL/AD code.
Definition at line 105 of file ObsCategorical.h.
|
private |
ObsSpace.
Definition at line 102 of file ObsCategorical.h.