UFO
src/ufo/ObsDiagnostics.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2018 UCAR
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  */
7 
8 #ifndef UFO_OBSDIAGNOSTICS_H_
9 #define UFO_OBSDIAGNOSTICS_H_
10 
11 #include <ostream>
12 #include <string>
13 #include <vector>
14 
15 #include <boost/noncopyable.hpp>
16 
17 #include "oops/util/Printable.h"
18 #include "ufo/GeoVaLs.h"
19 
20 // Forward declarations
21 namespace oops {
22  class Variables;
23 }
24 
25 namespace ioda {
26  class ObsSpace;
27 }
28 
29 namespace ufo {
30  class Locations;
31 
32 // -----------------------------------------------------------------------------
33 
34 class ObsDiagnostics : public util::Printable,
35  private boost::noncopyable {
36  public:
37  ObsDiagnostics(const ioda::ObsSpace &, const Locations &, const oops::Variables &);
38  ObsDiagnostics(const eckit::Configuration &, const ioda::ObsSpace &,
39  const oops::Variables &);
41 
42 // I/O
43  void save(const std::vector<double> &, const std::string &, const int);
44 
45 // Interfaces
46  int & toFortran() {return gdiags_.toFortran();}
47  const int & toFortran() const {return gdiags_.toFortran();}
48 
49  bool has(const std::string & var) const {return gdiags_.has(var);}
50  size_t nlevs(const std::string &) const;
51  void get(std::vector<float> &, const std::string &) const;
52  void get(std::vector<float> &, const std::string &, const int) const;
53 
54  void write(const eckit::Configuration & config) const {
55  gdiags_.write(config);}
56  private:
57  void print(std::ostream &) const;
58  const ioda::ObsSpace & obsdb_;
59 
61 };
62 
63 // -----------------------------------------------------------------------------
64 
65 } // namespace ufo
66 
67 #endif // UFO_OBSDIAGNOSTICS_H_
oops
Definition: GaussianThinningParameters.h:42
ufo::ObsDiagnostics::obsdb_
const ioda::ObsSpace & obsdb_
Definition: src/ufo/ObsDiagnostics.h:58
ufo::ObsDiagnostics::ObsDiagnostics
ObsDiagnostics(const ioda::ObsSpace &, const Locations &, const oops::Variables &)
Definition: ObsDiagnostics.cc:23
ufo::ObsDiagnostics::nlevs
size_t nlevs(const std::string &) const
Definition: ObsDiagnostics.cc:45
ufo::ObsDiagnostics::print
void print(std::ostream &) const
Definition: ObsDiagnostics.cc:64
ufo::ObsDiagnostics::~ObsDiagnostics
~ObsDiagnostics()
Definition: src/ufo/ObsDiagnostics.h:40
ufo::Locations
Locations class to handle locations for UFO.
Definition: src/ufo/Locations.h:32
ufo::ObsDiagnostics::has
bool has(const std::string &var) const
Definition: src/ufo/ObsDiagnostics.h:49
ioda
Definition: ObsAtmSfcInterp.h:24
ufo
Definition: RunCRTM.h:27
ufo::GeoVaLs::toFortran
int & toFortran()
Definition: src/ufo/GeoVaLs.h:80
ufo::ObsDiagnostics::toFortran
int & toFortran()
Definition: src/ufo/ObsDiagnostics.h:46
ufo::ObsDiagnostics
Definition: src/ufo/ObsDiagnostics.h:35
ufo::ObsDiagnostics::save
void save(const std::vector< double > &, const std::string &, const int)
Definition: ObsDiagnostics.cc:37
ufo::ObsDiagnostics::write
void write(const eckit::Configuration &config) const
Definition: src/ufo/ObsDiagnostics.h:54
ufo::GeoVaLs
GeoVaLs: geophysical values at locations.
Definition: src/ufo/GeoVaLs.h:39
ufo::ObsDiagnostics::get
void get(std::vector< float > &, const std::string &) const
Definition: ObsDiagnostics.cc:51
ufo::GeoVaLs::write
void write(const eckit::Configuration &) const
Write GeoVaLs to the file.
Definition: GeoVaLs.cc:316
ufo::GeoVaLs::has
bool has(const std::string &var) const
Definition: src/ufo/GeoVaLs.h:68
ufo::ObsDiagnostics::toFortran
const int & toFortran() const
Definition: src/ufo/ObsDiagnostics.h:47
ufo::ObsDiagnostics::gdiags_
GeoVaLs gdiags_
Definition: src/ufo/ObsDiagnostics.h:60