Isis Developer Reference
Isis::LunarLambertEmpirical Class Reference

Empirical Lunar Lambert photometric model Derive model albedo using phase dependent Minnaert equation and calculated empirically. More...

#include <LunarLambertEmpirical.h>

Inheritance diagram for Isis::LunarLambertEmpirical:
Inheritance graph
Collaboration diagram for Isis::LunarLambertEmpirical:
Collaboration graph

Public Member Functions

 LunarLambertEmpirical (Pvl &pvl)
 
virtual ~LunarLambertEmpirical ()
 
void SetPhotoPhaseList (QString phasestrlist)
 Set the empirical Lunar Lambert function phase angle list.
 
void SetPhotoPhaseList (PvlKeyword phaselist)
 Set the empirical Lunar Lambert function phase angle list.
 
void SetPhotoLList (QString kstrlist)
 Set the empirical Lunar Lambert function L exponent list.
 
void SetPhotoLList (PvlKeyword lstrList)
 Set the empirical Lunar Lambert function L exponent list.
 
void SetPhotoPhaseCurveList (QString phasecurvestrlist)
 Set the empirical Lunar Lambert function phase curve list.
 
void SetPhotoPhaseCurveList (PvlKeyword phasecurvestrlist)
 Set the empirical Lunar Lambert function phase curve list.
 
virtual double PhotoModelAlgorithm (double phase, double incidence, double emission)
 Return photometric phase angle list.
 
QString AlgorithmName () const
 Return algorithm name found in Pvl file from constructor.
 
virtual void SetStandardConditions (bool standard)
 Sets whether standard conditions will be used.
 
bool StandardConditions () const
 Returns true if standard conditions are used, i.e., if SetStandardConditions(true) has been called. This is initialized to false in the constructor.
 
double PhtTopder (double phase, double incidence, double emission)
 Obtain topographic derivative of an arbitrary photometric function.
 
double CalcSurfAlbedo (double pha, double inc, double ema)
 Calculate the surface brightness using photometric angle information.
 
virtual void SetPhotoL (const double l)
 
double PhotoL () const
 Return photometric L value.
 
virtual void SetPhotoK (const double k)
 
double PhotoK () const
 Return photometric K value.
 
virtual void SetPhotoHg1 (const double hg1)
 
double PhotoHg1 () const
 Return photometric Hg1 value.
 
virtual void SetPhotoHg2 (const double hg2)
 
double PhotoHg2 () const
 Return photometric Hg2 value.
 
virtual void SetPhotoBh (const double bh)
 
double PhotoBh () const
 Return photometric Bh value.
 
virtual void SetPhotoCh (const double ch)
 
double PhotoCh () const
 Return photometric Ch value.
 
virtual void SetPhotoWh (const double wh)
 
double PhotoWh () const
 Return photometric Wh value.
 
virtual void SetPhotoHh (const double hh)
 
double PhotoHh () const
 Return photometric Hh value.
 
virtual void SetPhotoB0 (const double b0)
 
double PhotoB0 () const
 Return photometric B0 value.
 
virtual void SetPhotoTheta (const double theta)
 
double PhotoTheta () const
 Return photometric Theta value.
 
virtual void SetPhoto0B0Standard (const QString &b0standard)
 
QString Photo0B0Standard () const
 Return photometric B0 standardization value.
 
double Hfunc (double u, double gamma)
 Hapke's approximation to Chandra's H function.
 
virtual void SetPhotoKList (const QString)
 
std::vector< double > PhotoPhaseList () const
 Return photometric phase angle list.
 
std::vector< double > PhotoKList () const
 Return photometric k value list.
 
std::vector< double > PhotoLList () const
 Return photometric l value list.
 
std::vector< double > PhotoPhaseCurveList () const
 Return photometric phase curve value list.
 

Static Public Member Functions

static double PhtAcos (double cosang)
 Obtain arccosine of input value.
 

Protected Attributes

double p_photoL
 
double p_photoK
 
double p_photoHg1
 
double p_photoHg2
 
double p_photoBh
 
double p_photoCh
 
double p_photoCott
 
double p_photoCot2t
 
double p_photoTant
 
double p_photoSr
 
double p_photoOsr
 
QString p_algName
 
QString p_photo0B0Standard
 
double p_photoWh
 
double p_photoHh
 
double p_photoB0
 
double p_photoB0save
 
double p_photoTheta
 
double p_photoThetaold
 
std::vector< double > p_photoPhaseList
 
std::vector< double > p_photoKList
 
std::vector< double > p_photoLList
 
std::vector< double > p_photoPhaseCurveList
 
int p_photoPhaseAngleCount
 
NumericalApproximation p_photoKSpline
 
NumericalApproximation p_photoLSpline
 
