OOPS
ObsOperatorQG.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2009-2016 ECMWF.
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  * In applying this licence, ECMWF does not waive the privileges and immunities
7  * granted to it by virtue of its status as an intergovernmental organisation nor
8  * does it submit to any jurisdiction.
9  */
10 
11 #ifndef QG_MODEL_OBSOPERATORQG_H_
12 #define QG_MODEL_OBSOPERATORQG_H_
13 
14 #include <memory>
15 #include <string>
16 
17 #include <boost/noncopyable.hpp>
18 
19 #include "oops/base/Variables.h"
20 #include "oops/util/Printable.h"
21 
22 // Forward declarations
23 namespace eckit {
24  class Configuration;
25 }
26 
27 namespace util {
28  class DateTime;
29 }
30 
31 namespace qg {
32  class GomQG;
33  class LocationsQG;
34  class ObsBias;
35  class ObsDiagsQG;
36  class ObsOpBaseQG;
37  class ObsSpaceQG;
38  class ObsVecQG;
39 
40 // -----------------------------------------------------------------------------
41 
42 class ObsOperatorQG : public util::Printable,
43  private boost::noncopyable {
44  public:
45  ObsOperatorQG(const ObsSpaceQG &, const eckit::Configuration &);
47 
48 /// Obs Operator
49  void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &, ObsDiagsQG &) const;
50 
51 /// Other
52  const oops::Variables & requiredVars() const; // Required input requiredVars from Model
53  std::unique_ptr<LocationsQG> locations(const util::DateTime &, const util::DateTime &) const;
54 
55  private:
56  void print(std::ostream &) const;
57  std::unique_ptr<ObsOpBaseQG> oper_;
58 };
59 
60 // -----------------------------------------------------------------------------
61 
62 } // namespace qg
63 
64 #endif // QG_MODEL_OBSOPERATORQG_H_
qg::ObsOperatorQG::~ObsOperatorQG
~ObsOperatorQG()
Definition: ObsOperatorQG.cc:34
qg::ObsOperatorQG::simulateObs
void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &, ObsDiagsQG &) const
Obs Operator.
Definition: ObsOperatorQG.cc:38
qg
The namespace for the qg model.
Definition: qg/model/AnalyticInit.cc:13
qg::ObsOperatorQG::oper_
std::unique_ptr< ObsOpBaseQG > oper_
Definition: ObsOperatorQG.h:57
qg::ObsOperatorQG
Definition: ObsOperatorQG.h:43
qg::ObsBias
Class to handle observation bias parameters.
Definition: qg/model/ObsBias.h:37
qg::ObsOperatorQG::ObsOperatorQG
ObsOperatorQG(const ObsSpaceQG &, const eckit::Configuration &)
Definition: ObsOperatorQG.cc:28
qg::ObsDiagsQG
Definition: ObsDiagsQG.h:24
qg::ObsSpaceQG
ObsSpace for QG model.
Definition: ObsSpaceQG.h:44
qg::ObsOperatorQG::print
void print(std::ostream &) const
Definition: ObsOperatorQG.cc:58
eckit
Definition: FieldL95.h:22
qg::GomQG
GomQG class to handle local model values for QG model.
Definition: GomQG.h:33
qg::ObsOperatorQG::requiredVars
const oops::Variables & requiredVars() const
Other.
Definition: ObsOperatorQG.cc:45
qg::ObsOperatorQG::locations
std::unique_ptr< LocationsQG > locations(const util::DateTime &, const util::DateTime &) const
Definition: ObsOperatorQG.cc:51
qg::ObsVecQG
ObsVecQG class to handle vectors in observation space for QG model.
Definition: ObsVecQG.h:34
oops::Variables
Definition: oops/base/Variables.h:23
util
Definition: ObservationL95.h:32
Variables.h