11 #ifndef OOPS_BASE_TRAJECTORYSAVER_H_
12 #define OOPS_BASE_TRAJECTORYSAVER_H_
16 #include "eckit/config/LocalConfiguration.h"
22 #include "oops/util/DateTime.h"
23 #include "oops/util/Duration.h"
31 template <
typename MODEL>
49 std::shared_ptr<LinearModel_>
tlm_;
51 void doInitialize(
const State_ &,
const util::DateTime &,
const util::Duration &)
override;
58 template <
typename MODEL>
62 std::shared_ptr<LinearModel_> tlm,
65 resol_(resol), pptraj_(pptraj), lrBias_(new
ModelAux_(resol, bias)), tlm_(tlm)
67 Log::trace() <<
"TrajectorySaver::TrajectorySaver 4D" << std::endl;
70 template <
typename MODEL>
74 resol_(resol), pptraj_(pptraj), lrBias_(), tlm_()
76 Log::trace() <<
"TrajectorySaver::TrajectorySaver 3D" << std::endl;
79 template <
typename MODEL>
81 const util::DateTime & end,
82 const util::Duration & step) {
83 Log::trace() <<
"TrajectorySaver::doInitialize start" << std::endl;
85 pptraj_.initializeTraj(xlr, end, step);
86 Log::trace() <<
"TrajectorySaver::doInitialize done" << std::endl;
89 template <
typename MODEL>
91 Log::trace() <<
"TrajectorySaver::doProcessing start" << std::endl;
93 if (tlm_) tlm_->setTrajectory(xx, xlr, *lrBias_);
94 pptraj_.processTraj(xlr);
95 Log::trace() <<
"TrajectorySaver::doProcessing done" << std::endl;
98 template <
typename MODEL>
100 Log::trace() <<
"TrajectorySaver::doFinalize start" << std::endl;
102 pptraj_.finalizeTraj(xlr);
103 Log::trace() <<
"TrajectorySaver::doFinalize done" << std::endl;
Geometry class used in oops; subclass of interface class interface::Geometry.
Abstract linear forecast model used by high level algorithms and applications.
Auxiliary state related to model (could be e.g. model bias), not used at the moment.
Handles post-processing of model fields.
Control model post processing.
State class used in oops; subclass of interface class interface::State.
Save trajectory during forecast run.
LinearModel< MODEL > LinearModel_
void doFinalize(const State_ &) override
TrajectorySaver(const eckit::Configuration &, const Geometry_ &, const ModelAux_ &, std::shared_ptr< LinearModel_ >, PPTLAD_)
PostProcessorTLAD< MODEL > PPTLAD_
std::shared_ptr< LinearModel_ > tlm_
void doInitialize(const State_ &, const util::DateTime &, const util::Duration &) override
Geometry< MODEL > Geometry_
ModelAuxControl< MODEL > ModelAux_
std::unique_ptr< const ModelAux_ > lrBias_
void doProcessing(const State_ &) override
Actual processing.
The namespace for the main oops code.