UFO
CloudDetectMinResidualIR.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_CLOUDDETECTMINRESIDUALIR_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_CLOUDDETECTMINRESIDUALIR_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 Cloud Detection Algorithm (Minimum Residual Method)
26 /// for Infrared sensors
27 ///
28 class CloudDetectMinResidualIRParameters : public oops::Parameters {
29  OOPS_CONCRETE_PARAMETERS(CloudDetectMinResidualIRParameters, Parameters)
30 
31  public:
32  /// List of channels available for assimilation
33  oops::RequiredParameter<std::string> channelList{"channels", this};
34 
35  /// Useflag (-1: not used; 0: monitoring; 1: used) for each channel in channelList
36  oops::RequiredParameter<std::vector<int>> useflagChannel{"use_flag", this};
37 
38  /// Useflag (-1: not used; 1: used) indicating if the channel is used for cloud detection
39  oops::RequiredParameter<std::vector<int>> useflagCloudDetect{"use_flag_clddet", this};
40 
41  /// Observation error scale factors applied to surface temperature jacobians
42  /// over 5 surface types: [sea, land, ice, snow and mixed]
43  oops::RequiredParameter<std::vector<float>> obserrScaleFactorTsfc{"obserr_dtempf", this};
44 
45  /// Name of the data group to which the observation error is applied (default: ObsErrorData)
46  oops::Parameter<std::string> testObserr{"test_obserr", "ObsErrorData", this};
47 
48  /// Name of the HofX group used to replace the default group (default is HofX)
49  oops::Parameter<std::string> testHofX{"test_hofx", "HofX", this};
50 
51  /// Name of the bias correction group used to replace the default group (default is ObsBias)
52  oops::Parameter<std::string> testBias{"test_bias", "ObsBias", this};
53 
54  /// Name of the data group to which the QC flag is applied (default is QCflagsData)
55  oops::Parameter<std::string> testQCflag{"test_qcflag", "QCflagsData", this};
56 };
57 
58 ///
59 /// \brief Cloud Detection Algorithm (Minimum Residual Method) for Infrared sensors
60 /// using selected channels from 15 microns CO2 absorption band
61 /// Output of this function:
62 /// 0 = channel is not affected by clouds (clear channel)
63 /// 1 = channel is affected by clouds (cloudy channel)
64 /// 2 = channel is not affected by clouds but too sensitive to surface condition
65 ///
67  public:
68  explicit CloudDetectMinResidualIR(const eckit::LocalConfiguration &);
70 
71  void compute(const ObsFilterData &,
73  const ufo::Variables & requiredVariables() const;
74  private:
77  std::vector<int> channels_;
78 };
79 
80 // -----------------------------------------------------------------------------
81 
82 } // namespace ufo
83 
84 #endif // UFO_FILTERS_OBSFUNCTIONS_CLOUDDETECTMINRESIDUALIR_H_
ObsFunctionBase.h
ufo::Variables
Definition: src/ufo/filters/Variables.h:24
ufo::ObsFunctionBase
Base class for computing functions on observation data.
Definition: ObsFunctionBase.h:26
ufo::CloudDetectMinResidualIR::options_
CloudDetectMinResidualIRParameters options_
Definition: CloudDetectMinResidualIR.h:75
ufo
Definition: RunCRTM.h:27
ufo::CloudDetectMinResidualIR::CloudDetectMinResidualIR
CloudDetectMinResidualIR(const eckit::LocalConfiguration &)
Definition: CloudDetectMinResidualIR.cc:32
Variables.h
ufo::CloudDetectMinResidualIRParameters::testQCflag
oops::Parameter< std::string > testQCflag
Name of the data group to which the QC flag is applied (default is QCflagsData)
Definition: CloudDetectMinResidualIR.h:55
ufo::CloudDetectMinResidualIRParameters::testHofX
oops::Parameter< std::string > testHofX
Name of the HofX group used to replace the default group (default is HofX)
Definition: CloudDetectMinResidualIR.h:49
ufo::CloudDetectMinResidualIRParameters::testBias
oops::Parameter< std::string > testBias
Name of the bias correction group used to replace the default group (default is ObsBias)
Definition: CloudDetectMinResidualIR.h:52
ufo::CloudDetectMinResidualIRParameters::useflagChannel
oops::RequiredParameter< std::vector< int > > useflagChannel
Useflag (-1: not used; 0: monitoring; 1: used) for each channel in channelList.
Definition: CloudDetectMinResidualIR.h:36
ioda::ObsDataVector
Definition: BackgroundCheck.h:26
ufo::CloudDetectMinResidualIR::~CloudDetectMinResidualIR
~CloudDetectMinResidualIR()
Definition: CloudDetectMinResidualIR.cc:75
ufo::CloudDetectMinResidualIRParameters
Options applying to Cloud Detection Algorithm (Minimum Residual Method) for Infrared sensors.
Definition: CloudDetectMinResidualIR.h:28
ufo::CloudDetectMinResidualIR::invars_
ufo::Variables invars_
Definition: CloudDetectMinResidualIR.h:76
ufo::CloudDetectMinResidualIRParameters::obserrScaleFactorTsfc
oops::RequiredParameter< std::vector< float > > obserrScaleFactorTsfc
Definition: CloudDetectMinResidualIR.h:43
ObsFilterData.h
ufo::CloudDetectMinResidualIRParameters::testObserr
oops::Parameter< std::string > testObserr
Name of the data group to which the observation error is applied (default: ObsErrorData)
Definition: CloudDetectMinResidualIR.h:46
ufo::CloudDetectMinResidualIR::channels_
std::vector< int > channels_
Definition: CloudDetectMinResidualIR.h:77
ufo::CloudDetectMinResidualIR
Cloud Detection Algorithm (Minimum Residual Method) for Infrared sensors using selected channels from...
Definition: CloudDetectMinResidualIR.h:66
ufo::CloudDetectMinResidualIRParameters::useflagCloudDetect
oops::RequiredParameter< std::vector< int > > useflagCloudDetect
Useflag (-1: not used; 1: used) indicating if the channel is used for cloud detection.
Definition: CloudDetectMinResidualIR.h:39
ufo::ObsFilterData
ObsFilterData provides access to all data related to an ObsFilter.
Definition: src/ufo/filters/ObsFilterData.h:40
ufo::CloudDetectMinResidualIR::compute
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
Definition: CloudDetectMinResidualIR.cc:79
ufo::CloudDetectMinResidualIR::requiredVariables
const ufo::Variables & requiredVariables() const
geovals required to compute the function
Definition: CloudDetectMinResidualIR.cc:359
ufo::CloudDetectMinResidualIRParameters::channelList
oops::RequiredParameter< std::string > channelList
List of channels available for assimilation.
Definition: CloudDetectMinResidualIR.h:33