14 #include "ioda/ObsSpace.h"
15 #include "ioda/ObsVector.h"
17 #include "oops/base/Variables.h"
18 #include "oops/util/DateTime.h"
19 #include "oops/util/Duration.h"
20 #include "oops/util/Logger.h"
22 #include "ufo/GeoVaLs.h"
32 const eckit::Configuration & config)
37 eckit::LocalConfiguration(config,
"obs operator")).operatorParameters)),
40 oops::Log::trace() <<
"ObsTimeOperTLAD created" << std::endl;
46 oops::Log::trace() <<
"ObsTimeOperTLAD destructed" << std::endl;
53 oops::Log::trace() <<
"ObsTimeOperTLAD::setTrajectory entering" << std::endl;
56 << geovals << std::endl;
60 geovals.
split(gv1, gv2);
79 oops::Log::trace() <<
"ObsTimeOperTLAD::setTrajectory exiting" << std::endl;
85 oops::Log::trace() <<
"ObsTimeOperTLAD::simulateObsTL entering" << std::endl;
88 << geovals << std::endl;
92 geovals.
split(gv1, gv2);
109 oops::Log::trace() <<
"ObsTimeOperTLAD::simulateObsTL exiting" << std::endl;
115 oops::Log::trace() <<
"ObsTimeOperTLAD::simulateObsAD entering" << std::endl;
118 << geovals << std::endl;
122 geovals.
split(gv1, gv2);
136 geovals.
merge(gv1, gv2);
139 << geovals << std::endl;
141 oops::Log::trace() <<
"ObsTimeOperTLAD::simulateObsAD exiting" << std::endl;
147 os <<
"ObsTimeOperTLAD::print not implemented" << std::endl;
GeoVaLs: geophysical values at locations.
void split(GeoVaLs &, GeoVaLs &) const
Split two GeoVaLs.
const oops::Variables & getVars() const
void merge(const GeoVaLs &, const GeoVaLs &)
Merge two GeoVaLs.
const ioda::ObsSpace & obsspace() const
The space containing the observations to be simulated by this operator.
Linear obs operator factory.
Contains a polymorphic parameter holding an instance of a subclass of ObsOperatorParametersBase.
std::vector< std::vector< float > > timeWeights_
std::unique_ptr< LinearObsOperatorBase > actualoperator_
void simulateObsAD(GeoVaLs &, const ioda::ObsVector &) const override
void simulateObsTL(const GeoVaLs &, ioda::ObsVector &) const override
virtual ~ObsTimeOperTLAD()
ObsTimeOperTLAD(const ioda::ObsSpace &, const eckit::Configuration &)
void print(std::ostream &) const override
void setTrajectory(const GeoVaLs &, ObsDiagnostics &) override
Obs Operator.
static LinearObsOperatorMaker< ObsTimeOperTLAD > makerTimeOperTL_("TimeOperLinInterp")
std::vector< std::vector< float > > timeWeightCreate(const ioda::ObsSpace &odb_, const eckit::Configuration &config)