SuperMieModel.h
Go to the documentation of this file.
1 
9 #ifndef _atm_SuperMieModel_h_
10 #define _atm_SuperMieModel_h_
11 
12 
13 #include <atm/VMieModel.h>
14 #include <utl/Point.h>
15 
16 #include <string>
17 
18 namespace utl{class TimeStamp;};
19 namespace utl{class TabulatedFunction;};
20 
21 namespace atm{class MeasuredDBMieModel;};
22 namespace atm{class ParametricXMLMieModel;};
23 
24 namespace atm {
25 
42  class SuperMieModel :public atm::VMieModel {
43 
44  public:
45 
46  SuperMieModel();
47  virtual ~SuperMieModel();
48 
51  const utl::Point& xB,
52  const double angle,
53  const double distance,
54  const std::vector<double>& wLength) const;
55 
58  const utl::Point& xB,
59  const double angle,
60  const double distance,
61  const atm::AttenuationResult& mieAttenuation) const;
62 
65  const utl::Point& xFinal,
66  const std::vector<double>& wLength) const;
67 
69  double EvaluateMieScattering(const utl::Point& xA,
70  const utl::Point& xB,
71  const double angle,
72  const double distance,
73  double wLength) const;
74 
76  double EvaluateMieScattering(const utl::Point& xA,
77  const utl::Point& xB,
78  const double angle,
79  const double distance,
80  double wLength,
81  const double mieAttenuation) const;
82 
84  double EvaluateMieAttenuation(const utl::Point& xInit,
85  const utl::Point& xFinal,
86  double wLength) const;
87 
89  double GetVerticalAerosolOpticalDepth(const unsigned int eyeId,
90  const double altitude) const;
91 
92  double GetAttenuationLength(const utl::Point& p,
93  const double wLength) const;
94 
95  double EvaluateScatteringAngle(const utl::Point& p,
96  const double angle,
97  const double wLength) const;
98 
99  void Init();
100 
101  // This model should, by design, always return a result
102  bool HasData() const {return true;};
103 
105  void SetUncertaintyBound(double nSigma) const;
106 
107  private:
108 
111 
113  };
114 
115 } // atm
116 
117 
118 #endif // _atm_SuperMieModel_h_
119 
120 // Configure (x)emacs for this file ...
121 // Local Variables:
122 // mode:c++
123 // compile-command: "make -C .. -k"
124 // End:
REGISTER_MODEL(atm::VMieModel,"Super", SuperMieModel)
Base class for a Mie Model.
Definition: VMieModel.h:38
Point object.
Definition: Point.h:32
bool HasData() const
True if a data source is for the given model.
virtual ~SuperMieModel()
Class for computing aerosol scattering and attenuation using database measurements.
void SetUncertaintyBound(double nSigma) const
alter Model by nSigma standard deviations
Class holding the output of the ScatteringResult function.
Compute Mie scattering/attenuation using the best data source.
Definition: SuperMieModel.h:42
atm::AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
Compute attenuation between two points for several wavelengths.
double GetAttenuationLength(const utl::Point &p, const double wLength) const
double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const
ParametricXMLMieModel * fParametricXMLMieModel
MeasuredDBMieModel * fMeasuredDBMieModel
Class for computing aerosol scattering and attenuation using simple parameterizations.
double GetVerticalAerosolOpticalDepth(const unsigned int eyeId, const double altitude) const
Compute the aerosol optical depth at some height above a given eye.
atm::ScatteringResult EvaluateMieScattering(const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const std::vector< double > &wLength) const
Compute scattering intensity at point at a particular angle and distance from track defined by two po...
Class describing the Atmospheric attenuation.

, generated on Tue Sep 26 2023.