Isis Developer Reference
Isis::HapkeAtm1 Class Reference

Implements the Hapke Atmospheric Model. More...

#include <HapkeAtm1.h>

Inheritance diagram for Isis::HapkeAtm1:
Inheritance graph
Collaboration diagram for Isis::HapkeAtm1:
Collaboration graph

Public Member Functions

 HapkeAtm1 (Pvl &pvl, PhotoModel &pmodel)
 
virtual ~HapkeAtm1 ()
 
void CalcAtmEffect (double pha, double inc, double ema, double *pstd, double *trans, double *trans0, double *sbar, double *transs)
 Calculate the atmospheric scattering effect using photometric angle information.
 
virtual void SetStandardConditions (bool standard)
 Used to calculate atmosphere at standard conditions.
 
void GenerateAhTable ()
 This method computes the values of the atmospheric Ah table and sets the properties of the atmospheric Ah spline.
 
void GenerateHahgTables ()
 This method computes the values of the atmospheric Hahg and Hahg0 tables and sets the properties of the atmospheric Hahg and Hahg0 splines.
 
void GenerateHahgTablesShadow ()
 This method is a modified version of the GenerateHahgTables method and is used solely for shadow modeling.
 
void SetAtmosAtmSwitch (const int atmswitch)
 Set the switch that controls the function that will be integrated.
 
void SetAtmosBha (const double bha)
 Set the Anisotropic Atmospheric function parameter.
 
void SetAtmosHga (const double hga)
 Set the Hapke atmospheric function parameter.
 
void SetAtmosInc (const double inc)
 Set the incidence angle.
 
void SetAtmosNulneg (const string nulneg)
 Set the Atmospheric function parameter.
 
void SetAtmosPhi (const double phi)
 Set the azimuth angle.
 
void SetAtmosTau (const double tau)
 Set the Atmospheric function parameter.
 
void SetAtmosTauref (const double tauref)
 Set the Atmospheric function parameter.
 
void SetAtmosWha (const double wha)
 Set the Atmospheric function parameter.
 
void SetAtmosHnorm (const double hnorm)
 Set the Atmospheric function parameter.
 
void SetAtmosIord (const string offset)
 Set additive offset in fit.
 
void SetAtmosEstTau (const string esttau)
 Estimate the optical depth tau using shadows.
 
string AlgorithmName () const
 Return atmospheric algorithm name.
 
bool AtmosAdditiveOffset () const
 Allow additive offset in fit?
 
double AtmosHnorm () const
 Return atmospheric Hnorm value.
 
double AtmosBha () const
 Return atmospheric Bha value.
 
double AtmosTau () const
 Return atmospheric Tau value.
 
double AtmosWha () const
 Return atmospheric Wha value.
 
double AtmosHga () const
 Return atmospheric Hga value.
 
double AtmosTauref () const
 Return atmospheric Tauref value.
 
bool AtmosNulneg () const
 Return atmospheric Nulneg value.
 
double AtmosAb () const
 Return atmospheric Ab value.
 
double AtmosHahgsb () const
 Return atmospheric Hahgsb value.
 
int AtmosNinc () const
 Return atmospheric Ninc value.
 
double AtmosMunot () const
 Return atmospheric Munot value.
 
vector< double > AtmosIncTable ()
 Return atmospheric IncTable value.
 
vector< double > AtmosAhTable ()
 Return atmospheric AhTable value.
 
vector< double > AtmosHahgtTable ()
 Return atmospheric HahgtTable value.
 
vector< double > AtmosHahgt0Table ()
 Return atmospheric Hahgt0Table value.
 
NumericalApproximation AtmosAhSpline ()
 If GenerateAhTable() has been called this returns a clamped cubic spline of the data set (p_atmosIncTable, p_atmosAhTable) with first derivatives of the endpoints equal to 1.0e30.
 
NumericalApproximation AtmosHahgtSpline ()
 If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosIncTable, p_atmosHahgtTable) with first derivatives of the endpoints equal to 1.0e30.
 
NumericalApproximation AtmosHahgt0Spline ()
 If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosIncTable, p_atmosHahgt0Table) with first derivatives of the endpoints equal to 1.0e30.
 

Static Public Member Functions

static double G11Prime (double tau)
 Perform Chandra and Van de Hulst's series approximation for the g'11 function needed in second order scattering theory.
 
static double Ei (double x)
 This routine computes the exponential integral, Ei(x).
 
static double En (unsigned int n, double x)
 This routine evaluates the generalized exponential integral, En(x).
 

Protected Member Functions

