UFO
HydrometeorCheckATMS.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_HYDROMETEORCHECKATMS_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_HYDROMETEORCHECKATMS_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 
22 #include "ufo/filters/Variable.h"
23 #include "ufo/filters/Variables.h"
25 
26 namespace ufo {
27 
28 ///
29 /// \brief Options controling the cloud and precipitation checks for WM sensors
30 ///
31 class HydrometeorCheckATMSParameters : public oops::Parameters {
32  OOPS_CONCRETE_PARAMETERS(HydrometeorCheckATMSParameters, Parameters)
33 
34  public:
35  /// List of channels available for assimilation
36  oops::RequiredParameter<std::string> channelList{"channels", this};
37 
38  /// Observation error for each channel under clear-sky condition
39  oops::RequiredParameter<std::vector<float>> obserrClearSky{"obserr_clearsky", this};
40 
41  /// Function used to estimate observation error based on symmetric cloud amount
42  /// (ObsErrorModelRamp)
43  oops::RequiredParameter<Variable> obserrFunction{"obserr_function", this};
44 
45  /// Function used to retrieve the cloud liquid water from observation (CLWRetMW)
46  oops::RequiredParameter<Variable> clwretFunction{"clwret_function", 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 group for bias correction used to replace the default group (default is ObsBias)
52  /// Example: use observation bias correction values from GSI
53  /// test_bias: GsiObsBias
54  oops::Parameter<std::string> testBias{"test_bias", "ObsBias", this};
55 
56  /// Name of the group for bias correction terms used to replace the default group
57  /// (default is ObsBiasTerm)
58  /// Example: use observation bias correction terms from GSI
59  /// test_biasterm: GsiObsBiasTerm
60  oops::Parameter<std::string> testBiasTerm{"test_biasterm", "ObsBiasTerm", this};
61 };
62 
63 ///
64 /// \brief Cloud and precipitation checks for ATMS
65 /// Checks for all observations:
66 /// (1) Sanity check on observaton values
67 /// (2) Sanity check on retrieved CLW values
68 /// Checks for observation over ocean include:
69 /// (1) Scattering check based on 54.4GHz channel
70 /// (2) Scattering check based on 53.6GHz channel
71 /// (3) Sensitivity to surface emissivity
72 /// Checks observation over non-ocean surface include:
73 /// (1) Scattering check based on 54.4GHz channel
74 /// (2) Thick cloud check based on 52.8GHz channel
75 /// (3) Sensitivity to surface emissivity
76 /// Output of this function:
77 /// 0 = channel is not affected by thick clouds and precipitation
78 /// 1 = channel is affected by thick clouds and precipitataion
79 ///
81  public:
82  explicit HydrometeorCheckATMS(const eckit::LocalConfiguration &);
84 
85  void compute(const ObsFilterData &,
87  const ufo::Variables & requiredVariables() const;
88  private:
90  std::vector<int> channels_;
92 };
93 
94 // -----------------------------------------------------------------------------
95 
96 } // namespace ufo
97 
98 #endif // UFO_FILTERS_OBSFUNCTIONS_HYDROMETEORCHECKATMS_H_
ObsFunctionBase.h
ufo::HydrometeorCheckATMSParameters
Options controling the cloud and precipitation checks for WM sensors.
Definition: HydrometeorCheckATMS.h:31
ufo::Variables
Definition: src/ufo/filters/Variables.h:24
ufo::HydrometeorCheckATMSParameters::testBiasTerm
oops::Parameter< std::string > testBiasTerm
Definition: HydrometeorCheckATMS.h:60
CLWRetMW.h
ufo::HydrometeorCheckATMSParameters::channelList
oops::RequiredParameter< std::string > channelList
List of channels available for assimilation.
Definition: HydrometeorCheckATMS.h:36
ufo::ObsFunctionBase
Base class for computing functions on observation data.
Definition: ObsFunctionBase.h:26
ufo
Definition: RunCRTM.h:27
ufo::HydrometeorCheckATMS::compute
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
Definition: HydrometeorCheckATMS.cc:82
Variables.h
ufo::HydrometeorCheckATMS::invars_
ufo::Variables invars_
Definition: HydrometeorCheckATMS.h:89
ufo::HydrometeorCheckATMS::HydrometeorCheckATMS
HydrometeorCheckATMS(const eckit::LocalConfiguration &)
Definition: HydrometeorCheckATMS.cc:33
ioda::ObsDataVector
Definition: BackgroundCheck.h:26
ufo::HydrometeorCheckATMSParameters::obserrFunction
oops::RequiredParameter< Variable > obserrFunction
Definition: HydrometeorCheckATMS.h:43
ufo::HydrometeorCheckATMSParameters::testHofX
oops::Parameter< std::string > testHofX
Name of the HofX group used to replace the default group (default is HofX)
Definition: HydrometeorCheckATMS.h:49
ufo::HydrometeorCheckATMS::channels_
std::vector< int > channels_
Definition: HydrometeorCheckATMS.h:90
ufo::HydrometeorCheckATMS::~HydrometeorCheckATMS
~HydrometeorCheckATMS()
Definition: HydrometeorCheckATMS.cc:78
ufo::HydrometeorCheckATMSParameters::obserrClearSky
oops::RequiredParameter< std::vector< float > > obserrClearSky
Observation error for each channel under clear-sky condition.
Definition: HydrometeorCheckATMS.h:39
ufo::HydrometeorCheckATMSParameters::testBias
oops::Parameter< std::string > testBias
Definition: HydrometeorCheckATMS.h:54
ObsFilterData.h
ufo::HydrometeorCheckATMSParameters::clwretFunction
oops::RequiredParameter< Variable > clwretFunction
Function used to retrieve the cloud liquid water from observation (CLWRetMW)
Definition: HydrometeorCheckATMS.h:46
ufo::HydrometeorCheckATMS::requiredVariables
const ufo::Variables & requiredVariables() const
geovals required to compute the function
Definition: HydrometeorCheckATMS.cc:385
ufo::HydrometeorCheckATMS
Cloud and precipitation checks for ATMS Checks for all observations: (1) Sanity check on observaton v...
Definition: HydrometeorCheckATMS.h:80
ObsErrorModelRamp.h
ufo::ObsFilterData
ObsFilterData provides access to all data related to an ObsFilter.
Definition: src/ufo/filters/ObsFilterData.h:40
ufo::HydrometeorCheckATMS::options_
HydrometeorCheckATMSParameters options_
Definition: HydrometeorCheckATMS.h:91
Variable.h
ParameterTraitsVariable.h