UFO
Thickness.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 Met Office
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_THICKNESS_H_
9 #define UFO_PREDICTORS_THICKNESS_H_
10 
11 #include <vector>
12 #include "oops/util/parameters/Parameters.h"
13 #include "oops/util/parameters/RequiredParameter.h"
15 
16 namespace ioda {
17  class ObsSpace;
18 }
19 
20 namespace ufo {
21 
22 // -----------------------------------------------------------------------------
23 
24 /// Configuration parameters of the thickness predictor.
27 
28  public:
29  /// Pressure value (Pa) at the top of the required thickness layer
30  oops::RequiredParameter<double> layerTop{"layer top", this};
31 
32  /// Pressure value (Pa) at the bottom of the required thickness layer
33  oops::RequiredParameter<double> layerBase{"layer base", this};
34 
35  /// Climatological mean of predictor
36  oops::RequiredParameter<double> mean{"mean", this};
37 
38  /// Climatological standard deviation of predictor
39  oops::RequiredParameter<double> stDev{"standard deviation", this};
40 };
41 
42 // -----------------------------------------------------------------------------
43 
44 /**
45  *This thickness predictor calculates the thickness of a specified pressure level interval.
46  *The thickness is calculated as the difference between the geopotential heights at two pressure
47  *levels. This requires the integration of the temperature with respect to log pressure.
48  *The thicknesses are based on geovals temperature and pressure profiles
49  */
50 
51 
52 class Thickness : public PredictorBase {
53  public:
54  /// The type of parameters accepted by the constructor of this predictor.
55  /// This typedef is used by the PredictorFactory.
57 
58  Thickness(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 };
68 
69 // -----------------------------------------------------------------------------
70 
71 } // namespace ufo
72 
73 #endif // UFO_PREDICTORS_THICKNESS_H_
GeoVaLs: geophysical values at locations.
Base class for predictor parameters.
Definition: PredictorBase.h:37
void compute(const ioda::ObsSpace &, const GeoVaLs &, const ObsDiagnostics &, ioda::ObsVector &) const override
compute the predictor
Definition: Thickness.cc:37
Thickness(const Parameters_ &, const oops::Variables &)
Definition: Thickness.cc:20
ThicknessParameters Parameters_
Definition: Thickness.h:56
Parameters_ parameters_
Definition: Thickness.h:66
Configuration parameters of the thickness predictor.
Definition: Thickness.h:25
oops::RequiredParameter< double > layerBase
Pressure value (Pa) at the bottom of the required thickness layer.
Definition: Thickness.h:33
oops::RequiredParameter< double > stDev
Climatological standard deviation of predictor.
Definition: Thickness.h:39
oops::RequiredParameter< double > layerTop
Pressure value (Pa) at the top of the required thickness layer.
Definition: Thickness.h:30
oops::RequiredParameter< double > mean
Climatological mean of predictor.
Definition: Thickness.h:36
OOPS_CONCRETE_PARAMETERS(ThicknessParameters, PredictorParametersBase)
Forward declarations.
Definition: ObsAodExt.h:25
Definition: RunCRTM.h:27