virtual void AtmosModelAlgorithm (double phase, double incidence, double emission)
 Henyey-Greenstein atmos scattering in the 1st approximation.
 
void SetAtmosNulneg (bool nulneg)
 
void SetAtmosIord (bool offset)
 
void SetAtmosEstTau (bool esttau)
 
void SetAlgorithmName (string name)
 
void SetOldTau (double tau)
 
void SetOldWha (double wha)
 
PhotoModelGetPhotoModel () const
 
bool StandardConditions () const
 
bool TauOrWhaChanged () const
 Checks whether tau or wha have changed.
 
double Eulgam () const
 

Protected Attributes

int p_atmosAtmSwitch
 
int p_atmosNinc
 
double p_atmosBha
 
double p_atmosBhasave
 
double p_atmosHgasave
 
double p_atmosTauref
 
double p_atmosTausave
 
double p_atmosWhasave
 
double p_pstd
 Pure atmospheric-scattering term.
 
double p_trans
 Transmission of surface reflected light through the atmosphere overall.
 
double p_trans0
 Transmission of surface reflected light through the atmosphere with no scatterings in the atmosphere.
 
double p_transs
 Transmission of light that must be subtracted from the flat surface model to get the shadow model.
 
double p_sbar
 Illumination of the ground by the sky.
 
double p_atmosHga
 
double p_atmosTau
 
double p_atmosWha
 
double p_atmosAb
 
double p_atmosHnorm
 Atmospheric shell thickness normalized to planet radius.
 
bool p_atmosAddOffset
 Allow additive offset in fit.
 
bool p_atmosEstTau
 Estimate optical depth tau using shadows.
 
vector< double > p_atmosIncTable
 
vector< double > p_atmosAhTable
 
double p_atmosHahgsb
 
vector< double > p_atmosHahgtTable
 
vector< double > p_atmosHahgt0Table
 
double p_atmosInc
 
double p_atmosPhi
 
double p_atmosMunot
 
double p_atmosSini
 
double p_atmosCosphi
 
double p_atmosEulgam
 
NumericalApproximation p_atmosAhSpline
 Spline object for the atmospheric Ah Table. Properties are set in GenerateAhTable().
 
NumericalApproximation p_atmosHahgtSpline
 Spline object for the atmospheric Hahg Table. Properties are set in GenerateHahgTables().
 
NumericalApproximation p_atmosHahgt0Spline
 Spline object for the atmospheric Hahg0 Table. Properties are set in GenerateHahgTables().
 

Detailed Description

Implements the Hapke Atmospheric Model.

Author
2000-07-07 Randy Kirk

Constructor & Destructor Documentation

◆ HapkeAtm1()

Isis::HapkeAtm1::HapkeAtm1 ( Pvl & pvl,
PhotoModel & pmodel )

◆ ~HapkeAtm1()

virtual Isis::HapkeAtm1::~HapkeAtm1 ( )
inlinevirtual

Member Function Documentation

◆ AlgorithmName()

string Isis::AtmosModel::AlgorithmName ( ) const
inlineinherited

Return atmospheric algorithm name.

◆ AtmosAb()

double Isis::AtmosModel::AtmosAb ( ) const
inlineinherited

◆ AtmosAdditiveOffset()

bool Isis::AtmosModel::AtmosAdditiveOffset ( ) const
inlineinherited

Allow additive offset in fit?

References Isis::AtmosModel::p_atmosAddOffset.

◆ AtmosAhSpline()

NumericalApproximation Isis::AtmosModel::AtmosAhSpline ( )
inlineinherited

If GenerateAhTable() has been called this returns a clamped cubic spline of the data set (p_atmosIncTable, p_atmosAhTable) with first derivatives of the endpoints equal to 1.0e30.

Otherwise, it is a natural cubic spline with an empty data set.

Returns
NumericalApproximation Cubic spline

References Isis::AtmosModel::p_atmosAhSpline.

Referenced by Isis::AlbedoAtm::AlbedoAtm(), Isis::AlbedoAtm::NormModelAlgorithm(), Isis::ShadeAtm::NormModelAlgorithm(), Isis::TopoAtm::NormModelAlgorithm(), and Isis::TopoAtm::TopoAtm().

◆ AtmosAhTable()

vector< double > Isis::AtmosModel::AtmosAhTable ( )
inlineinherited

Return atmospheric AhTable value.

References Isis::AtmosModel::p_atmosAhTable.

◆ AtmosBha()

double Isis::AtmosModel::AtmosBha ( ) const
inlineinherited

Return atmospheric Bha value.

