Isis Developer Reference
|
Empirical Lunar Lambert photometric model Derive model albedo using phase dependent Minnaert equation and calculated empirically. More...
#include <LunarLambertEmpirical.h>
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 |
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.
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.
Isis::LunarLambertEmpirical::LunarLambertEmpirical | ( | Pvl & | pvl | ) |
References _FILEINFO_, Isis::NumericalApproximation::AddData(), Isis::NumericalApproximation::CubicClamped, Isis::PhotoModel::p_photoBSpline, Isis::PhotoModel::p_photoLList, Isis::PhotoModel::p_photoLSpline, Isis::PhotoModel::p_photoPhaseAngleCount, Isis::PhotoModel::p_photoPhaseCurveList, Isis::PhotoModel::p_photoPhaseList, Isis::NumericalApproximation::Reset(), Isis::NumericalApproximation::SetCubicClampedEndptDeriv(), Isis::NumericalApproximation::SetInterpType(), SetPhotoLList(), SetPhotoPhaseCurveList(), SetPhotoPhaseList(), Isis::PvlObject::Traverse, and Isis::IException::User.
|
virtual |
|
inlineinherited |
Return algorithm name found in Pvl file from constructor.
Referenced by Isis::AtmosModel::GenerateAhTable(), and Isis::Hapke::Hapke().
|
inherited |
Calculate the surface brightness using photometric angle information.
pha | Phase angle |
inc | Incidence angle |
ema | Emission angle |
References Isis::PhotoModel::PhotoModelAlgorithm().
Referenced by Isis::Albedo::Albedo(), Isis::AlbedoAtm::AlbedoAtm(), Isis::Mixed::Mixed(), Isis::Albedo::NormModelAlgorithm(), Isis::AlbedoAtm::NormModelAlgorithm(), Isis::Mixed::NormModelAlgorithm(), Isis::MoonAlbedo::NormModelAlgorithm(), Isis::NoNormalization::NormModelAlgorithm(), Isis::Shade::NormModelAlgorithm(), Isis::ShadeAtm::NormModelAlgorithm(), Isis::Topo::NormModelAlgorithm(), Isis::TopoAtm::NormModelAlgorithm(), Isis::PhotoModel::PhtTopder(), and Isis::TopoAtm::TopoAtm().
|
inlineinherited |
Hapke's approximation to Chandra's H function.
Referenced by Isis::Hapke::PhotoModelAlgorithm().
|
inlineinherited |
Return photometric B0 standardization value.
References Isis::PhotoModel::p_photo0B0Standard.
|
inlineinherited |
Return photometric B0 value.
References Isis::PhotoModel::p_photoB0.
|
inlineinherited |
Return photometric Bh value.
References Isis::PhotoModel::p_photoBh.
|
inlineinherited |
Return photometric Ch value.
References Isis::PhotoModel::p_photoCh.
|
inlineinherited |
Return photometric Hg1 value.
References Isis::PhotoModel::p_photoHg1.
|
inlineinherited |
Return photometric Hg2 value.
References Isis::PhotoModel::p_photoHg2.
|
inlineinherited |
Return photometric Hh value.
References Isis::PhotoModel::p_photoHh.
|
inlineinherited |
Return photometric K value.
References Isis::PhotoModel::p_photoK.
|
inlineinherited |
Return photometric k value list.
References Isis::PhotoModel::p_photoKList.
|
inlineinherited |
Return photometric L value.
References Isis::PhotoModel::p_photoL.
|
inlineinherited |
Return photometric l value list.
References Isis::PhotoModel::p_photoLList.
|
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.
|
inlineinherited |
Return photometric phase curve value list.
References Isis::PhotoModel::p_photoPhaseCurveList.
|
inlineinherited |
Return photometric phase angle list.
References Isis::PhotoModel::p_photoPhaseList.
|
inlineinherited |
Return photometric Theta value.
References Isis::PhotoModel::p_photoTheta.
|
inlineinherited |
Return photometric Wh value.
References Isis::PhotoModel::p_photoWh.
|
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.
cosang | input value to obtain arccosine of (in radians) |
Referenced by Isis::PhotoModel::PhtTopder().
|
inherited |
Obtain topographic derivative of an arbitrary photometric function.
phase | Input phase angle |
incidence | Input incidence angle |
emission | Input emission angle |
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().
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photo0B0Standard.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoB0.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoBh.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoCh.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoHg1.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoHg2.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoHh.
|
inlinevirtualinherited |
Reimplemented in Isis::Minnaert.
References Isis::PhotoModel::p_photoK.
|
inlinevirtualinherited |
Reimplemented in Isis::MinnaertEmpirical.
|
inlinevirtualinherited |
Reimplemented in Isis::LunarLambert.
References Isis::PhotoModel::p_photoL.
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.
llist | PvkKeyword containing List of Lunar Lambert function exponents to interpolate |
References Isis::PhotoModel::p_photoLList, SetPhotoLList(), and Isis::toDouble().
|
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.
llist | List of Lunar Lambert function exponents to interpolate |
Reimplemented from Isis::PhotoModel.
References Isis::PhotoModel::p_photoLList.
Referenced by LunarLambertEmpirical(), and SetPhotoLList().
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.
phasecurvelist | PvlKeyword containing list of brightness values corresponding to Lunar Lambert function exponents |
References Isis::PhotoModel::p_photoPhaseCurveList, SetPhotoPhaseCurveList(), and Isis::toDouble().
|
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.
phasecurvelist | List of brightness values corresponding to Lunar Lambert function exponents |
Reimplemented from Isis::PhotoModel.
References Isis::PhotoModel::p_photoPhaseCurveList.
Referenced by LunarLambertEmpirical(), and SetPhotoPhaseCurveList().
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.
phaselist | PvlKeyword containing phase angles to interpolate |
References _FILEINFO_, Isis::PhotoModel::p_photoPhaseList, SetPhotoPhaseList(), Isis::toString(), and Isis::IException::User.
|
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.
phaselist | List 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().
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoTheta.
|
inlinevirtualinherited |
Reimplemented in Isis::Hapke.
References Isis::PhotoModel::p_photoWh.
|
virtualinherited |
Sets whether standard conditions will be used.
standard | True if standard conditions are used. |
Reimplemented in Isis::Hapke.
Referenced by Isis::Albedo::Albedo(), Isis::AlbedoAtm::AlbedoAtm(), Isis::Mixed::Mixed(), Isis::Shade::NormModelAlgorithm(), Isis::ShadeAtm::NormModelAlgorithm(), Isis::Topo::NormModelAlgorithm(), Isis::Hapke::SetStandardConditions(), and Isis::TopoAtm::TopoAtm().
|
inlineinherited |
Returns true if standard conditions are used, i.e., if SetStandardConditions(true) has been called. This is initialized to false in the constructor.
|
protectedinherited |
Referenced by Isis::Hapke::Hapke(), and Isis::Hapke::PhotoModelAlgorithm().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by Isis::Hapke::Hapke(), and Isis::Hapke::SetStandardConditions().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by Isis::Hapke::PhotoModelAlgorithm().
|
protectedinherited |
Referenced by Isis::Hapke::PhotoModelAlgorithm().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by LunarLambertEmpirical(), Isis::PhotoModel::PhotoLList(), SetPhotoLList(), SetPhotoLList(), and ~LunarLambertEmpirical().
|
protectedinherited |
Referenced by LunarLambertEmpirical(), PhotoModelAlgorithm(), and ~LunarLambertEmpirical().
|
protectedinherited |
Referenced by Isis::Hapke::PhotoModelAlgorithm().
|
protectedinherited |
Referenced by LunarLambertEmpirical(), and Isis::MinnaertEmpirical::MinnaertEmpirical().
|
protectedinherited |
Referenced by LunarLambertEmpirical(), Isis::MinnaertEmpirical::MinnaertEmpirical(), Isis::PhotoModel::PhotoPhaseCurveList(), SetPhotoPhaseCurveList(), Isis::MinnaertEmpirical::SetPhotoPhaseCurveList(), SetPhotoPhaseCurveList(), Isis::MinnaertEmpirical::SetPhotoPhaseCurveList(), ~LunarLambertEmpirical(), and Isis::MinnaertEmpirical::~MinnaertEmpirical().
|
protectedinherited |
Referenced by LunarLambertEmpirical(), Isis::MinnaertEmpirical::MinnaertEmpirical(), Isis::PhotoModel::PhotoPhaseList(), SetPhotoPhaseList(), Isis::MinnaertEmpirical::SetPhotoPhaseList(), SetPhotoPhaseList(), Isis::MinnaertEmpirical::SetPhotoPhaseList(), ~LunarLambertEmpirical(), and Isis::MinnaertEmpirical::~MinnaertEmpirical().
|
protectedinherited |
Referenced by Isis::Hapke::PhotoModelAlgorithm().
|
protectedinherited |
Referenced by Isis::Hapke::PhotoModelAlgorithm().
|
protectedinherited |
|
protectedinherited |
Referenced by Isis::Hapke::Hapke(), Isis::Hapke::PhotoModelAlgorithm(), and Isis::Hapke::SetOldTheta().
|
protectedinherited |