UFO
InterChannelConsistencyCheck.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019 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_FILTERS_OBSFUNCTIONS_INTERCHANNELCONSISTENCYCHECK_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_INTERCHANNELCONSISTENCYCHECK_H_
10 
11 #include <string>
12 #include <vector>
13 
14 #include "oops/util/parameters/Parameter.h"
15 #include "oops/util/parameters/Parameters.h"
16 #include "oops/util/parameters/RequiredParameter.h"
17 
20 #include "ufo/filters/Variable.h"
21 #include "ufo/filters/Variables.h"
23 
24 namespace ufo {
25 
26 ///
27 /// \brief Options applying to inter-channel consistency check
28 ///
29 class InterChannelConsistencyCheckParameters : public oops::Parameters {
30  OOPS_CONCRETE_PARAMETERS(InterChannelConsistencyCheckParameters, Parameters)
31 
32  public:
33  /// List of channels available for assimilation
34  oops::RequiredParameter<std::string> channelList{"channels", this};
35 
36  /// Name of the sensor for which the observation error factor applies
37  oops::RequiredParameter<std::string> sensor{"sensor", this};
38 
39  /// Useflag (-1: not used; 0: monitoring; 1: used) for each channel in channelList
40  oops::RequiredParameter<std::vector<int>> useflagChannel{"use_flag", this};
41 
42  /// Name of the data group to which the observation error is applied (default: ObsErrorData)
43  oops::Parameter<std::string> testObserr{"test_obserr", "ObsErrorData", this};
44 
45  /// Name of the data group to which the QC flag is applied (default is QCflagsData)
46  oops::Parameter<std::string> testQCflag{"test_qcflag", "QCflagsData", this};
47 };
48 
49 ///
50 /// \brief Inter-channel consistency check
51 ///
53  public:
54  explicit InterChannelConsistencyCheck(const eckit::LocalConfiguration &);
56 
57  void compute(const ObsFilterData &,
59  const ufo::Variables & requiredVariables() const;
60  private:
62  std::vector<int> channels_;
64 };
65 
66 // -----------------------------------------------------------------------------
67 
68 } // namespace ufo
69 
70 #endif // UFO_FILTERS_OBSFUNCTIONS_INTERCHANNELCONSISTENCYCHECK_H_
Inter-channel consistency check.
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
InterChannelConsistencyCheck(const eckit::LocalConfiguration &)
InterChannelConsistencyCheckParameters options_
const ufo::Variables & requiredVariables() const
geovals required to compute the function
Options applying to inter-channel consistency check.
oops::RequiredParameter< std::vector< int > > useflagChannel
Useflag (-1: not used; 0: monitoring; 1: used) for each channel in channelList.
oops::RequiredParameter< std::string > sensor
Name of the sensor for which the observation error factor applies.
oops::RequiredParameter< std::string > channelList
List of channels available for assimilation.
oops::Parameter< std::string > testObserr
Name of the data group to which the observation error is applied (default: ObsErrorData)
oops::Parameter< std::string > testQCflag
Name of the data group to which the QC flag is applied (default is QCflagsData)
ObsFilterData provides access to all data related to an ObsFilter.
Definition: RunCRTM.h:27