References Isis::AtmosModel::p_atmosBha.

◆ AtmosHahgsb()

double Isis::AtmosModel::AtmosHahgsb ( ) const
inlineinherited

Return atmospheric Hahgsb value.

References Isis::AtmosModel::p_atmosHahgsb.

◆ AtmosHahgt0Spline()

NumericalApproximation Isis::AtmosModel::AtmosHahgt0Spline ( )
inlineinherited

If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosIncTable, p_atmosHahgt0Table) with first derivatives of the endpoints equal to 1.0e30.

Otherwise, it is a natural cubic spline with an empty data set.

Returns
NumericalApproximation Cubic spline

References Isis::AtmosModel::p_atmosHahgt0Spline.

◆ AtmosHahgt0Table()

vector< double > Isis::AtmosModel::AtmosHahgt0Table ( )
inlineinherited

Return atmospheric Hahgt0Table value.

References Isis::AtmosModel::p_atmosHahgt0Table.

◆ AtmosHahgtSpline()

NumericalApproximation Isis::AtmosModel::AtmosHahgtSpline ( )
inlineinherited

If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosIncTable, p_atmosHahgtTable) with first derivatives of the endpoints equal to 1.0e30.

Otherwise, it is a natural cubic spline with an empty data set.

Returns
NumericalApproximation Cubic spline

References Isis::AtmosModel::p_atmosHahgtSpline.

◆ AtmosHahgtTable()

vector< double > Isis::AtmosModel::AtmosHahgtTable ( )
inlineinherited

Return atmospheric HahgtTable value.

References Isis::AtmosModel::p_atmosHahgtTable.

◆ AtmosHga()

double Isis::AtmosModel::AtmosHga ( ) const
inlineinherited

Return atmospheric Hga value.

References Isis::AtmosModel::p_atmosHga.

◆ AtmosHnorm()

double Isis::AtmosModel::AtmosHnorm ( ) const
inlineinherited

Return atmospheric Hnorm value.

References Isis::AtmosModel::p_atmosHnorm.

◆ AtmosIncTable()

vector< double > Isis::AtmosModel::AtmosIncTable ( )
inlineinherited

Return atmospheric IncTable value.

References Isis::AtmosModel::p_atmosIncTable.

◆ AtmosModelAlgorithm()

void Isis::HapkeAtm1::AtmosModelAlgorithm ( double phase,
double incidence,
double emission )
protectedvirtual

Henyey-Greenstein atmos scattering in the 1st approximation.

