12 #include "eckit/config/Configuration.h"
14 #include "ioda/ObsSpace.h"
15 #include "ioda/ObsVector.h"
17 #include "oops/base/Variables.h"
19 #include "ufo/GeoVaLs.h"
20 #include "ufo/Locations.h"
21 #include "ufo/ObsBias.h"
23 #include "ufo/ObsDiagnostics.h"
35 oops::Variables operatorVars;
36 operatorVars +=
oper_->simulatedVars();
37 oops::Variables obsSpaceVars;
38 obsSpaceVars += os.obsvariables();
39 if (!(operatorVars == obsSpaceVars))
40 throw eckit::UserError(
"The list of variables simulated by the obs operator differs from "
41 "the list of simulated variables in the obs space",
48 const ObsBias & biascoeff, ioda::ObsVector & ybias,
50 oper_->simulateObs(gvals, yy, ydiags);
62 return oper_->requiredVars();
68 return oper_->locations();
GeoVaLs: geophysical values at locations.
Application of bias correction.
void computeObsBias(const GeoVaLs &, ioda::ObsVector &, const ObsBias &, ObsDiagnostics &) const
Compute bias correction.
std::unique_ptr< ObsOperatorBase > oper_
std::unique_ptr< Locations > locations() const
Operator locations.
void simulateObs(const GeoVaLs &, ioda::ObsVector &, const ObsBias &, ioda::ObsVector &, ObsDiagnostics &) const
Obs Operator.
ObsOperator(ioda::ObsSpace &, const Parameters_ &)
void print(std::ostream &) const
const oops::Variables & requiredVars() const
Operator input required from Model.
Contains a polymorphic parameter holding an instance of a subclass of ObsOperatorParametersBase.