List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
atm::NonParametricXMLMieModel Class Reference

#include <NonParametricXMLMieModel.h>

Inheritance diagram for atm::NonParametricXMLMieModel:
Inheritance graph
[legend]

Public Types

typedef std::vector< double > PhaseFunction
 Phase function table (arbitrary angular binning between 0, 180 degrees) 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 with a pre-calculated Mie 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 a pre-calculated Mie 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::VRandomSamplerEvaluateScatteringAngleDistribution (const utl::Point &p, const double wLength) 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 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 SetOpticalDepth (const utl::TabulatedFunction &vaod, const utl::TabulatedFunction &alpha)
 Override the XML config aerosol profile (use a function of height above sea level) More...
 
void SetPhaseFunction (const PhaseFunction &phaseFunc)
 Override the XML config phase function, which should be a function of arbitrary binning from 0 to 180 degrees inclusive. More...
 
virtual void SetUncertaintyBound (const double nSigma) const
 alter Model by nSigma standard deviations More...
 
virtual ~NonParametricXMLMieModel ()
 Destructor - should be virtual for base classes. More...
 

Private Member Functions

 REGISTER_MODEL (atm::VMieModel,"NonParametricXML", NonParametricXMLMieModel)
 

Private Attributes

utl::ShadowPtr
< utl::TabulatedFunction
fAlphaVsHeight
 Aerosol extinction coefficient vs. height. More...
 
double fGamma
 Angstrom exponent of the aerosol scattering wavelength dependence. More...
 
double fGammaError
 
PhaseFunction fPF
 Phase function table (arbitrary angular binning between 0, 180 degrees) More...
 
utl::ShadowPtr
< utl::TabulatedFunction
fVAODVsHeight
 Vertical aerosol optical depth vs. height. More...
 

Detailed Description

Definition at line 20 of file NonParametricXMLMieModel.h.

Member Typedef Documentation

typedef std::vector<double> atm::NonParametricXMLMieModel::PhaseFunction

Phase function table (arbitrary angular binning between 0, 180 degrees)

Definition at line 77 of file NonParametricXMLMieModel.h.

Constructor & Destructor Documentation

virtual atm::NonParametricXMLMieModel::~NonParametricXMLMieModel ( )
inlinevirtual

Destructor - should be virtual for base classes.

Definition at line 24 of file NonParametricXMLMieModel.h.

Member Function Documentation

AttenuationResult NonParametricXMLMieModel::EvaluateMieAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
const std::vector< double > &  wLength 
) const
virtual

Calculate the aerosol attenuation between two points.

Todo:
Propagation of uncertainties of the parameters.

Implements atm::VMieModel.

Definition at line 194 of file NonParametricXMLMieModel.cc.

References utl::TabulatedFunctionErrors::PushBack().

double NonParametricXMLMieModel::EvaluateMieAttenuation ( const utl::Point xInit,
const utl::Point xFinal,
const double  wLength 
) const
virtual

Calculate the attenuation between two points at a single wavelength. Uses a basic three-parameter aerosol model.

Implements atm::VMieModel.

Definition at line 218 of file NonParametricXMLMieModel.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().

ScatteringResult NonParametricXMLMieModel::EvaluateMieScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const std::vector< double > &  wLength 
) const
virtual

Aerosol scattering fraction in a wavelength band.

Implements atm::VMieModel.

Definition at line 107 of file NonParametricXMLMieModel.cc.

References utl::TabulatedFunctionErrors::PushBack().

ScatteringResult NonParametricXMLMieModel::EvaluateMieScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const atm::AttenuationResult mieAttenuation 
) const
virtual

Aerosol scattering fraction in a wavelength band with a pre-calculated Mie attenuation.

Implements atm::VMieModel.

Definition at line 132 of file NonParametricXMLMieModel.cc.

References utl::TabulatedFunction::GetNPoints(), atm::AttenuationResult::GetTransmissionFactor(), utl::TabulatedFunction::GetX(), utl::TabulatedFunction::GetY(), and utl::TabulatedFunctionErrors::PushBack().

double NonParametricXMLMieModel::EvaluateMieScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const double  wLength 
) const
virtual

