IODA Bundle
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 qg {
28  class GomQG;
29  class LocationsQG;
30  class ObsBias;
31  class ObsDiagsQG;
32  class ObsOpBaseQG;
33  class ObsSpaceQG;
34  class ObsVecQG;
35 
36 // -----------------------------------------------------------------------------
37 
38 class ObsOperatorQG : public util::Printable,
39  private boost::noncopyable {
40  public:
41  ObsOperatorQG(const ObsSpaceQG &, const eckit::Configuration &);
43 
44 /// Obs Operator
45  void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &, ObsDiagsQG &) const;
46 
47 /// Other
48  const oops::Variables & requiredVars() const; // Required input requiredVars from Model
49  std::unique_ptr<LocationsQG> locations() const;
50 
51  private:
52  void print(std::ostream &) const;
53  std::unique_ptr<ObsOpBaseQG> oper_;
54 };
55 
56 // -----------------------------------------------------------------------------
57 
58 } // namespace qg
59 
60 #endif // QG_MODEL_OBSOPERATORQG_H_
GomQG class to handle local model values for QG model.
Definition: GomQG.h:35
Class to handle observation bias parameters.
ObsOperatorQG(const ObsSpaceQG &, const eckit::Configuration &)
std::unique_ptr< ObsOpBaseQG > oper_
Definition: ObsOperatorQG.h:53
void print(std::ostream &) const
const oops::Variables & requiredVars() const
Other.
void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &, ObsDiagsQG &) const
Obs Operator.
std::unique_ptr< LocationsQG > locations() const
ObsSpace for QG model.
Definition: ObsSpaceQG.h:45
ObsVecQG class to handle vectors in observation space for QG model.
Definition: ObsVecQG.h:32
The namespace for the qg model.