UFO
ChannelUseflagCheckRad.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_CHANNELUSEFLAGCHECKRAD_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_CHANNELUSEFLAGCHECKRAD_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/Variables.h"
21 
22 namespace ufo {
23 
24 ///
25 /// \brief Options applying to channel useflag check
26 ///
27 class ChannelUseflagCheckRadParameters : public oops::Parameters {
28  OOPS_CONCRETE_PARAMETERS(ChannelUseflagCheckRadParameters, Parameters)
29 
30  public:
31  /// List of channels available for assimilation
32  oops::RequiredParameter<std::string> channelList{"channels", this};
33 
34  /// Useflag (-1: not used; 0: monitoring; 1: used) for each channel in channelList
35  oops::RequiredParameter<std::vector<int>> useflagChannel{"use_flag", this};
36 };
37 
38 ///
39 /// \brief Channel useflag check: remove channel if useflag is less than one
40 ///
42  public:
43  explicit ChannelUseflagCheckRad(const eckit::LocalConfiguration &);
45 
46  void compute(const ObsFilterData &,
48  const ufo::Variables & requiredVariables() const;
49  private:
52  std::vector<int> channels_;
53 };
54 
55 // -----------------------------------------------------------------------------
56 
57 } // namespace ufo
58 
59 #endif // UFO_FILTERS_OBSFUNCTIONS_CHANNELUSEFLAGCHECKRAD_H_
ObsFunctionBase.h
ufo::ChannelUseflagCheckRad::ChannelUseflagCheckRad
ChannelUseflagCheckRad(const eckit::LocalConfiguration &)
Definition: ChannelUseflagCheckRad.cc:31
ufo::Variables
Definition: src/ufo/filters/Variables.h:24
ufo::ChannelUseflagCheckRadParameters
Options applying to channel useflag check.
Definition: ChannelUseflagCheckRad.h:27
ufo::ChannelUseflagCheckRad::requiredVariables
const ufo::Variables & requiredVariables() const
geovals required to compute the function
Definition: ChannelUseflagCheckRad.cc:75
ufo::ObsFunctionBase
Base class for computing functions on observation data.
Definition: ObsFunctionBase.h:26
ufo
Definition: RunCRTM.h:27
ufo::ChannelUseflagCheckRad::options_
ChannelUseflagCheckRadParameters options_
Definition: ChannelUseflagCheckRad.h:50
Variables.h
ufo::ChannelUseflagCheckRadParameters::channelList
oops::RequiredParameter< std::string > channelList
List of channels available for assimilation.
Definition: ChannelUseflagCheckRad.h:32
ufo::ChannelUseflagCheckRad::channels_
std::vector< int > channels_
Definition: ChannelUseflagCheckRad.h:52
ufo::ChannelUseflagCheckRad::invars_
ufo::Variables invars_
Definition: ChannelUseflagCheckRad.h:51
ufo::ChannelUseflagCheckRad::~ChannelUseflagCheckRad
~ChannelUseflagCheckRad()
Definition: ChannelUseflagCheckRad.cc:52
ioda::ObsDataVector
Definition: BackgroundCheck.h:26
ufo::ChannelUseflagCheckRad::compute
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
Definition: ChannelUseflagCheckRad.cc:56
ufo::ChannelUseflagCheckRadParameters::useflagChannel
oops::RequiredParameter< std::vector< int > > useflagChannel
Useflag (-1: not used; 0: monitoring; 1: used) for each channel in channelList.
Definition: ChannelUseflagCheckRad.h:35
ObsFilterData.h
ufo::ChannelUseflagCheckRad
Channel useflag check: remove channel if useflag is less than one.
Definition: ChannelUseflagCheckRad.h:41
ufo::ObsFilterData
ObsFilterData provides access to all data related to an ObsFilter.
Definition: src/ufo/filters/ObsFilterData.h:40