UFO
ROobserror.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017-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_GNSSRO_QC_ROOBSERROR_H_
9 #define UFO_GNSSRO_QC_ROOBSERROR_H_
10 
11 #include <Eigen/Dense>
12 #include <memory>
13 #include <ostream>
14 #include <string>
15 #include <vector>
16 
17 #include "ioda/ObsDataVector.h"
18 #include "oops/util/ObjectCounter.h"
19 #include "ufo/filters/FilterBase.h"
20 #include "ROobserror.interface.h"
21 
22 namespace eckit {
23  class Configuration;
24 }
25 
26 namespace ioda {
27  template <typename DATATYPE> class ObsDataVector;
28  class ObsSpace;
29 }
30 
31 namespace ufo {
32 
33 /// ROobserror: calculate observational errors
34 
35 class ROobserror : public FilterBase,
36  private util::ObjectCounter<ROobserror> {
37  public:
38  static const std::string classname() {return "ufo::ROobserror";}
39 
40  ROobserror(ioda::ObsSpace &, const eckit::Configuration &,
41  std::shared_ptr<ioda::ObsDataVector<int> >,
42  std::shared_ptr<ioda::ObsDataVector<float> >);
43  ~ROobserror();
44 
45  private:
46  void print(std::ostream &) const override;
47  void applyFilter(const std::vector<bool> &, const Variables &,
48  std::vector<std::vector<bool>> &) const override;
49  int qcFlag() const override {return 76;}
50  Eigen::ArrayXXf get_geovals(const std::string&) const;
51  int n_horiz = 1;
52 
54 };
55 
56 } // namespace ufo
57 
58 #endif // UFO_GNSSRO_QC_ROOBSERROR_H_
Base class for UFO QC filters.
Definition: FilterBase.h:45
ROobserror: calculate observational errors.
Definition: ROobserror.h:36
int qcFlag() const override
Definition: ROobserror.h:49
void print(std::ostream &) const override
Definition: ROobserror.cc:99
ROobserror(ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
Definition: ROobserror.cc:22
static const std::string classname()
Definition: ROobserror.h:38
F90roerr key_
Definition: ROobserror.h:53
Eigen::ArrayXXf get_geovals(const std::string &) const
Definition: ROobserror.cc:77
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
Definition: ROobserror.cc:53
Forward declarations.
Definition: ObsAodExt.h:21
Forward declarations.
Definition: ObsAodExt.h:25
Definition: RunCRTM.h:27