8 #ifndef QG_MODEL_OBSOPBASEQG_H_
9 #define QG_MODEL_OBSOPBASEQG_H_
15 #include <boost/noncopyable.hpp>
17 #include "eckit/config/Configuration.h"
20 #include "oops/util/abor1_cpp.h"
21 #include "oops/util/Printable.h"
23 #include "oops/qg/ObsSpaceQG.h"
35 private boost::noncopyable {
44 virtual std::unique_ptr<LocationsQG>
locations()
const = 0;
47 virtual void print(std::ostream &)
const = 0;
61 static std::map < std::string, ObsOpFactory * > &
getMakers() {
62 static std::map < std::string, ObsOpFactory * > makers_;
72 {
return new T(odb, conf); }
GomQG class to handle local model values for QG model.
Class to handle observation bias parameters.
Base class for observation operators.
virtual void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &) const =0
Obs Operator.
virtual const oops::Variables & requiredVars() const =0
Other.
virtual std::unique_ptr< LocationsQG > locations() const =0
virtual void print(std::ostream &) const =0
ObsOpFactory(const std::string &)
static ObsOpBaseQG * create(const ObsSpaceQG &, const eckit::Configuration &)
static std::map< std::string, ObsOpFactory * > & getMakers()
virtual ObsOpBaseQG * make(const ObsSpaceQG &, const eckit::Configuration &)=0
virtual ~ObsOpFactory()=default
virtual ObsOpBaseQG * make(const ObsSpaceQG &odb, const eckit::Configuration &conf)
ObsOpMaker(const std::string &name)
ObsVecQG class to handle vectors in observation space for QG model.
The namespace for the qg model.