13 #include "ioda/ObsVector.h"
15 #include "oops/util/Logger.h"
17 #include "ufo/GeoVaLs.h"
18 #include "ufo/ObsDiagnostics.h"
28 const eckit::Configuration & config)
31 oops::Log::trace() <<
"ObsIdentity constructor starting" << std::endl;
36 oops::Log::trace() <<
"ObsIdentity constructor finished" << std::endl;
42 oops::Log::trace() <<
"ObsIdentity destructed" << std::endl;
49 oops::Log::trace() <<
"ObsIdentity: simulateObs starting" << std::endl;
51 std::vector<double> vec(ovec.nlocs());
53 const std::string& varname = ovec.varnames().variables()[jvar];
56 for (
size_t jloc = 0; jloc < ovec.nlocs(); ++jloc) {
57 const size_t idx = jloc * ovec.nvars() + jvar;
58 ovec[idx] = vec[jloc];
62 oops::Log::trace() <<
"ObsIdentity: simulateObs finished" << std::endl;
68 os <<
"ObsIdentity operator" << std::endl;
GeoVaLs: geophysical values at locations.
void getAtLevel(std::vector< double > &, const std::string &, const int) const
Get GeoVaLs at a specified level.
ObsIdentity(const ioda::ObsSpace &, const eckit::Configuration &)
oops::Variables operatorVars_
Operator variables.
std::vector< int > operatorVarIndices_
Indices of operator variables.
oops::Variables requiredVars_
Required variables.
void simulateObs(const GeoVaLs &, ioda::ObsVector &, ObsDiagnostics &) const override
Obs Operator.
void print(std::ostream &) const override
static ObsOperatorMaker< ObsIdentity > obsIdentityMaker_("Identity")
void getOperatorVariables(const eckit::Configuration &conf, const oops::Variables &simulatedVariables, oops::Variables &operatorVariables, std::vector< int > &operatorVariableIndices)