Isis 3 Programmer Reference
Isis::PhotoModel Class Referenceabstract

#include <PhotoModel.h>

Inheritance diagram for Isis::PhotoModel:
Inheritance graph
Collaboration diagram for Isis::PhotoModel:
Collaboration graph

Public Member Functions

 PhotoModel (Pvl &pvl)
 Create a PhotoModel object.
 
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 SetPhotoPhaseList (const QString)
 
virtual void SetPhotoKList (const QString)
 
virtual void SetPhotoLList (const QString)
 
virtual void SetPhotoPhaseCurveList (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 Member Functions

virtual double PhotoModelAlgorithm (double phase, double incidence, double emission)=0
 

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
 

Private Attributes

QString p_photoAlgorithmName
 Unique name of the photometric model.
 
bool p_standardConditions
 Indicates whether standard conditions are used.
 

Detailed Description

Author
1998-12-21 Randy Kirk
History

1998-12-21 Randy Kirk - USGS, Flagstaff - Original code

2007-02-20 Janet Barrett - Imported from Isis2.

2007-07-31 Steven Lambright - Moved children methods out of this class and into the children classes

2008-03-07 Janet Barrett - Moved variables and related methods that pertain to Hapke specific parameters to this class from the HapkeHen class. Also added the code to set standard conditions.

2008-06-18 Steven Koechle - Fixed Documentation Errors

2008-07-09 Steven Lambright - Fixed unit test

2008-10-17 Steven Lambright - Moved Hapke-specific methods out of this class and into children classes.

2008-11-05 Jeannie Walldren - Moved PhtAcos() from NumericalMethods class.

Definition at line 41 of file PhotoModel.h.

Constructor & Destructor Documentation

◆ PhotoModel()

Isis::PhotoModel::PhotoModel ( Pvl & pvl)

Create a PhotoModel object.

Because this is a pure virtual class you can not create a PhotoModel class directly. Instead, see the PhotoModelFactory class.

Parameters
pvlA pvl object containing a valid PhotoModel specification
See also
photometricModels.doc

Definition at line 26 of file PhotoModel.cpp.

References Isis::PvlContainer::hasKeyword(), p_photoAlgorithmName, p_standardConditions, Isis::PvlObject::Traverse, and Isis::IException::User.

◆ ~PhotoModel()

virtual Isis::PhotoModel::~PhotoModel ( )
inlinevirtual

Definition at line 44 of file PhotoModel.h.

Member Function Documentation

◆ AlgorithmName()

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

Return algorithm name found in Pvl file from constructor.

Definition at line 47 of file PhotoModel.h.

References p_photoAlgorithmName.

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

◆ CalcSurfAlbedo()

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

Calculate the surface brightness using photometric angle information.

Parameters
phaPhase angle
incIncidence angle
emaEmission angle
Returns
double Surface brightness calculated by the photometric function

Definition at line 177 of file PhotoModel.cpp.

Referenced by Isis::Albedo::Albedo(), Isis::AlbedoAtm::AlbedoAtm(), Isis::Albedo::NormModelAlgorithm(), Isis::AlbedoAtm::NormModelAlgorithm(), and PhtTopder().

◆ Hfunc()

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

Hapke's approximation to Chandra's H function.

Definition at line 168 of file PhotoModel.h.

◆ Photo0B0Standard()

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

Return photometric B0 standardization value.

Definition at line 163 of file PhotoModel.h.

◆ PhotoB0()

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

Return photometric B0 value.

Definition at line 143 of file PhotoModel.h.

◆ PhotoBh()

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

Return photometric Bh value.

Definition at line 107 of file PhotoModel.h.

◆ PhotoCh()

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

Return photometric Ch value.

Definition at line 116 of file PhotoModel.h.

◆ PhotoHg1()

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

Return photometric Hg1 value.

Definition at line 89 of file PhotoModel.h.

◆ PhotoHg2()

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

Return photometric Hg2 value.

Definition at line 98 of file PhotoModel.h.

◆ PhotoHh()

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

Return photometric Hh value.

Definition at line 134 of file PhotoModel.h.

◆ PhotoK()

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

Return photometric K value.

Definition at line 80 of file PhotoModel.h.

◆ PhotoKList()

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

Return photometric k value list.

Definition at line 183 of file PhotoModel.h.

◆ PhotoL()

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

Return photometric L value.

Definition at line 71 of file PhotoModel.h.

◆ PhotoLList()

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

Return photometric l value list.

Definition at line 188 of file PhotoModel.h.

◆ PhotoModelAlgorithm()

virtual double Isis::PhotoModel::PhotoModelAlgorithm ( double phase,
double incidence,
double emission )
protectedpure virtual

◆ PhotoPhaseCurveList()

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

Return photometric phase curve value list.

Definition at line 193 of file PhotoModel.h.

◆ PhotoPhaseList()

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

Return photometric phase angle list.

Definition at line 178 of file PhotoModel.h.

◆ PhotoTheta()

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

Return photometric Theta value.

Definition at line 152 of file PhotoModel.h.

◆ PhotoWh()

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

Return photometric Wh value.

Definition at line 125 of file PhotoModel.h.

◆ PhtAcos()

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

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.

Definition at line 150 of file PhotoModel.cpp.

Referenced by PhtTopder().

◆ PhtTopder()

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

Obtain topographic derivative of an arbitrary photometric function.

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

Definition at line 64 of file PhotoModel.cpp.

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

◆ SetPhoto0B0Standard()

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

Reimplemented in Isis::Hapke.

Definition at line 158 of file PhotoModel.h.

◆ SetPhotoB0()

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

Reimplemented in Isis::Hapke.

Definition at line 138 of file PhotoModel.h.

◆ SetPhotoBh()

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

Reimplemented in Isis::Hapke.

Definition at line 102 of file PhotoModel.h.

◆ SetPhotoCh()

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

Reimplemented in Isis::Hapke.

Definition at line 111 of file PhotoModel.h.

◆ SetPhotoHg1()

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

Reimplemented in Isis::Hapke.

Definition at line 84 of file PhotoModel.h.

◆ SetPhotoHg2()

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

Reimplemented in Isis::Hapke.

Definition at line 93 of file PhotoModel.h.

◆ SetPhotoHh()

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

Reimplemented in Isis::Hapke.

Definition at line 129 of file PhotoModel.h.

◆ SetPhotoK()

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

Reimplemented in Isis::Minnaert.

Definition at line 75 of file PhotoModel.h.

◆ SetPhotoKList()

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

Reimplemented in Isis::MinnaertEmpirical.

Definition at line 173 of file PhotoModel.h.

◆ SetPhotoL()

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

Reimplemented in Isis::LunarLambert.

Definition at line 66 of file PhotoModel.h.

◆ SetPhotoLList()

virtual void Isis::PhotoModel::SetPhotoLList ( const QString )
inlinevirtual

Reimplemented in Isis::LunarLambertEmpirical.

Definition at line 174 of file PhotoModel.h.

◆ SetPhotoPhaseCurveList()

virtual void Isis::PhotoModel::SetPhotoPhaseCurveList ( const QString )
inlinevirtual

Reimplemented in Isis::LunarLambertEmpirical, and Isis::MinnaertEmpirical.

Definition at line 175 of file PhotoModel.h.

◆ SetPhotoPhaseList()

virtual void Isis::PhotoModel::SetPhotoPhaseList ( const QString )
inlinevirtual

Reimplemented in Isis::LunarLambertEmpirical, and Isis::MinnaertEmpirical.

Definition at line 172 of file PhotoModel.h.

◆ SetPhotoTheta()

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

Reimplemented in Isis::Hapke.

Definition at line 147 of file PhotoModel.h.

◆ SetPhotoWh()

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

Reimplemented in Isis::Hapke.

Definition at line 120 of file PhotoModel.h.

◆ SetStandardConditions()

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

Sets whether standard conditions will be used.

Parameters
standardTrue if standard conditions are used.

Reimplemented in Isis::Hapke.

Definition at line 50 of file PhotoModel.cpp.

References p_standardConditions.

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

◆ StandardConditions()

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

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

Definition at line 53 of file PhotoModel.h.

References p_standardConditions.

Member Data Documentation

◆ p_algName

QString Isis::PhotoModel::p_algName
protected

Definition at line 212 of file PhotoModel.h.

◆ p_photo0B0Standard

QString Isis::PhotoModel::p_photo0B0Standard
protected

Definition at line 213 of file PhotoModel.h.

◆ p_photoAlgorithmName

QString Isis::PhotoModel::p_photoAlgorithmName
private

Unique name of the photometric model.

Definition at line 232 of file PhotoModel.h.

Referenced by AlgorithmName(), and PhotoModel().

◆ p_photoB0

double Isis::PhotoModel::p_photoB0
protected

Definition at line 216 of file PhotoModel.h.

◆ p_photoB0save

double Isis::PhotoModel::p_photoB0save
protected

Definition at line 217 of file PhotoModel.h.

◆ p_photoBh

double Isis::PhotoModel::p_photoBh
protected

Definition at line 205 of file PhotoModel.h.

◆ p_photoBSpline

NumericalApproximation Isis::PhotoModel::p_photoBSpline
protected

Definition at line 228 of file PhotoModel.h.

◆ p_photoCh

double Isis::PhotoModel::p_photoCh
protected

Definition at line 206 of file PhotoModel.h.

◆ p_photoCot2t

double Isis::PhotoModel::p_photoCot2t
protected

Definition at line 208 of file PhotoModel.h.

◆ p_photoCott

double Isis::PhotoModel::p_photoCott
protected

Definition at line 207 of file PhotoModel.h.

◆ p_photoHg1

double Isis::PhotoModel::p_photoHg1
protected

Definition at line 203 of file PhotoModel.h.

◆ p_photoHg2

double Isis::PhotoModel::p_photoHg2
protected

Definition at line 204 of file PhotoModel.h.

◆ p_photoHh

double Isis::PhotoModel::p_photoHh
protected

Definition at line 215 of file PhotoModel.h.

◆ p_photoK

double Isis::PhotoModel::p_photoK
protected

Definition at line 202 of file PhotoModel.h.

◆ p_photoKList

std::vector<double> Isis::PhotoModel::p_photoKList
protected

Definition at line 222 of file PhotoModel.h.

◆ p_photoKSpline

NumericalApproximation Isis::PhotoModel::p_photoKSpline
protected

Definition at line 226 of file PhotoModel.h.

◆ p_photoL

double Isis::PhotoModel::p_photoL
protected

Definition at line 201 of file PhotoModel.h.

◆ p_photoLList

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

Definition at line 223 of file PhotoModel.h.

◆ p_photoLSpline

NumericalApproximation Isis::PhotoModel::p_photoLSpline
protected

Definition at line 227 of file PhotoModel.h.

◆ p_photoOsr

double Isis::PhotoModel::p_photoOsr
protected

Definition at line 211 of file PhotoModel.h.

◆ p_photoPhaseAngleCount

int Isis::PhotoModel::p_photoPhaseAngleCount
protected

Definition at line 225 of file PhotoModel.h.

◆ p_photoPhaseCurveList

std::vector<double> Isis::PhotoModel::p_photoPhaseCurveList
protected

Definition at line 224 of file PhotoModel.h.

◆ p_photoPhaseList

std::vector<double> Isis::PhotoModel::p_photoPhaseList
protected

Definition at line 221 of file PhotoModel.h.

◆ p_photoSr

double Isis::PhotoModel::p_photoSr
protected

Definition at line 210 of file PhotoModel.h.

◆ p_photoTant

double Isis::PhotoModel::p_photoTant
protected

Definition at line 209 of file PhotoModel.h.

◆ p_photoTheta

double Isis::PhotoModel::p_photoTheta
protected

Definition at line 218 of file PhotoModel.h.

◆ p_photoThetaold

double Isis::PhotoModel::p_photoThetaold
protected

Definition at line 219 of file PhotoModel.h.

◆ p_photoWh

double Isis::PhotoModel::p_photoWh
protected

Definition at line 214 of file PhotoModel.h.

◆ p_standardConditions

bool Isis::PhotoModel::p_standardConditions
private

Indicates whether standard conditions are used.

Definition at line 234 of file PhotoModel.h.

Referenced by PhotoModel(), SetStandardConditions(), and StandardConditions().


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