Aerosol scattering fraction at a fixed wavelength.

Implements atm::VMieModel.

Definition at line 159 of file NonParametricXMLMieModel.cc.

double NonParametricXMLMieModel::EvaluateMieScattering ( const utl::Point xA,
const utl::Point xB,
const double  angle,
const double  distance,
const double  wLength,
const double  mieAttenuation 
) const
virtual

Aerosol scattering fraction at a fixed wavelength with a pre-calculated Mie attenuation.

Implements atm::VMieModel.

Definition at line 176 of file NonParametricXMLMieModel.cc.

References std::pow().

double NonParametricXMLMieModel::EvaluateScatteringAngle ( const utl::Point p,
const double  angle,
const double  wLength 
) const
virtual

Calculation is done independent of the position and wavelength.

Implements atm::VMieModel.

Definition at line 333 of file NonParametricXMLMieModel.cc.

References utl::kPi.

const utl::VRandomSampler & VMieModel::EvaluateScatteringAngleDistribution ( const utl::Point p,
const double  wLength 
) const
virtualinherited
double NonParametricXMLMieModel::GetAttenuationLength ( const utl::Point p,
const double  wLength 
) const
virtual

Horizontal attenuation length (inverse of extinction coefficient). Grows with altitude as aerosol distribution decreases.

Implements atm::VMieModel.

Definition at line 307 of file NonParametricXMLMieModel.cc.

References utl::ReferenceEllipsoid::eWGS84, utl::ReferenceEllipsoid::Get(), utl::nanometer, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), and std::pow().

double NonParametricXMLMieModel::GetVerticalAerosolOpticalDepth ( const unsigned int  eyeId,
const double  altitude 
) const
virtual

Calculate VAOD at some altitude (w.r.t. sea level) above a given eye.

Implements atm::VMieModel.

Definition at line 279 of file NonParametricXMLMieModel.cc.

References utl::km, and WARNING.

bool atm::NonParametricXMLMieModel::HasData ( ) const
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 71 of file NonParametricXMLMieModel.h.

void NonParametricXMLMieModel::Init ( void  )
virtual
atm::NonParametricXMLMieModel::REGISTER_MODEL ( atm::VMieModel  ,
"NonParametricXML"  ,
NonParametricXMLMieModel   
)
private
void NonParametricXMLMieModel::SetOpticalDepth ( const utl::TabulatedFunction vaod,
const utl::TabulatedFunction alpha 
)

Override the XML config aerosol profile (use a function of height above sea level)

Definition at line 87 of file NonParametricXMLMieModel.cc.

void NonParametricXMLMieModel::SetPhaseFunction ( const PhaseFunction phaseFunc)

Override the XML config phase function, which should be a function of arbitrary binning from 0 to 180 degrees inclusive.

Definition at line 97 of file NonParametricXMLMieModel.cc.

void VModel::SetUncertaintyBound ( const double  nSigma) const
virtualinherited

alter Model by nSigma standard deviations

Reimplemented in atm::MeasuredDBMieModel, and atm::SuperMieModel.

Definition at line 11 of file VModel.cc.

References ERROR.

Member Data Documentation

utl::ShadowPtr<utl::TabulatedFunction> atm::NonParametricXMLMieModel::fAlphaVsHeight
private

Aerosol extinction coefficient vs. height.

Definition at line 87 of file NonParametricXMLMieModel.h.

double atm::NonParametricXMLMieModel::fGamma
private

Angstrom exponent of the aerosol scattering wavelength dependence.

Definition at line 93 of file NonParametricXMLMieModel.h.

double atm::NonParametricXMLMieModel::fGammaError
private

Definition at line 94 of file NonParametricXMLMieModel.h.

PhaseFunction atm::NonParametricXMLMieModel::fPF
private

Phase function table (arbitrary angular binning between 0, 180 degrees)

Definition at line 90 of file NonParametricXMLMieModel.h.

utl::ShadowPtr<utl::TabulatedFunction> atm::NonParametricXMLMieModel::fVAODVsHeight
private

Vertical aerosol optical depth vs. height.

Definition at line 84 of file NonParametricXMLMieModel.h.


The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.