NumericalApproximation p_photoBSpline
 

Detailed Description

Empirical Lunar Lambert photometric model Derive model albedo using phase dependent Minnaert equation and calculated empirically.

Limb-darkening k and phase function are arbitrary polynomials in phase angle.

albedo = brightness*[mu / (mu*munot)**k)]
assumptions:
1. bidirectional reflectance
2. semi-infinite medium
k k-1
reflectance (inc,ema,phase)=albedo * munot * mu
Minnaert photometric model Derive model albedo using Minnaert equation.
Definition Minnaert.h:42

Where k is the Minnaert index, an empirical constant (called nu in Hapke)

If k (nu) = 1, Minnaert's law reduces to Lambert's law. See Theory of Reflectance and Emittance Spectroscopy, 1993; Bruce Hapke; pg. 191-192.

Author
1999-01-08 Randy Kirk

Constructor & Destructor Documentation

◆ LunarLambertEmpirical()

◆ ~LunarLambertEmpirical()

Member Function Documentation

◆ AlgorithmName()

QString Isis::PhotoModel::AlgorithmName ( ) const
inlineinherited

Return algorithm name found in Pvl file from constructor.

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

◆ CalcSurfAlbedo()

double Isis::PhotoModel::CalcSurfAlbedo ( double pha,
double inc,
double ema )
inherited

◆ Hfunc()

double Isis::PhotoModel::Hfunc ( double u,
double gamma )
inlineinherited

Hapke's approximation to Chandra's H function.

Referenced by Isis::Hapke::PhotoModelAlgorithm().

◆ Photo0B0Standard()

QString Isis::PhotoModel::Photo0B0Standard ( ) const
inlineinherited

Return photometric B0 standardization value.

References Isis::PhotoModel::p_photo0B0Standard.

◆ PhotoB0()

double Isis::PhotoModel::PhotoB0 ( ) const
inlineinherited

Return photometric B0 value.

References Isis::PhotoModel::p_photoB0.

◆ PhotoBh()

double Isis::PhotoModel::PhotoBh ( ) const
inlineinherited

Return photometric Bh value.

References Isis::PhotoModel::p_photoBh.

◆ PhotoCh()

double Isis::PhotoModel::PhotoCh ( ) const
inlineinherited

Return photometric Ch value.

References Isis::PhotoModel::p_photoCh.

◆ PhotoHg1()

double Isis::PhotoModel::PhotoHg1 ( ) const
inlineinherited

Return photometric Hg1 value.

References Isis::PhotoModel::p_photoHg1.

◆ PhotoHg2()

double Isis::PhotoModel::PhotoHg2 ( ) const
inlineinherited

Return photometric Hg2 value.

References Isis::PhotoModel::p_photoHg2.

◆ PhotoHh()

double Isis::PhotoModel::PhotoHh ( ) const
inlineinherited

Return photometric Hh value.

References Isis::PhotoModel::p_photoHh.

◆ PhotoK()

double Isis::PhotoModel::PhotoK ( ) const
inlineinherited

Return photometric K value.

References Isis::PhotoModel::p_photoK.

◆ PhotoKList()

std::vector< double > Isis::PhotoModel::PhotoKList ( ) const
inlineinherited

Return photometric k value list.

References Isis::PhotoModel::p_photoKList.

◆ PhotoL()

double Isis::PhotoModel::PhotoL ( ) const
inlineinherited

Return photometric L value.

References Isis::PhotoModel::p_photoL.

◆ PhotoLList()

std::vector< double > Isis::PhotoModel::PhotoLList ( ) const
inlineinherited

Return photometric l value list.

References Isis::PhotoModel::p_photoLList.

◆ PhotoModelAlgorithm()

double Isis::LunarLambertEmpirical::PhotoModelAlgorithm ( double phase,
double incidence,
double emission )
virtual

Return photometric phase angle list.

Return photometric l value list Return photometric phase curve value list

Implements Isis::PhotoModel.

References Isis::NumericalApproximation::Evaluate(), Isis::NumericalApproximation::Extrapolate, Isis::PhotoModel::p_photoBSpline, Isis::PhotoModel::p_photoLSpline, and Isis::PI.

◆ PhotoPhaseCurveList()

std::vector< double > Isis::PhotoModel::PhotoPhaseCurveList ( ) const
inlineinherited

Return photometric phase curve value list.

References Isis::PhotoModel::p_photoPhaseCurveList.

◆ PhotoPhaseList()

std::vector< double > Isis::PhotoModel::PhotoPhaseList ( ) const
inlineinherited

Return photometric phase angle list.

References Isis::PhotoModel::p_photoPhaseList.

◆ PhotoTheta()

double Isis::PhotoModel::PhotoTheta ( ) const
inlineinherited

