UFO
CloudLiquidWater.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 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_PREDICTORS_CLOUDLIQUIDWATER_H_
9 #define UFO_PREDICTORS_CLOUDLIQUIDWATER_H_
10 
11 #include <string>
12 #include <vector>
13 
14 #include "oops/util/parameters/OptionalParameter.h"
15 #include "oops/util/parameters/Parameter.h"
16 #include "oops/util/parameters/Parameters.h"
17 #include "oops/util/parameters/RequiredParameter.h"
18 
20 
21 namespace ioda {
22  class ObsSpace;
23 }
24 
25 namespace ufo {
26 
27 // -----------------------------------------------------------------------------
28 
29 /// Configuration parameters of the CloudLiquidWater predictor.
31  OOPS_CONCRETE_PARAMETERS(CloudLiquidWaterParameters, PredictorParametersBase)
32 
33  public:
34  /// We must specify a satellite reference name such as SSMIS to know which channels to expect.
35  oops::RequiredParameter<std::string> satellite{"satellite", this};
36  /// In case we need to override the ObsValue group name with another optional group name.
37  oops::Parameter<std::string> varGroup{"varGroup", "ObsValue", this};
38  /// List below is solely for SSMIS data, but a different list of channel numbers could be
39  /// added for a different satellite platform in the future.
40  oops::OptionalParameter<int> ch19h{"ch19h", this};
41  oops::OptionalParameter<int> ch19v{"ch19v", this};
42  oops::OptionalParameter<int> ch22v{"ch22v", this};
43  oops::OptionalParameter<int> ch37h{"ch37h", this};
44  oops::OptionalParameter<int> ch37v{"ch37v", this};
45  oops::OptionalParameter<int> ch91h{"ch91h", this};
46  oops::OptionalParameter<int> ch91v{"ch91v", this};
47 };
48 
49 // -----------------------------------------------------------------------------
50 
52  public:
53  /// The type of parameters accepted by the constructor of this predictor.
54  /// This typedef is used by the PredictorFactory.
56 
57  CloudLiquidWater(const Parameters_ &, const oops::Variables &);
59 
60  void compute(const ioda::ObsSpace &,
61  const GeoVaLs &,
62  const ObsDiagnostics &,
63  ioda::ObsVector &) const override;
64 
65  private:
67  std::vector<int> channels_;
68 };
69 
70 // -----------------------------------------------------------------------------
71 
72 } // namespace ufo
73 
74 #endif // UFO_PREDICTORS_CLOUDLIQUIDWATER_H_
CloudLiquidWaterParameters options_
CloudLiquidWaterParameters Parameters_
std::vector< int > channels_
void compute(const ioda::ObsSpace &, const GeoVaLs &, const ObsDiagnostics &, ioda::ObsVector &) const override
compute the predictor
CloudLiquidWater(const Parameters_ &, const oops::Variables &)
Configuration parameters of the CloudLiquidWater predictor.
oops::OptionalParameter< int > ch91v
oops::OptionalParameter< int > ch22v
oops::RequiredParameter< std::string > satellite
We must specify a satellite reference name such as SSMIS to know which channels to expect.
oops::OptionalParameter< int > ch19h
oops::OptionalParameter< int > ch37v
oops::Parameter< std::string > varGroup
In case we need to override the ObsValue group name with another optional group name.
oops::OptionalParameter< int > ch19v
oops::OptionalParameter< int > ch91h
oops::OptionalParameter< int > ch37h
GeoVaLs: geophysical values at locations.
Base class for predictor parameters.
Definition: PredictorBase.h:37
Forward declarations.
Definition: ObsAodExt.h:25
Definition: RunCRTM.h:27