SuperMieModel.cc
Go to the documentation of this file.
1 
10 #include <iostream>
11 #include <string>
12 #include <sstream>
13 #include <vector>
14 #include <cmath>
15 
16 #include <det/Detector.h>
17 #include <atm/ParametricXMLMieModel.h>
18 #include <atm/ScatteringResult.h>
19 #include <atm/AttenuationResult.h>
20 
21 #include <atm/MeasuredDBMieModel.h>
22 #include <atm/ParametricXMLMieModel.h>
23 #include <atm/SuperMieModel.h>
24 #include <atm/ScatteringResult.h>
25 #include <atm/AttenuationResult.h>
26 
27 using namespace atm;
28 using namespace utl;
29 using namespace std;
30 
34 }
35 
37  delete fMeasuredDBMieModel;
39 }
40 
41 
45 }
46 
47 
49  const utl::Point& xFinal,
50  const double angle,
51  const double distance,
52  const vector<double>& wLength) const {
53 
55  return fMeasuredDBMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, wLength);
56  else
57  return fParametricXMLMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, wLength);
58 }
59 
60 
62  const utl::Point& xFinal,
63  const double angle,
64  const double distance,
65  const AttenuationResult& mieAttenuation) const {
66 
68  return fMeasuredDBMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, mieAttenuation);
69  else
70  return fParametricXMLMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, mieAttenuation);
71 }
72 
73 
75  const utl::Point& xFinal,
76  const double angle,
77  const double distance,
78  double wLength) const {
79 
81  return fMeasuredDBMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, wLength);
82  else
83  return fParametricXMLMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, wLength);
84 }
85 
86 
88  const utl::Point& xFinal,
89  const double angle,
90  const double distance,
91  double wLength,
92  const double mieAttenuation) const {
93 
95  return fMeasuredDBMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, wLength, mieAttenuation);
96  else
97  return fParametricXMLMieModel->EvaluateMieScattering(xInit, xFinal, angle, distance, wLength, mieAttenuation);
98 }
99 
100 
102  const utl::Point& xFinal,
103  const vector<double>& wLength) const{
104 
106  return fMeasuredDBMieModel->EvaluateMieAttenuation(xInit, xFinal, wLength);
107  else
108  return fParametricXMLMieModel->EvaluateMieAttenuation(xInit, xFinal, wLength);
109 }
110 
112  const utl::Point& xFinal,
113  double wLength) const{
114 
116  return fMeasuredDBMieModel->EvaluateMieAttenuation(xInit, xFinal, wLength);
117  else
118  return fParametricXMLMieModel->EvaluateMieAttenuation(xInit, xFinal, wLength);
119 }
120 
121 
122 double
123 SuperMieModel::GetVerticalAerosolOpticalDepth(const unsigned int eyeId, const double altitude) const {
125  return fMeasuredDBMieModel->GetVerticalAerosolOpticalDepth(eyeId, altitude);
126  else
128 }
129 
131  const double wLength) const {
133  return fMeasuredDBMieModel->GetAttenuationLength(p, wLength);
134  else
135  return fParametricXMLMieModel->GetAttenuationLength(p, wLength);
136 }
137 
139  const double angle,
140  const double wLength) const {
142  return fMeasuredDBMieModel->EvaluateScatteringAngle(p, angle, wLength);
143  else
144  return fParametricXMLMieModel->EvaluateScatteringAngle(p, angle, wLength);
145 }
146 
147 
148 void SuperMieModel::SetUncertaintyBound(double nSigma) const {
149 
151 
152 }
153 
154 // Configure (x)emacs for this file ...
155 // Local Variables:
156 // mode:c++
157 // compile-command: "make -C .. -k"
158 // End:
double GetAttenuationLength(const utl::Point &p, const double wLength) const
Horizontal attenuation length (inverse of extinction coefficient). Grows with altitude as aerosol dis...
Base class for a Mie Model.
Definition: VMieModel.h:38
Point object.
Definition: Point.h:32
double GetAttenuationLength(const utl::Point &p, const double wLength) const
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...
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.
double GetVerticalAerosolOpticalDepth(const unsigned int eyeId, const double altitude) const
Calculate VAOD at some altitude (w.r.t. sea level) above a given eye.
bool HasData() const
Determine if the DB tables are full or if an update is needed.
double GetVerticalAerosolOpticalDepth(const unsigned int eyeId, const double altitude) const
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.
void SetUncertaintyBound(double nSigma) const
alter Model by nSigma standard deviations
double GetAttenuationLength(const utl::Point &p, const double wLength) const
void Init()
Initialize model using an XML card.
double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const
Calculation is done independent of the position and wavelength.
double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const
ParametricXMLMieModel * fParametricXMLMieModel
atm::AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
atm::AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
Calculate the aerosol attenuation between two points.
MeasuredDBMieModel * fMeasuredDBMieModel
Class for computing aerosol scattering and attenuation using simple parameterizations.
double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const
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...
atm::ScatteringResult EvaluateMieScattering(const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const std::vector< double > &wLength) const
Aerosol scattering fraction in a wavelength band.
Class describing the Atmospheric attenuation.

, generated on Tue Sep 26 2023.