Isotropic atmospheric scattering in the first approximation, with corrections to the singly-scattered terms (in the spirit of Hapke's photometric function for surfaces) for a strongly anisotropic single-particle phase function. The particular phase function implemented is a single-term Henyey-Greenstein. The model for scattering for a general, non-Lambertian surface with an atmosphere looks like this:

P = Pstd + trans*(rho*Ah*munot)/(1.d0-rho*Ab*sbar) + trans0*rho*(Psurf-Ah*munot)

where P is the overall photometric function (the model of the data), PSTD is the pure atmospheric-scattering term, PSURF is the surface photometric function, AH*MUNOT is a Lambertian approximation to this with hemispheric albedo AH, TRANS and TRANS0 quantify transmission of surface reflected light through the atmosphere overall and with no scatterings in the atmosphere, and finally SBAR quantifies the illumination of the ground by the sky. RHO is the ratio of the sur- face albedo to the albedo assumed in the functional form of PSURF.

Parameters
phaseValue of the phase angle.
incidenceValue of the incidence angle.
emissionValue of the emission angle.
History

2000-07-07 Randy Kirk - USGS, Flagstaff - Original code

2000-12-18 K Teal Thompson Port to Unix/ISIS;

2007-02-20 Janet Barrett - Imported from Isis2 pht_atm_functions to Isis3.

2008-11-05 Jeannie Walldren - Modified references to NumericalMethods class and replaced Isis::PI with PI since this is in Isis namespace.

2011-12-19 Janet Barrett - Added code to estimate the shadow brightness value (transs). Also got rid of unnecessary check for identical photometric angle values between successive calls. This check should only be made in the photometric models.

Implements Isis::AtmosModel.

References Isis::AtmosModel::AtmosWha(), Isis::AtmosModel::En(), Isis::NumericalApproximation::Evaluate(), Isis::NumericalApproximation::Extrapolate, Isis::AtmosModel::GenerateHahgTables(), Isis::AtmosModel::GenerateHahgTablesShadow(), Isis::NumericalAtmosApprox::OuterFunction, Isis::AtmosModel::p_atmosAtmSwitch, Isis::AtmosModel::p_atmosEstTau, Isis::AtmosModel::p_atmosHahgsb, Isis::AtmosModel::p_atmosHahgt0Spline, Isis::AtmosModel::p_atmosHahgtSpline, Isis::AtmosModel::p_atmosHga, Isis::AtmosModel::p_atmosHnorm, Isis::AtmosModel::p_atmosInc, Isis::AtmosModel::p_atmosMunot, Isis::AtmosModel::p_atmosSini, Isis::AtmosModel::p_atmosTau, Isis::AtmosModel::p_atmosWha, Isis::AtmosModel::p_pstd, Isis::AtmosModel::p_sbar, Isis::AtmosModel::p_trans, Isis::AtmosModel::p_trans0, Isis::AtmosModel::p_transs, Isis::PI, Isis::AtmosModel::SetOldTau(), Isis::AtmosModel::SetOldWha(), and Isis::AtmosModel::TauOrWhaChanged().

◆ AtmosMunot()

double Isis::AtmosModel::AtmosMunot ( ) const
inlineinherited

Return atmospheric Munot value.

References Isis::AtmosModel::p_atmosMunot.

◆ AtmosNinc()

int Isis::AtmosModel::AtmosNinc ( ) const
inlineinherited

Return atmospheric Ninc value.

References Isis::AtmosModel::p_atmosNinc.

◆ AtmosNulneg()

bool Isis::AtmosModel::AtmosNulneg ( ) const
inlineinherited

Return atmospheric Nulneg value.

◆ AtmosTau()

double Isis::AtmosModel::AtmosTau ( ) const
inlineinherited

Return atmospheric Tau value.

References Isis::AtmosModel::p_atmosTau.

Referenced by Isis::AtmosModel::TauOrWhaChanged().

◆ AtmosTauref()

double Isis::AtmosModel::AtmosTauref ( ) const
inlineinherited

Return atmospheric Tauref value.

References Isis::AtmosModel::p_atmosTauref.

◆ AtmosWha()

◆ CalcAtmEffect()

void Isis::AtmosModel::CalcAtmEffect ( double pha,
double inc,
double ema,
double * pstd,
double * trans,
double * trans0,
double * sbar,
double * transs )
inherited

Calculate the atmospheric scattering effect using photometric angle information.

Parameters
phaphase angle
incincidence angle
emaemission angle
pstdpure atmospheric-scattering term
transtransmission of surface reflected light through the atmosphere overall
trans0transmission of surface reflected light through the atmosphere with no scatterings in the atmosphere
sbarillumination of the ground by the sky
Exceptions
Isis::IException::User"Invalid photometric angles"

References Isis::AtmosModel::AtmosModelAlgorithm(), Isis::AtmosModel::p_pstd, Isis::AtmosModel::p_sbar, Isis::AtmosModel::p_trans, Isis::AtmosModel::p_trans0, and Isis::AtmosModel::p_transs.

Referenced by Isis::AlbedoAtm::AlbedoAtm(), Isis::AlbedoAtm::NormModelAlgorithm(), Isis::ShadeAtm::NormModelAlgorithm(), Isis::TopoAtm::NormModelAlgorithm(), and Isis::TopoAtm::TopoAtm().

◆ Ei()

double Isis::AtmosModel::Ei ( double x)
staticinherited

This routine computes the exponential integral, Ei(x).

This is defined as

\[ Ei(x) = - \int_{-x}^{\infty} \frac{e^{-t}}{t}\mathrm{d}t = \int_{-\infty}^{x} \frac{e^{t}}{t}\mathrm{d}t \]

for x > 0.

For small x, this method uses the power series,

\[ Ei(x) = \gamma + \ln x + \frac{x}{1*1!} + \frac{x^2}{2*2!} + ... \]

where \( \gamma = 0.5772156649... \) is Euler's constant, and for large x, the asymptotic series is used,

\[ Ei(x) \sim \frac{e^x}{x} (1 + \frac{1!}{x} + \frac{2!}{x^2} + ...) \]

See also
mathworld.wolfram.com/ExponentialIntegral.html
Parameters
xValue at which the exponential integral will be computed, x > 0.0
Returns
double The exponential integral for the given x.
Exceptions
Isis::IException::Programmer"Invalid arguments. Definition requires x > 0.0."
Isis::IException::Math"Power series failed to converge"

References _FILEINFO_, Isis::IException::Programmer, and Isis::IException::Unknown.

Referenced by Isis::Anisotropic2::AtmosModelAlgorithm(), Isis::HapkeAtm2::AtmosModelAlgorithm(), and Isis::Isotropic2::AtmosModelAlgorithm().

◆ En()

double Isis::AtmosModel::En ( unsigned int n,
double x )
staticinherited

This routine evaluates the generalized exponential integral, En(x).

This is defined as

\[ E_n(x) = \int_{1}^{\infty} \frac{e^{-xt}}{t^n}\mathrm{d}t \mathrm{ for } x \in \mathbb{R }, n \in \mathbb{Z } \mathrm{such that } x \ge 0.0, n \ge 0 \]

Notice that if x = 0, then the equation is not defined for n = 0 or n = 1, as these will result in \( E_n(x) = \infty \).

This method uses the following for cases:

  • For n > 1 and x = 0.0,

    \[ E_n(0) = \frac{1}{n-1} \]

  • For n = 0 and x > 0.0,

    \[ E_0(x) = \frac{e^{-x}}{x} \]

  • For \( x >\sim 1.0 \), Lentz's continued fraction algorithm is used,

    \[ E_n(x) = e^{-x}(\frac{1}{x + n - \frac{1*n}{x + n + 2 - \frac{2(n+1)}{x + n + 4 - ...}}}) \]

  • For \( 0.0 < x <\sim 1.0 \), series representation is used,

    \[ E_n(x) = \frac{(-x)^{n-1}}{(n-1)!}[- \ln x + \psi (n)] - \sum_{m=0, m \neq n-1}^{\infty}\frac{(-x)^m}{(m-n+1)m!} \]

    where \( \psi (1) = \gamma \) and \( \psi (n) = - \gamma + \sum_{m=1}^{n-1} \frac{1}{m}\) and \( \gamma = 0.5772156649... \) is Euler's constant.

The parameter n is of type unsigned int since n cannot be negative.

The routine allows fast evaluation of En(x) to any accuracy, \(\epsilon\), within the reach of your machine's word length for floating-point numbers. The only modification required for increased accuracy is to supply Euler's constant with enough significant digits.

See also
mathworld.wolfram.com/En-Function.html
Parameters
nInteger value at which the exponential integral will be evaluated (n >= 0)
xThe exponential integral En(x) will be evaluated
Returns
double Value of the exponential integral for the give n and x.
Exceptions
Isis::IException::Programmer"Invalid arguments. Definition requires (x > 0.0 and n >=0 ) or (x >= 0.0 and n > 1)."
Isis::IException::Math"Continued fraction failed to converge"
Isis::IException::Math"Series representation failed to converge"

References _FILEINFO_, Isis::IException::Programmer, and Isis::IException::Unknown.

Referenced by Isis::Anisotropic1::AtmosModelAlgorithm(), Isis::Anisotropic2::AtmosModelAlgorithm(), AtmosModelAlgorithm(), Isis::HapkeAtm2::AtmosModelAlgorithm(), Isis::Isotropic1::AtmosModelAlgorithm(), Isis::Isotropic2::AtmosModelAlgorithm(), and Isis::AtmosModel::G11Prime().

◆ Eulgam()

double Isis::AtmosModel::Eulgam ( ) const
inlineprotectedinherited

◆ G11Prime()

double Isis::AtmosModel::G11Prime ( double tau)
staticinherited

Perform Chandra and Van de Hulst's series approximation for the g'11 function needed in second order scattering theory.

Parameters
taunormal optical depth of atmosphere
Returns
double Value of the g'11 function evaluated at the given tau

References Isis::AtmosModel::En(), MAX, and Isis::PI.

Referenced by Isis::Anisotropic2::AtmosModelAlgorithm(), Isis::HapkeAtm2::AtmosModelAlgorithm(), and Isis::Isotropic2::AtmosModelAlgorithm().

◆ GenerateAhTable()

void Isis::AtmosModel::GenerateAhTable ( )
inherited

This method computes the values of the atmospheric Ah table and sets the properties of the atmospheric Ah spline.

It obtains the hemispheric albedo by integrating the photometric function times mu over mu = 0 to 1 and then over phi = 0 to 2*pi to calculate the hemispheric reflectance Ah needed for the photometric model with atmosphere. The Trapezoid rule is applied to the table of Ah to obtain bihemispheric albedo Ab. The parameter p_atmosAtmSwitch is set to 0 to integrate Ah.

References Isis::NumericalApproximation::AddData(), Isis::PhotoModel::AlgorithmName(), Isis::NumericalApproximation::CubicClamped, Isis::NumericalAtmosApprox::OuterFunction, Isis::AtmosModel::p_atmosAb, Isis::AtmosModel::p_atmosAhSpline, Isis::AtmosModel::p_atmosAhTable, Isis::AtmosModel::p_atmosAtmSwitch, Isis::AtmosModel::p_atmosInc, Isis::AtmosModel::p_atmosIncTable, Isis::AtmosModel::p_atmosMunot, Isis::AtmosModel::p_atmosNinc, Isis::AtmosModel::p_atmosSini, Isis::PI, Isis::NumericalApproximation::Reset(), Isis::NumericalApproximation::SetCubicClampedEndptDeriv(), and Isis::NumericalApproximation::SetInterpType().

Referenced by Isis::AlbedoAtm::AlbedoAtm(), Isis::ShadeAtm::NormModelAlgorithm(), and Isis::TopoAtm::TopoAtm().

◆ GenerateHahgTables()

void Isis::AtmosModel::GenerateHahgTables ( )
inherited

This method computes the values of the atmospheric Hahg and Hahg0 tables and sets the properties of the atmospheric Hahg and Hahg0 splines.

It integrates functions involving the single particle phase function (assumed to be Hapke Henyey-Greenstein) over mu = 0 to 1 and then over phi = 0 to 2*pi to calculate the corrections needed for the anisotropic photometric model with atmosphere. The Trapezoid rule is applied to the table of Ah to obtain bihemispheric albedo Ab. The parameter p_atmosAtmSwitch is set to 1, 2, 3 to evaluate the 3 required integrals.

References Isis::NumericalApproximation::AddData(), Isis::AtmosModel::AtmosWha(), Isis::NumericalApproximation::CubicClamped, Isis::NumericalAtmosApprox::OuterFunction, Isis::AtmosModel::p_atmosAtmSwitch, Isis::AtmosModel::p_atmosHahgsb, Isis::AtmosModel::p_atmosHahgt0Spline, Isis::AtmosModel::p_atmosHahgt0Table, Isis::AtmosModel::p_atmosHahgtSpline, Isis::AtmosModel::p_atmosHahgtTable, Isis::AtmosModel::p_atmosInc, Isis::AtmosModel::p_atmosIncTable, Isis::AtmosModel::p_atmosMunot, Isis::AtmosModel::p_atmosNinc, Isis::AtmosModel::p_atmosSini, Isis::PI, Isis::NumericalApproximation::Reset(), Isis::NumericalApproximation::SetCubicClampedEndptDeriv(), and Isis::NumericalApproximation::SetInterpType().

Referenced by AtmosModelAlgorithm(), and Isis::HapkeAtm2::AtmosModelAlgorithm().

◆ GenerateHahgTablesShadow()

void Isis::AtmosModel::GenerateHahgTablesShadow ( )
inherited

This method is a modified version of the GenerateHahgTables method and is used solely for shadow modeling.

Unlike the GenerateHahgTables method, this method does not tabulate the first or third integrals. It only evaluates the middle integral that corrects the sbar variable (illumination of the ground by the sky).

References Isis::AtmosModel::AtmosWha(), Isis::NumericalAtmosApprox::OuterFunction, Isis::AtmosModel::p_atmosAtmSwitch, Isis::AtmosModel::p_atmosHahgsb, Isis::AtmosModel::p_atmosInc, Isis::AtmosModel::p_atmosMunot, Isis::AtmosModel::p_atmosSini, and Isis::PI.

Referenced by AtmosModelAlgorithm(), and Isis::HapkeAtm2::AtmosModelAlgorithm().

◆ GetPhotoModel()

PhotoModel * Isis::AtmosModel::GetPhotoModel ( ) const
inlineprotectedinherited

◆ SetAlgorithmName()

void Isis::AtmosModel::SetAlgorithmName ( string name)
inlineprotectedinherited

◆ SetAtmosAtmSwitch()

void Isis::AtmosModel::SetAtmosAtmSwitch ( const int atmswitch)
inherited

Set the switch that controls the function that will be integrated.

This method is only used for testing the methods in this class. This parameter is limited to the values 0, 1, 2, and 3.

Parameters
atmswitchInternal atmospheric function parameter, there is no default
Exceptions
Isis::IException::User"Invalid value of atmospheric atmswitch"

References _FILEINFO_, Isis::AtmosModel::p_atmosAtmSwitch, and Isis::IException::User.

◆ SetAtmosBha()

void Isis::AtmosModel::SetAtmosBha ( const double bha)
inherited

Set the Anisotropic Atmospheric function parameter.

This is the coefficient of the single particle Legendre phase function. This parameter is limited to values that are >=-1 and <=1.

Parameters
bhaAnisotropic atmospheric function parameter, default is 0.85
Exceptions
Isis::IException::User"Invalid value of atmospheric bha"

References _FILEINFO_, Isis::AtmosModel::p_atmosBha, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosEstTau() [1/2]

void Isis::AtmosModel::SetAtmosEstTau ( bool esttau)
inlineprotectedinherited

◆ SetAtmosEstTau() [2/2]

void Isis::AtmosModel::SetAtmosEstTau ( const string esttau)
inherited

Estimate the optical depth tau using shadows.

Author
Janet Barrett (12/16/2011)
Parameters
esttautrue/false

References _FILEINFO_, Isis::AtmosModel::SetAtmosEstTau(), and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel(), and Isis::AtmosModel::SetAtmosEstTau().

◆ SetAtmosHga()

void Isis::AtmosModel::SetAtmosHga ( const double hga)
inherited

Set the Hapke atmospheric function parameter.

This is the coefficient of the single particle Henyey-Greenstein phase function. This parameter is limited to values that are >-1 and <1.

Parameters
hgaHapke atmospheric function parameter, default is 0.68
Exceptions
Isis::IException::User"Invalid value of atmospheric hga"

References _FILEINFO_, Isis::AtmosModel::p_atmosHga, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosHnorm()

void Isis::AtmosModel::SetAtmosHnorm ( const double hnorm)
inherited

Set the Atmospheric function parameter.

This is the atmospheric shell thickness normalized to the planet radius and is used to modify angles to get more accurate path lengths near the terminator (ratio of scale height to the planetary radius). This parameter is limited to values that are >=0.

Parameters
hnormAtmospheric function parameter, default is 0.003

References _FILEINFO_, Isis::AtmosModel::p_atmosHnorm, Isis::toString(), and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosInc()

void Isis::AtmosModel::SetAtmosInc ( const double inc)
inherited

Set the incidence angle.

This method is only used for testing the methods in this class. This parameter is limited to values >=0 and <=90.

Parameters
incInternal atmospheric function parameter, there is no default
Exceptions
Isis::IException::User"Invalid value of atmospheric inc"

References _FILEINFO_, Isis::AtmosModel::p_atmosInc, Isis::AtmosModel::p_atmosMunot, Isis::AtmosModel::p_atmosSini, Isis::PI, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosIord() [1/2]

void Isis::AtmosModel::SetAtmosIord ( bool offset)
inlineprotectedinherited

◆ SetAtmosIord() [2/2]

void Isis::AtmosModel::SetAtmosIord ( const string offset)
inherited

Set additive offset in fit.

Author
Sharmila Prasad (8/18/2011)
Parameters
offsettrue/false

References _FILEINFO_, Isis::AtmosModel::SetAtmosIord(), and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel(), and Isis::AtmosModel::SetAtmosIord().

◆ SetAtmosNulneg() [1/2]

void Isis::AtmosModel::SetAtmosNulneg ( bool nulneg)
inlineprotectedinherited

◆ SetAtmosNulneg() [2/2]

void Isis::AtmosModel::SetAtmosNulneg ( const string nulneg)
inherited

Set the Atmospheric function parameter.

This determines if negative values after removal of atmospheric effects will be set to NULL. This parameter is limited to values of YES or NO.

Parameters
nulnegAtmospheric function parameter, default is NO
Exceptions
Isis::IException::User"Invalid value of atmospheric nulneg"

References _FILEINFO_, Isis::AtmosModel::SetAtmosNulneg(), and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel(), and Isis::AtmosModel::SetAtmosNulneg().

◆ SetAtmosPhi()

void Isis::AtmosModel::SetAtmosPhi ( const double phi)
inherited

Set the azimuth angle.

This method is only used for testing the methods in this class. This parameter is limited to values >=0 and <=360.

Parameters
phiInternal atmospheric function parameter, there is no default
Exceptions
Isis::IException::User"Invalid value of atmospheric phi"

References _FILEINFO_, Isis::AtmosModel::p_atmosCosphi, Isis::AtmosModel::p_atmosPhi, Isis::PI, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosTau()

void Isis::AtmosModel::SetAtmosTau ( const double tau)
inherited

Set the Atmospheric function parameter.

This specifies the normal optical depth of the atmosphere. This parameter is limited to values that are >=0.

Parameters
tauAtmospheric function parameter, default is 0.28
Exceptions
Isis::IException::User"Invalid value of atmospheric tau"

References _FILEINFO_, Isis::AtmosModel::p_atmosTau, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosTauref()

void Isis::AtmosModel::SetAtmosTauref ( const double tauref)
inherited

Set the Atmospheric function parameter.

This specifies the reference optical depth of the atmosphere to which the image will be normalized. This parameter is limited to values that are >=0.

Parameters
taurefAtmospheric function parameter, default is 0.0
Exceptions
Isis::IException::User"Invalid value of atmospheric tauref"

References _FILEINFO_, Isis::AtmosModel::p_atmosTauref, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetAtmosWha()

void Isis::AtmosModel::SetAtmosWha ( const double wha)
inherited

Set the Atmospheric function parameter.

This is the single- scattering albedo of atmospheric particles. This parameter is limited to values that are >0 and <=1.

Parameters
whaAtmospheric function parameter, default is 0.95
Exceptions
Isis::IException::User"Invalid value of atmospheric wha"

References _FILEINFO_, Isis::AtmosModel::p_atmosWha, and Isis::IException::User.

Referenced by Isis::AtmosModel::AtmosModel().

◆ SetOldTau()

◆ SetOldWha()

◆ SetStandardConditions()

void Isis::AtmosModel::SetStandardConditions ( bool standard)
virtualinherited

Used to calculate atmosphere at standard conditions.

References Isis::AtmosModel::p_atmosTau, Isis::AtmosModel::p_atmosTauref, and Isis::AtmosModel::p_atmosTausave.

Referenced by Isis::AlbedoAtm::AlbedoAtm(), and Isis::TopoAtm::TopoAtm().

◆ StandardConditions()

bool Isis::AtmosModel::StandardConditions ( ) const
inlineprotectedinherited

◆ TauOrWhaChanged()

bool Isis::AtmosModel::TauOrWhaChanged ( ) const
protectedinherited

Member Data Documentation

◆ p_atmosAb

double Isis::AtmosModel::p_atmosAb
protectedinherited

◆ p_atmosAddOffset

bool Isis::AtmosModel::p_atmosAddOffset
protectedinherited

◆ p_atmosAhSpline

NumericalApproximation Isis::AtmosModel::p_atmosAhSpline
protectedinherited

Spline object for the atmospheric Ah Table. Properties are set in GenerateAhTable().

Referenced by Isis::AtmosModel::AtmosAhSpline(), and Isis::AtmosModel::GenerateAhTable().

◆ p_atmosAhTable

vector<double> Isis::AtmosModel::p_atmosAhTable
protectedinherited

◆ p_atmosAtmSwitch

◆ p_atmosBha

◆ p_atmosBhasave

double Isis::AtmosModel::p_atmosBhasave
protectedinherited

◆ p_atmosCosphi

double Isis::AtmosModel::p_atmosCosphi
protectedinherited

◆ p_atmosEstTau

bool Isis::AtmosModel::p_atmosEstTau
protectedinherited

◆ p_atmosEulgam

double Isis::AtmosModel::p_atmosEulgam
protectedinherited

◆ p_atmosHahgsb

◆ p_atmosHahgt0Spline

NumericalApproximation Isis::AtmosModel::p_atmosHahgt0Spline
protectedinherited

◆ p_atmosHahgt0Table

vector<double> Isis::AtmosModel::p_atmosHahgt0Table
protectedinherited

◆ p_atmosHahgtSpline

NumericalApproximation Isis::AtmosModel::p_atmosHahgtSpline
protectedinherited

◆ p_atmosHahgtTable

vector<double> Isis::AtmosModel::p_atmosHahgtTable
protectedinherited

◆ p_atmosHga

◆ p_atmosHgasave

double Isis::AtmosModel::p_atmosHgasave
protectedinherited

◆ p_atmosHnorm

◆ p_atmosInc

◆ p_atmosIncTable

vector<double> Isis::AtmosModel::p_atmosIncTable
protectedinherited

◆ p_atmosMunot

◆ p_atmosNinc

◆ p_atmosPhi

double Isis::AtmosModel::p_atmosPhi
protectedinherited

◆ p_atmosSini

◆ p_atmosTau

◆ p_atmosTauref

◆ p_atmosTausave

double Isis::AtmosModel::p_atmosTausave
protectedinherited

◆ p_atmosWha

◆ p_atmosWhasave

double Isis::AtmosModel::p_atmosWhasave
protectedinherited

◆ p_pstd

◆ p_sbar

◆ p_trans

◆ p_trans0

double Isis::AtmosModel::p_trans0
protectedinherited

◆ p_transs


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