Return photometric Theta value.

References Isis::PhotoModel::p_photoTheta.

◆ PhotoWh()

double Isis::PhotoModel::PhotoWh ( ) const
inlineinherited

Return photometric Wh value.

References Isis::PhotoModel::p_photoWh.

◆ PhtAcos()

double Isis::PhotoModel::PhtAcos ( double cosang)
staticinherited

Obtain arccosine of input value.

If the input value is outside of the valid range (-1 to 1), then obtain the arccosine of the closest valid value.

Parameters
cosanginput value to obtain arccosine of (in radians)
Returns
double Arccosine of cosang, if valid.
History
2008-11-05 Jeannie Walldren - This method was moved from NumericalMethods class.

Referenced by Isis::PhotoModel::PhtTopder().

◆ PhtTopder()

double Isis::PhotoModel::PhtTopder ( double phase,
double incidence,
double emission )
inherited

Obtain topographic derivative of an arbitrary photometric function.

Parameters
phaseInput phase angle
incidenceInput incidence angle
emissionInput emission angle
Returns
double Gradient

References Isis::PhotoModel::CalcSurfAlbedo(), Isis::PhotoModel::PhtAcos(), and Isis::PI.

Referenced by Isis::Mixed::Mixed(), Isis::Mixed::NormModelAlgorithm(), Isis::Topo::NormModelAlgorithm(), Isis::TopoAtm::NormModelAlgorithm(), and Isis::TopoAtm::TopoAtm().

◆ SetPhoto0B0Standard()

virtual void Isis::PhotoModel::SetPhoto0B0Standard ( const QString & b0standard)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photo0B0Standard.

◆ SetPhotoB0()

virtual void Isis::PhotoModel::SetPhotoB0 ( const double b0)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoB0.

◆ SetPhotoBh()

virtual void Isis::PhotoModel::SetPhotoBh ( const double bh)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoBh.

◆ SetPhotoCh()

virtual void Isis::PhotoModel::SetPhotoCh ( const double ch)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoCh.

◆ SetPhotoHg1()

virtual void Isis::PhotoModel::SetPhotoHg1 ( const double hg1)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoHg1.

◆ SetPhotoHg2()

virtual void Isis::PhotoModel::SetPhotoHg2 ( const double hg2)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoHg2.

◆ SetPhotoHh()

virtual void Isis::PhotoModel::SetPhotoHh ( const double hh)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoHh.

◆ SetPhotoK()

virtual void Isis::PhotoModel::SetPhotoK ( const double k)
inlinevirtualinherited

Reimplemented in Isis::Minnaert.

References Isis::PhotoModel::p_photoK.

◆ SetPhotoKList()

virtual void Isis::PhotoModel::SetPhotoKList ( const QString )
inlinevirtualinherited

Reimplemented in Isis::MinnaertEmpirical.

◆ SetPhotoL()

virtual void Isis::PhotoModel::SetPhotoL ( const double l)
inlinevirtualinherited

Reimplemented in Isis::LunarLambert.

References Isis::PhotoModel::p_photoL.

◆ SetPhotoLList() [1/2]

void Isis::LunarLambertEmpirical::SetPhotoLList ( PvlKeyword lstrList)

Set the empirical Lunar Lambert function L exponent list.

This is used to govern the limb-darkening in the Lunar Lambert photometric function. Values of the Lunar Lambert exponent generally fall in the range from 0.0 (Lambert function) to 1.0 (Lommel-Seeliger or "lunar" function). There are no limits on the value of this parameter, but values far outside the 0 to 1 range will not be very useful.

Parameters
llistPvkKeyword containing List of Lunar Lambert function exponents to interpolate

References Isis::PhotoModel::p_photoLList, SetPhotoLList(), and Isis::toDouble().

◆ SetPhotoLList() [2/2]

void Isis::LunarLambertEmpirical::SetPhotoLList ( QString lstrlist)
virtual

Set the empirical Lunar Lambert function L exponent list.

This is used to govern the limb-darkening in the Lunar Lambert photometric function. Values of the Lunar Lambert exponent generally fall in the range from 0.0 (Lambert function) to 1.0 (Lommel-Seeliger or "lunar" function). There are no limits on the value of this parameter, but values far outside the 0 to 1 range will not be very useful.

Parameters
llistList of Lunar Lambert function exponents to interpolate

Reimplemented from Isis::PhotoModel.

References Isis::PhotoModel::p_photoLList.

Referenced by LunarLambertEmpirical(), and SetPhotoLList().

◆ SetPhotoPhaseCurveList() [1/2]

void Isis::LunarLambertEmpirical::SetPhotoPhaseCurveList ( PvlKeyword photocurvestrList)

