OOPS
ObservationL95.cc
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 
12 
13 #include <string>
14 #include <vector>
15 
16 #include "eckit/config/Configuration.h"
17 #include "lorenz95/GomL95.h"
18 #include "lorenz95/ObsBias.h"
19 #include "lorenz95/ObsDiags1D.h"
20 #include "lorenz95/ObsVec1D.h"
21 #include "oops/base/Variables.h"
22 #include "oops/util/DateTime.h"
23 #include "oops/util/Logger.h"
24 
25 // -----------------------------------------------------------------------------
26 namespace lorenz95 {
27 // -----------------------------------------------------------------------------
28 
29 ObservationL95::ObservationL95(const ObsTableView & ot, const eckit::Configuration &)
30  : obsdb_(ot), inputs_()
31 {}
32 
33 // -----------------------------------------------------------------------------
34 
36 
37 // -----------------------------------------------------------------------------
38 
39 void ObservationL95::simulateObs(const GomL95 & gom, ObsVec1D & ovec,
40  const ObsBias & bias, ObsDiags1D &) const {
41  for (size_t jj = 0; jj < gom.size(); ++jj) {
42  ovec[jj] = gom[jj] + bias.value();
43  }
44 }
45 
46 // -----------------------------------------------------------------------------
47 
48 std::unique_ptr<LocsL95> ObservationL95::locations(const util::DateTime & t1,
49  const util::DateTime & t2) const {
50  return obsdb_.locations(t1, t2);
51 }
52 
53 // -----------------------------------------------------------------------------
54 
55 void ObservationL95::print(std::ostream & os) const {
56  os << "ObservationL95: Lorenz 95 Obs Operator";
57 }
58 
59 // -----------------------------------------------------------------------------
60 
61 } // namespace lorenz95
ObsDiags1D.h
lorenz95::ObsBias
Class to handle observation bias parameters.
Definition: l95/src/lorenz95/ObsBias.h:36
lorenz95::ObsTableView::locations
std::vector< double > locations() const
Definition: ObsTableView.cc:165
lorenz95::ObsVec1D
Vector in observation space.
Definition: ObsVec1D.h:34
ObservationL95.h
lorenz95::GomL95::size
size_t size() const
Definition: GomL95.h:54
ObsVec1D.h
ObsBias.h
lorenz95::ObservationL95::simulateObs
void simulateObs(const GomL95 &, ObsVec1D &, const ObsBias &, ObsDiags1D &) const
Definition: ObservationL95.cc:39
lorenz95::ObsBias::value
const double & value() const
Definition: l95/src/lorenz95/ObsBias.h:47
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::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
lorenz95::ObservationL95::print
void print(std::ostream &) const
Definition: ObservationL95.cc:55
GomL95.h
lorenz95::ObservationL95::~ObservationL95
~ObservationL95()
Definition: ObservationL95.cc:35
lorenz95
The namespace for the L95 model.
Definition: l95/src/lorenz95/AnalyticInit.cc:17
Variables.h