UFO
ScanAngle.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2020 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_SCANANGLE_H_
9 #define UFO_PREDICTORS_SCANANGLE_H_
10 
11 #include <string>
12 
13 #include "oops/util/parameters/OptionalParameter.h"
14 #include "oops/util/parameters/Parameter.h"
15 #include "oops/util/parameters/Parameters.h"
16 
18 
19 namespace oops {
20  class Variables;
21 }
22 
23 namespace ioda {
24  class ObsSpace;
25 }
26 
27 namespace ufo {
28 
29 // -----------------------------------------------------------------------------
30 
31 /// Configuration parameters of the ScanAngle predictor.
34 
35  public:
36  /// Power to which to raise the scan angle. By default, 1.
37  ///
38  /// \note If this option is set, a suffix containing its value (even if it's equal to 1) will be
39  /// appended to the predictor name.
40  oops::OptionalParameter<int> order{"order", this};
41 
42  /// Name of the variable (from the MetaData group) containing the scan angle.
43  oops::Parameter<std::string> varName{"var_name", "sensor_view_angle", this};
44 };
45 
46 // -----------------------------------------------------------------------------
47 
48 class ScanAngle : public PredictorBase {
49  public:
50  /// The type of parameters accepted by the constructor of this predictor.
51  /// This typedef is used by the PredictorFactory.
53 
54  ScanAngle(const Parameters_ &, const oops::Variables &);
55 
56  void compute(const ioda::ObsSpace &,
57  const GeoVaLs &,
58  const ObsDiagnostics &,
59  ioda::ObsVector &) const override;
60 
61  private:
62  int order_;
63  std::string var_name_;
64 };
65 
66 // -----------------------------------------------------------------------------
67 
68 } // namespace ufo
69 
70 #endif // UFO_PREDICTORS_SCANANGLE_H_
GeoVaLs: geophysical values at locations.
Base class for predictor parameters.
Definition: PredictorBase.h:37
ScanAngleParameters Parameters_
Definition: ScanAngle.h:52
ScanAngle(const Parameters_ &, const oops::Variables &)
Definition: ScanAngle.cc:26
void compute(const ioda::ObsSpace &, const GeoVaLs &, const ObsDiagnostics &, ioda::ObsVector &) const override
compute the predictor
Definition: ScanAngle.cc:38
std::string var_name_
Definition: ScanAngle.h:63
Configuration parameters of the ScanAngle predictor.
Definition: ScanAngle.h:32
oops::OptionalParameter< int > order
Definition: ScanAngle.h:40
oops::Parameter< std::string > varName
Name of the variable (from the MetaData group) containing the scan angle.
Definition: ScanAngle.h:43
OOPS_CONCRETE_PARAMETERS(ScanAngleParameters, PredictorParametersBase)
Forward declarations.
Definition: ObsAodExt.h:25
Definition: RunCRTM.h:27