Set the empirical Lunar Lambert function phase curve list.

This list provides the brightness values that correspond to the limb-darkening values in the empirical Lunar Lambert photometric function.

Parameters
phasecurvelistPvlKeyword containing list of brightness values corresponding to Lunar Lambert function exponents

References Isis::PhotoModel::p_photoPhaseCurveList, SetPhotoPhaseCurveList(), and Isis::toDouble().

◆ SetPhotoPhaseCurveList() [2/2]

void Isis::LunarLambertEmpirical::SetPhotoPhaseCurveList ( QString phasecurvestrlist)
virtual

Set the empirical Lunar Lambert function phase curve list.

This list provides the brightness values that correspond to the limb-darkening values in the empirical Lunar Lambert photometric function.

Parameters
phasecurvelistList of brightness values corresponding to Lunar Lambert function exponents

Reimplemented from Isis::PhotoModel.

References Isis::PhotoModel::p_photoPhaseCurveList.

Referenced by LunarLambertEmpirical(), and SetPhotoPhaseCurveList().

◆ SetPhotoPhaseList() [1/2]

void Isis::LunarLambertEmpirical::SetPhotoPhaseList ( PvlKeyword phaseList)

Set the empirical Lunar Lambert function phase angle list.

This is the list of phase angles that Lunar Lambert L values and phase curve list values will be provided for. A spline curve will be used to interpolate L values and phase curve values that exist between the given phase angles. The values in the phase angle list are limited to values that are >=0 and <=180.

Parameters
phaselistPvlKeyword containing phase angles to interpolate

References _FILEINFO_, Isis::PhotoModel::p_photoPhaseList, SetPhotoPhaseList(), Isis::toString(), and Isis::IException::User.

◆ SetPhotoPhaseList() [2/2]

void Isis::LunarLambertEmpirical::SetPhotoPhaseList ( QString phasestrlist)
virtual

Set the empirical Lunar Lambert function phase angle list.

This is the list of phase angles that Lunar Lambert L values and phase curve list values will be provided for. A spline curve will be used to interpolate L values and phase curve values that exist between the given phase angles. The values in the phase angle list are limited to values that are >=0 and <=180.

Parameters
phaselistList of phase angles to interpolate

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoPhaseList, Isis::toString(), and Isis::IException::User.

Referenced by LunarLambertEmpirical(), and SetPhotoPhaseList().

◆ SetPhotoTheta()

virtual void Isis::PhotoModel::SetPhotoTheta ( const double theta)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoTheta.

◆ SetPhotoWh()

virtual void Isis::PhotoModel::SetPhotoWh ( const double wh)
inlinevirtualinherited

Reimplemented in Isis::Hapke.

References Isis::PhotoModel::p_photoWh.

◆ SetStandardConditions()

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

◆ StandardConditions()

bool Isis::PhotoModel::StandardConditions ( ) const
inlineinherited

Returns true if standard conditions are used, i.e., if SetStandardConditions(true) has been called. This is initialized to false in the constructor.

Member Data Documentation

◆ p_algName

QString Isis::PhotoModel::p_algName
protectedinherited

◆ p_photo0B0Standard

◆ p_photoB0

◆ p_photoB0save

double Isis::PhotoModel::p_photoB0save
protectedinherited

◆ p_photoBh

double Isis::PhotoModel::p_photoBh
protectedinherited

◆ p_photoBSpline

◆ p_photoCh

double Isis::PhotoModel::p_photoCh
protectedinherited

◆ p_photoCot2t

double Isis::PhotoModel::p_photoCot2t
protectedinherited

◆ p_photoCott

double Isis::PhotoModel::p_photoCott
protectedinherited

◆ p_photoHg1

◆ p_photoHg2

◆ p_photoHh

◆ p_photoK

double Isis::PhotoModel::p_photoK
protectedinherited

◆ p_photoKList

◆ p_photoKSpline

◆ p_photoL

◆ p_photoLList

std::vector<double> Isis::PhotoModel::p_photoLList
protectedinherited

◆ p_photoLSpline

NumericalApproximation Isis::PhotoModel::p_photoLSpline
protectedinherited

◆ p_photoOsr

double Isis::PhotoModel::p_photoOsr
protectedinherited

◆ p_photoPhaseAngleCount

int Isis::PhotoModel::p_photoPhaseAngleCount
protectedinherited

◆ p_photoPhaseCurveList

◆ p_photoPhaseList

◆ p_photoSr

double Isis::PhotoModel::p_photoSr
protectedinherited

◆ p_photoTant

double Isis::PhotoModel::p_photoTant
protectedinherited

◆ p_photoTheta

◆ p_photoThetaold

double Isis::PhotoModel::p_photoThetaold
protectedinherited

◆ p_photoWh


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