9 #ifndef _atm_MeasuredDBMieModel_h_
10 #define _atm_MeasuredDBMieModel_h_
13 #include <atm/VMieModel.h>
14 #include <utl/Point.h>
15 #include <utl/ShadowPtr.h>
16 #include <utl/TimeStamp.h>
21 class TabulatedFunction;
55 const double distance,
56 const std::vector<double>& wLength)
const;
61 const double distance,
66 const std::vector<double>& wLength)
const;
71 const double distance,
72 double wLength)
const;
77 const double distance,
79 const double mieAttenuation)
const;
83 double wLength)
const;
86 const double altitude)
const;
89 const double wLength)
const;
96 const double wLength)
const;
102 bool HasZone(
const std::string& zoneName)
const;
119 std::string
GetZoneName(
const unsigned int eyeId)
const;
189 #endif // _atm_MeasuredDBMieModel_h_
bool ZoneMatch(const ZonePoint &pt, const std::string &name) const
bool HasZone(const std::string &zoneName) const
Check for a zone in the DB (partial name match, case-insensitive)
Base class for a Mie Model.
void ToggleVAODPtr() const
double GetAttenuationLength(const utl::Point &p, const double wLength) const
bool CrossesZone(const utl::Point &pt1, const utl::Point &p2) const
std::map< std::string, PFParameters > ZonePhaseFunction
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...
utl::ShadowPtr< ZoneFunction > fMaxVAODVsHeightMap
std::vector< ZoneParam > fSwapZones
REGISTER_MODEL(atm::VMieModel,"MeasuredDB", MeasuredDBMieModel)
Class for computing aerosol scattering and attenuation using database measurements.
bool CheckForUpdates() const
std::map< std::string, utl::Point > ZonePosition
A TimeStamp holds GPS second and nanosecond for some event.
Class holding the output of the ScatteringResult function.
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
utl::ShadowPtr< ZonePhaseFunction > fPhaseFuncMap
void SetUncertaintyBound(double nSigma) const
alter Model by nSigma standard deviations
void Init()
Initialize model using an XML card.
virtual ~MeasuredDBMieModel()
std::string ZoneParamToString(const ZoneParam &zone) const
std::map< std::string, utl::TabulatedFunction > ZoneFunction
atm::AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const
std::string GetZoneName(const utl::Point &pt) const
ZoneParam StringToZoneParam(const std::string &str) const
ZonePosition fZonePositions
utl::ShadowPtr< ZoneFunction > fCentralVAODVsHeightMap
double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const
ZoneFunction * fVAODVsHeightMap
utl::TimeStamp fCurrentTime
utl::ShadowPtr< ZoneFunction > fAttLambdaVsHeightMap
utl::ShadowPtr< ZoneFunction > fAttVsHeightMap
Class describing the Atmospheric attenuation.
std::pair< std::string, utl::Point > ZonePoint
utl::ShadowPtr< ZoneFunction > fMinVAODVsHeightMap