8 #ifndef UFO_FILTERS_OBSFUNCTIONS_OBSERRORMODELQUAD_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_OBSERRORMODELQUAD_H_
14 #include "ioda/ObsDataVector.h"
15 #include "oops/util/parameters/OptionalParameter.h"
16 #include "oops/util/parameters/Parameter.h"
17 #include "oops/util/parameters/Parameters.h"
18 #include "oops/util/parameters/RequiredParameter.h"
33 oops::RequiredParameter<Variable>
xvar{
"xvar",
this};
38 oops::OptionalParameter<std::string>
chlist{
"channels",
this};
40 oops::RequiredParameter<std::vector<float>>
a{
"a",
this};
42 oops::RequiredParameter<std::vector<float>>
b{
"b",
this};
44 oops::RequiredParameter<std::vector<float>>
err0{
"err0",
this};
46 oops::RequiredParameter<std::vector<float>>
err1{
"err1",
this};
48 oops::Parameter<bool>
save{
"save",
false,
this};
118 static const std::string
classname() {
return "ObsErrorModelQuad";}
Parameterize the observation error as a piece-wise quadratic function of a ufo::Variable.
ObsErrorModelQuad(const eckit::LocalConfiguration &)
static const std::string classname()
ObsErrorModelQuadParameters options_
const ufo::Variables & requiredVariables() const
geovals required to compute the function
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
Options controlling ObsErrorModelQuad ObsFunction.
oops::Parameter< bool > save
whether to save the xfunc values to the ObsSpace
oops::RequiredParameter< Variable > xvar
x variable of the piece-wise function
oops::RequiredParameter< std::vector< float > > b
x-coordinate of the quadratic function apex
oops::OptionalParameter< std::string > chlist
oops::RequiredParameter< std::vector< float > > err0
y-coordinate of the lower piecewise inflection point
oops::RequiredParameter< std::vector< float > > err1
y-coordinate of the upper piecewise inflection point
oops::RequiredParameter< std::vector< float > > a
curvature of the quadratic function
ObsFilterData provides access to all data related to an ObsFilter.