OOPS
ObservationL95.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 LORENZ95_OBSERVATIONL95_H_
12 #define LORENZ95_OBSERVATIONL95_H_
13 
14 #include <memory>
15 #include <ostream>
16 #include <string>
17 
18 #include <boost/noncopyable.hpp>
19 
21 #include "lorenz95/ObsTableView.h"
22 
23 #include "oops/base/Variables.h"
24 #include "oops/util/ObjectCounter.h"
25 #include "oops/util/Printable.h"
26 
27 // Forward declarations
28 namespace eckit {
29  class Configuration;
30 }
31 
32 namespace util {
33  class DateTime;
34 }
35 
36 namespace lorenz95 {
37  class GomL95;
38  class LocsL95;
39  class ObsBias;
40  class ObsDiags1D;
41  class ObsVec1D;
42 
43 /// Observation for Lorenz 95 model.
44 /*!
45  * ObservationL95 defines ObsOperator for Lorenz 95 model.
46  */
47 
48 // -----------------------------------------------------------------------------
49 
50 class ObservationL95 : public util::Printable,
51  private boost::noncopyable,
52  private util::ObjectCounter<ObservationL95> {
53  public:
54  static const std::string classname() {return "lorenz95::ObservationL95";}
55 
56  ObservationL95(const ObsTableView &, const eckit::Configuration &);
58 
59 // Obs Operators
60  void simulateObs(const GomL95 &, ObsVec1D &, const ObsBias &, ObsDiags1D &) const;
61 
62 // Other
63  const oops::Variables & requiredVars() const {return inputs_;}
64  std::unique_ptr<LocsL95> locations(const util::DateTime &, const util::DateTime &) const;
65 
66  const ObsTableView & table() const {return obsdb_;}
67 
68  private:
69  void print(std::ostream &) const;
72 };
73 
74 // -----------------------------------------------------------------------------
75 
76 } // namespace lorenz95
77 
78 #endif // LORENZ95_OBSERVATIONL95_H_
ObsTableView.h
lorenz95::ObsBias
Class to handle observation bias parameters.
Definition: l95/src/lorenz95/ObsBias.h:36
lorenz95::ObsVec1D
Vector in observation space.
Definition: ObsVec1D.h:34
lorenz95::ObservationL95::inputs_
const oops::Variables inputs_
Definition: ObservationL95.h:71
eckit
Definition: FieldL95.h:22
ObservationTLAD.h
lorenz95::ObservationL95::requiredVars
const oops::Variables & requiredVars() const
Definition: ObservationL95.h:63
lorenz95::ObservationL95::table
const ObsTableView & table() const
Definition: ObservationL95.h:66
lorenz95::ObservationL95::simulateObs
void simulateObs(const GomL95 &, ObsVec1D &, const ObsBias &, ObsDiags1D &) const
Definition: ObservationL95.cc:39
lorenz95::ObservationL95::ObservationL95
ObservationL95(const ObsTableView &, const eckit::Configuration &)
Definition: ObservationL95.cc:29
lorenz95::ObservationL95::locations
std::unique_ptr< LocsL95 > locations(const util::DateTime &, const util::DateTime &) const
Definition: ObservationL95.cc:48
lorenz95::ObsDiags1D
Definition: ObsDiags1D.h:24
lorenz95::ObservationL95
Observation for Lorenz 95 model.
Definition: ObservationL95.h:52
lorenz95::ObservationL95::obsdb_
const ObsTableView & obsdb_
Definition: ObservationL95.h:70
lorenz95::GomL95
GomL95 class to handle locations for L95 model.
Definition: GomL95.h:33
lorenz95::ObsTableView
A Simple Observation Data Handler.
Definition: ObsTableView.h:38
oops::Variables
Definition: oops/base/Variables.h:23
lorenz95::ObservationL95::print
void print(std::ostream &) const
Definition: ObservationL95.cc:55
lorenz95::ObservationL95::classname
static const std::string classname()
Definition: ObservationL95.h:54
lorenz95::ObservationL95::~ObservationL95
~ObservationL95()
Definition: ObservationL95.cc:35
lorenz95
The namespace for the L95 model.
Definition: l95/src/lorenz95/AnalyticInit.cc:17
util
Definition: ObservationL95.h:32
Variables.h