OOPS
qg/model/ObsBias.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_OBSBIAS_H_
12 #define QG_MODEL_OBSBIAS_H_
13 
14 #include <iostream>
15 #include <string>
16 #include <vector>
17 #include <boost/noncopyable.hpp>
18 
19 #include "oops/base/Variables.h"
20 #include "oops/util/ObjectCounter.h"
21 #include "oops/util/Printable.h"
22 
23 namespace eckit {
24  class Configuration;
25 }
26 
27 namespace qg {
28  class ObsBiasIncrement;
29  class ObsSpaceQG;
30 
31 /// Class to handle observation bias parameters.
32 
33 // -----------------------------------------------------------------------------
34 
35 class ObsBias : public util::Printable,
36  private boost::noncopyable,
37  private util::ObjectCounter<ObsBias> {
38  public:
39  static const unsigned int ntypes = 4;
40  static const std::string classname() {return "qg::ObsBias";}
41 
42  ObsBias(const ObsSpaceQG &, const eckit::Configuration &);
43  ObsBias(const ObsBias &, const bool);
44  ~ObsBias() {}
45 
47  ObsBias & operator=(const ObsBias &);
48 
49 /// I/O and diagnostics
50  void read(const eckit::Configuration &) {}
51  void write(const eckit::Configuration &) const {}
52  double norm() const;
53 
54  const double & operator[](const unsigned int ii) const {return bias_[ii];}
55 
56  /// Other
57  const oops::Variables & requiredVars() const {return geovars_;}
58  const oops::Variables & requiredHdiagnostics() const {return hdiags_;}
59 
60  const double & stream() const {return bias_[0];}
61  const double & wind() const {return bias_[1];}
62  const double & wspd() const {return bias_[3];}
63 
64  private:
65  void print(std::ostream &) const;
66  std::vector<double> bias_;
67  bool active_;
70 };
71 
72 // -----------------------------------------------------------------------------
73 
74 } // namespace qg
75 
76 #endif // QG_MODEL_OBSBIAS_H_
qg
The namespace for the qg model.
Definition: qg/model/AnalyticInit.cc:13
qg::ObsBias::hdiags_
const oops::Variables hdiags_
Definition: qg/model/ObsBias.h:69
qg::ObsBias::wspd
const double & wspd() const
Definition: qg/model/ObsBias.h:62
qg::ObsBias::read
void read(const eckit::Configuration &)
I/O and diagnostics.
Definition: qg/model/ObsBias.h:50
qg::ObsBias::norm
double norm() const
Definition: qg/model/ObsBias.cc:74
qg::ObsBias::bias_
std::vector< double > bias_
Definition: qg/model/ObsBias.h:66
qg::ObsBias::operator[]
const double & operator[](const unsigned int ii) const
Definition: qg/model/ObsBias.h:54
qg::ObsBias
Class to handle observation bias parameters.
Definition: qg/model/ObsBias.h:37
qg::ObsBias::requiredHdiagnostics
const oops::Variables & requiredHdiagnostics() const
Definition: qg/model/ObsBias.h:58
qg::ObsBias::classname
static const std::string classname()
Definition: qg/model/ObsBias.h:40
qg::ObsSpaceQG
ObsSpace for QG model.
Definition: ObsSpaceQG.h:44
qg::ObsBias::ObsBias
ObsBias(const ObsSpaceQG &, const eckit::Configuration &)
Definition: qg/model/ObsBias.cc:26
qg::ObsBias::wind
const double & wind() const
Definition: qg/model/ObsBias.h:61
eckit
Definition: FieldL95.h:22
qg::ObsBias::operator+=
ObsBias & operator+=(const ObsBiasIncrement &)
Definition: qg/model/ObsBias.cc:60
qg::ObsBias::stream
const double & stream() const
Definition: qg/model/ObsBias.h:60
qg::ObsBias::write
void write(const eckit::Configuration &) const
Definition: qg/model/ObsBias.h:51
qg::ObsBias::ntypes
static const unsigned int ntypes
Definition: qg/model/ObsBias.h:39
qg::ObsBias::~ObsBias
~ObsBias()
Definition: qg/model/ObsBias.h:44
qg::ObsBias::requiredVars
const oops::Variables & requiredVars() const
Other.
Definition: qg/model/ObsBias.h:57
qg::ObsBias::active_
bool active_
Definition: qg/model/ObsBias.h:67
qg::ObsBiasIncrement
Definition: ObsBiasIncrement.h:31
qg::ObsBias::geovars_
const oops::Variables geovars_
Definition: qg/model/ObsBias.h:68
oops::Variables
Definition: oops/base/Variables.h:23
qg::ObsBias::print
void print(std::ostream &) const
Definition: qg/model/ObsBias.cc:89
Variables.h
qg::ObsBias::operator=
ObsBias & operator=(const ObsBias &)
Definition: qg/model/ObsBias.cc:67