Class for computing aerosol scattering and attenuation using simple parameterizations. More...
#include <ParametricXMLMieModel.h>
Classes | |
struct | PFParameters |
Phase function table (modified Henyey-Greenstein function). More... | |
Public Member Functions | |
atm::AttenuationResult | EvaluateMieAttenuation (const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const |
Calculate the aerosol attenuation between two points. More... | |
double | EvaluateMieAttenuation (const utl::Point &xInit, const utl::Point &xFinal, const double wLength) const |
Calculate the attenuation between two points at a single wavelength. Uses a basic three-parameter aerosol model. More... | |
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. More... | |
atm::ScatteringResult | EvaluateMieScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const atm::AttenuationResult &mieAttenuation) const |
Aerosol scattering fraction in a wavelength band using precomputed attenuation. More... | |
double | EvaluateMieScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const double wLength) const |
Aerosol scattering fraction at a fixed wavelength. More... | |
double | EvaluateMieScattering (const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const double wLength, const double mieAttenuation) const |
Aerosol scattering fraction at a fixed wavelength with precomputed attenuation. More... | |
double | EvaluateScatteringAngle (const utl::Point &p, const double angle, const double wLength) const |
Calculation is done independent of the position and wavelength. More... | |
virtual const utl::VRandomSampler & | EvaluateScatteringAngleDistribution (const utl::Point &p, const double wLength) const |
double | GetAngstromCoeff () const |
double | GetAttenuationLength (const utl::Point &p, const double wLength) const |
Horizontal attenuation length (inverse of extinction coefficient). Grows with altitude as aerosol distribution decreases. More... | |
double | GetGroundHeightASL () const |
double | GetHorizAttLength () const |
double | GetMixHeight () const |
double | GetScaleHeight () const |
double | GetVerticalAerosolOpticalDepth (const unsigned int eyeId, const double altitude) const |
Calculate VAOD at some altitude (w.r.t. sea level) above a given eye. More... | |
bool | HasData () const |
True if a data source is for the given model. More... | |
void | Init () |
void | SetAngstromCoeff (const double gamma) |
void | SetGroundHeightASL (const double hGnd) |
void | SetHorizAttLength (const double lMix) |
void | SetMixHeight (const double hMix) |
void | SetScaleHeight (const double hScl) |
virtual void | SetUncertaintyBound (const double nSigma) const |
alter Model by nSigma standard deviations More... | |
virtual | ~ParametricXMLMieModel () |
Destructor - should be virtual for base classes. More... | |
Private Types | |
typedef struct atm::ParametricXMLMieModel::PFParameters | PFParameters |
Phase function table (modified Henyey-Greenstein function). More... | |
Private Member Functions | |
REGISTER_MODEL (atm::VMieModel,"ParametricXML", ParametricXMLMieModel) | |
Private Attributes | |
double | fGamma |
Angstrom exponent of the aerosol scattering wavelength dependence. More... | |
double | fGammaError |
double | fHGnd |
Prevailing ground height used in the aerosol model. More... | |
double | fHMix |
Mixing layer height (w.r.t. prevailing ground level). More... | |
double | fHMixError |
double | fHScl |
Scale height of the aerosol "entrainment layer" above the mixing layer. More... | |
double | fHSclError |
double | fLMix |
Mixing layer (i.e., ground-level) horizontal attenuation length. More... | |
double | fLMixError |
PFParameters | fPhaseFunction |
Class for computing aerosol scattering and attenuation using simple parameterizations.
This class computes aerosol scattering and extinction properties using basic aerosol models also employed by the HiRes experiment.
For attenuation and VAOD, a simple three-parameter model is used for the altitude dependence of the extinction coefficient. The model splits the aerosol distribution into two layers: a uniform layer of height above ground level where aerosols have been mixed by convection; and an entrainment layer for all
where the aerosol density decreases exponentially with scale height
. More specifically,
where is the extinction coefficient within the mixing layer. For ease of use, this input to the model is given in terms of the horizontal attenuation length
of aerosol extinction.
The optical depth between altitudes and
is
Note that in this expression, all heights are expressed with respect to the prevailing ground level of the SD ( ), and not with respect to sea level. Possible differences between aerosols at different locations around the SD, as well as small changes in the terrain, are ignored.
When the height of the mixing layer is set to zero, the extinction coefficient and optical depth reduce to the two-parameter expression given by P. Sokolsky in the appendix to "Introduction to Ultrahigh Energy Cosmic Ray Physics," Westview Press 1988. This was the actual model used by HiRes.
The wavelength dependence of scattering is given by the power-law Angstrom coefficient :
where =355 nm. See A. Angstrom, Geo. Anal. 12 (1929) 130-159.
For angular scattering, the model uses a numerically estimated phase function due to Longtin (1988). The calculation uses a desert atmosphere with sand, water droplets, and carbonaceous particles to estimate the phase function at 550 nm under a range of wind conditions. (The current values originate in the calculation performed with winds of 10 m/s.) Details can be found in:
Steven Mengzhi Luo, "Tropospheric Aerosol Study by Fly's Eye and Lidar Technique," PhD Thesis, University of Utah (1992).
Definition at line 19 of file ParametricXMLMieModel.h.
|
private |
Phase function table (modified Henyey-Greenstein function).
|
inlinevirtual |
Destructor - should be virtual for base classes.
Definition at line 23 of file ParametricXMLMieModel.h.
|
virtual |
Calculate the aerosol attenuation between two points.
Implements atm::VMieModel.
Definition at line 171 of file ParametricXMLMieModel.cc.
References utl::TabulatedFunctionErrors::PushBack().
Referenced by atm::SuperMieModel::EvaluateMieAttenuation().
|
virtual |
Calculate the attenuation between two points at a single wavelength. Uses a basic three-parameter aerosol model.
Implements atm::VMieModel.
Definition at line 195 of file ParametricXMLMieModel.cc.
References utl::abs(), utl::ReferenceEllipsoid::eWGS84, utl::ReferenceEllipsoid::Get(), utl::kLn10, utl::m, max, utl::nanometer, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), std::pow(), and utl::swap().
|
virtual |
Aerosol scattering fraction in a wavelength band.
Implements atm::VMieModel.
Definition at line 93 of file ParametricXMLMieModel.cc.
Referenced by atm::SuperMieModel::EvaluateMieScattering(), and testParametricXMLMieModel::testExpertMode().
|
virtual |
Aerosol scattering fraction in a wavelength band using precomputed attenuation.
Implements atm::VMieModel.
Definition at line 109 of file ParametricXMLMieModel.cc.
References utl::TabulatedFunction::GetNPoints(), atm::AttenuationResult::GetTransmissionFactor(), utl::TabulatedFunction::GetX(), utl::TabulatedFunction::GetY(), and utl::TabulatedFunctionErrors::PushBack().
|
virtual |
Aerosol scattering fraction at a fixed wavelength.
Implements atm::VMieModel.
Definition at line 136 of file ParametricXMLMieModel.cc.
|
virtual |
Aerosol scattering fraction at a fixed wavelength with precomputed attenuation.
Implements atm::VMieModel.
Definition at line 153 of file ParametricXMLMieModel.cc.
References std::pow().
|
virtual |
Calculation is done independent of the position and wavelength.
Implements atm::VMieModel.
Definition at line 311 of file ParametricXMLMieModel.cc.
References RdGeoCeLDFFitter::a, RdGeoCeLDFFitter::b, RdGeoCeLDFFitter::c, utl::kPi, and std::pow().
Referenced by atm::SuperMieModel::EvaluateScatteringAngle().
|
virtualinherited |
Definition at line 35 of file VMieModel.cc.
References utl::deg, atm::VMieModel::EvaluateScatteringAngle(), atm::VMieModel::fAngularDistribution, and utl::TabulatedFunction::PushBack().
|
inline |
Definition at line 83 of file ParametricXMLMieModel.h.
References fGamma.
Referenced by testParametricXMLMieModel::testExpertMode().
|
virtual |
Horizontal attenuation length (inverse of extinction coefficient). Grows with altitude as aerosol distribution decreases.
Implements atm::VMieModel.
Definition at line 287 of file ParametricXMLMieModel.cc.
References utl::ReferenceEllipsoid::eWGS84, utl::ReferenceEllipsoid::Get(), utl::nanometer, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), and std::pow().
Referenced by atm::SuperMieModel::GetAttenuationLength().
|
inline |
Definition at line 86 of file ParametricXMLMieModel.h.
References fHGnd.
|
inline |
Definition at line 74 of file ParametricXMLMieModel.h.
References fLMix.
Referenced by testParametricXMLMieModel::testExpertMode().
|
inline |
Definition at line 77 of file ParametricXMLMieModel.h.
References fHMix.
Referenced by testParametricXMLMieModel::testExpertMode().
|
inline |
Definition at line 80 of file ParametricXMLMieModel.h.
References fHScl.
Referenced by testParametricXMLMieModel::testExpertMode().
|
virtual |
Calculate VAOD at some altitude (w.r.t. sea level) above a given eye.
Implements atm::VMieModel.
Definition at line 251 of file ParametricXMLMieModel.cc.
References utl::ReferenceEllipsoid::eWGS84, utl::ReferenceEllipsoid::Get(), utl::m, and utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight().
Referenced by atm::SuperMieModel::GetVerticalAerosolOpticalDepth().
|
inlinevirtual |
True if a data source is for the given model.
This method is meant to be checked to determine whether the given model is able to find valid data to evaluate. Typically it will always be true for parametric models which rely on an XML file, and will be true or false for database-based models, depending on whether or not relevant data are found in the DB for the current detector time
Implements atm::VModel.
Definition at line 88 of file ParametricXMLMieModel.h.
|
virtual |
Implements atm::VModel.
Definition at line 47 of file ParametricXMLMieModel.cc.
References utl::ReferenceEllipsoid::eWGS84, fwk::CoordinateSystemRegistry::Get(), utl::ReferenceEllipsoid::Get(), utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), and utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight().
Referenced by atm::SuperMieModel::Init(), and testParametricXMLMieModel::testExpertMode().
|
private |
|
inline |
Definition at line 82 of file ParametricXMLMieModel.h.
References fGamma.
|
inline |
Definition at line 85 of file ParametricXMLMieModel.h.
References fHGnd.
|
inline |
Definition at line 73 of file ParametricXMLMieModel.h.
References fLMix.
Referenced by testParametricXMLMieModel::testExpertMode().
|
inline |
Definition at line 76 of file ParametricXMLMieModel.h.
References fHMix.
|
inline |
Definition at line 79 of file ParametricXMLMieModel.h.
References fHScl.
Referenced by testParametricXMLMieModel::testExpertMode().
|
virtualinherited |
alter Model by nSigma standard deviations
Reimplemented in atm::MeasuredDBMieModel, and atm::SuperMieModel.
Definition at line 11 of file VModel.cc.
References ERROR.
|
private |
Angstrom exponent of the aerosol scattering wavelength dependence.
Definition at line 104 of file ParametricXMLMieModel.h.
Referenced by GetAngstromCoeff(), and SetAngstromCoeff().
|
private |
Definition at line 105 of file ParametricXMLMieModel.h.
|
private |
Prevailing ground height used in the aerosol model.
Definition at line 108 of file ParametricXMLMieModel.h.
Referenced by GetGroundHeightASL(), and SetGroundHeightASL().
|
private |
Mixing layer height (w.r.t. prevailing ground level).
Definition at line 96 of file ParametricXMLMieModel.h.
Referenced by GetMixHeight(), and SetMixHeight().
|
private |
Definition at line 97 of file ParametricXMLMieModel.h.
|
private |
Scale height of the aerosol "entrainment layer" above the mixing layer.
Definition at line 100 of file ParametricXMLMieModel.h.
Referenced by GetScaleHeight(), and SetScaleHeight().
|
private |
Definition at line 101 of file ParametricXMLMieModel.h.
|
private |
Mixing layer (i.e., ground-level) horizontal attenuation length.
Definition at line 92 of file ParametricXMLMieModel.h.
Referenced by GetHorizAttLength(), and SetHorizAttLength().
|
private |
Definition at line 93 of file ParametricXMLMieModel.h.
|
private |
Definition at line 118 of file ParametricXMLMieModel.h.