USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::Hapke Class Reference
[Radiometric And Photometric Correction]

Hapke-Henyey-Greenstein photometric model. More...

#include <Hapke.h>

Inherits Isis::PhotoModel.

List of all members.

Public Member Functions

 Hapke (Pvl &pvl)
virtual ~Hapke ()
void SetPhotoHg1 (const double hg1)
 Set the Hapke Henyey Greenstein coefficient for the single particle phase function.
void SetPhotoHg2 (const double hg2)
 Return photometric Hg1 value.
void SetPhotoBh (const double bh)
 Return photometric Hg2 value.
void SetPhotoCh (const double ch)
 Return photometric Bh value.
void SetPhotoWh (const double wh)
 Return photometric Ch value.
void SetPhotoHh (const double hh)
 Return photometric Wh value.
void SetPhotoB0 (const double b0)
 Return photometric Hh value.
void SetPhotoTheta (const double theta)
 Return photometric B0 value.
void SetOldTheta (double theta)
 Return photometric Theta value.
void SetPhoto0B0Standard (const QString &b0standard)
 Determine if the Hapke opposition surge component is initialized to zero during the SetStandardConditions phase.
void SetStandardConditions (bool standard)
 Return photometric B0 standardization value.
virtual double PhotoModelAlgorithm (double phase, double incidence, double emission)
QString AlgorithmName () const
 Return algorithm name found in Pvl file from constructor.
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.
double PhotoHg1 () const
 Return photometric Hg1 value.
double PhotoHg2 () const
 Return photometric Hg2 value.
double PhotoBh () const
 Return photometric Bh value.
double PhotoCh () const
 Return photometric Ch value.
double PhotoWh () const
 Return photometric Wh value.
double PhotoHh () const
 Return photometric Hh value.
double PhotoB0 () const
 Return photometric B0 value.
double PhotoTheta () const
 Return photometric Theta value.
virtual void SetPhoto0B0Standard (const std::string &b0standard)
std::string 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 std::string phasestrlist)
virtual void SetPhotoKList (const std::string kstrlist)
virtual void SetPhotoLList (const std::string kstrlist)
virtual void SetPhotoPhaseCurveList (const std::string phasecurvestrlist)
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
std::string 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

Hapke-Henyey-Greenstein photometric model.

Derive model albedo using complete Hapke model with Henyey-Greenstein single-particle phase function whose coefficients are hg1 and hg2, plus single scattering albedo wh, opposition surge parameters hh and b0, and macroscopic roughness theta.

Author:
1989-08-02 Unknown

Constructor & Destructor Documentation

Isis::Hapke::Hapke ( Pvl pvl  ) 
virtual Isis::Hapke::~Hapke (  )  [inline, virtual]

Member Function Documentation

QString Isis::PhotoModel::AlgorithmName (  )  const [inline, inherited]

Return algorithm name found in Pvl file from constructor.

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

double Isis::PhotoModel::CalcSurfAlbedo ( double  pha,
double  inc,
double  ema 
) [inherited]
double Isis::PhotoModel::Hfunc ( double  u,
double  gamma 
) [inline, inherited]

Hapke's approximation to Chandra's H function.

Referenced by PhotoModelAlgorithm().

std::string Isis::PhotoModel::Photo0B0Standard (  )  const [inline, inherited]

Return photometric B0 standardization value.

References Isis::PhotoModel::p_photo0B0Standard.

double Isis::PhotoModel::PhotoB0 (  )  const [inline, inherited]

Return photometric B0 value.

References Isis::PhotoModel::p_photoB0.

double Isis::PhotoModel::PhotoBh (  )  const [inline, inherited]

Return photometric Bh value.

References Isis::PhotoModel::p_photoBh.

double Isis::PhotoModel::PhotoCh (  )  const [inline, inherited]

Return photometric Ch value.

References Isis::PhotoModel::p_photoCh.

double Isis::PhotoModel::PhotoHg1 (  )  const [inline, inherited]

Return photometric Hg1 value.

References Isis::PhotoModel::p_photoHg1.

double Isis::PhotoModel::PhotoHg2 (  )  const [inline, inherited]

Return photometric Hg2 value.

References Isis::PhotoModel::p_photoHg2.

double Isis::PhotoModel::PhotoHh (  )  const [inline, inherited]

Return photometric Hh value.

References Isis::PhotoModel::p_photoHh.

double Isis::PhotoModel::PhotoK (  )  const [inline, inherited]

Return photometric K value.

References Isis::PhotoModel::p_photoK.

std::vector<double> Isis::PhotoModel::PhotoKList (  )  const [inline, inherited]

Return photometric k value list.

References Isis::PhotoModel::p_photoKList.

double Isis::PhotoModel::PhotoL (  )  const [inline, inherited]

Return photometric L value.

References Isis::PhotoModel::p_photoL.

std::vector<double> Isis::PhotoModel::PhotoLList (  )  const [inline, inherited]

Return photometric l value list.

References Isis::PhotoModel::p_photoLList.

double Isis::Hapke::PhotoModelAlgorithm ( double  phase,
double  incidence,
double  emission 
) [virtual]
std::vector<double> Isis::PhotoModel::PhotoPhaseCurveList (  )  const [inline, inherited]

Return photometric phase curve value list.

References Isis::PhotoModel::p_photoPhaseCurveList.

std::vector<double> Isis::PhotoModel::PhotoPhaseList (  )  const [inline, inherited]

Return photometric phase angle list.

References Isis::PhotoModel::p_photoPhaseList.

double Isis::PhotoModel::PhotoTheta (  )  const [inline, inherited]

Return photometric Theta value.

References Isis::PhotoModel::p_photoTheta.

double Isis::PhotoModel::PhotoWh (  )  const [inline, inherited]

Return photometric Wh value.

References Isis::PhotoModel::p_photoWh.

double Isis::PhotoModel::PhtAcos ( double  cosang  )  [static, inherited]

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:
cosang input 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().

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

Obtain topographic derivative of an arbitrary photometric function.

Parameters:
phase Input phase angle
incidence Input incidence angle
emission Input emission angle
Returns:
double Gradient

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

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

void Isis::Hapke::SetOldTheta ( double  theta  )  [inline, virtual]

Return photometric Theta value.

Reimplemented from Isis::PhotoModel.

References Isis::PhotoModel::p_photoThetaold.

Referenced by PhotoModelAlgorithm().

virtual void Isis::PhotoModel::SetPhoto0B0Standard ( const std::string &  b0standard  )  [inline, virtual, inherited]
void Isis::Hapke::SetPhoto0B0Standard ( const QString &  b0standard  ) 

Determine if the Hapke opposition surge component is initialized to zero during the SetStandardConditions phase.

This parameter is limited to values that are true or false.

Parameters:
b0standard Hapke opposition surge initialization, default is true

References _FILEINFO_, Isis::PhotoModel::p_photo0B0Standard, Isis::IString::UpCase(), and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoB0 ( const double  b0  )  [virtual]

Return photometric Hh value.

Set the Hapke opposition surge component.

This is one of two opposition surge components needed for the Hapke model. This parameter is limited to values that are >=0.

Parameters:
b0 Hapke opposition surge component, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoB0, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoBh ( const double  bh  )  [virtual]

Return photometric Hg2 value.

Set the Hapke Legendre coefficient for the single particle phase function.

This is one of two coefficients needed for the single particle phase function. This parameter is limited to values that are >=-1 and <=1.

Parameters:
bh Hapke Legendre coefficient, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoBh, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoCh ( const double  ch  )  [virtual]

Return photometric Bh value.

Set the Hapke Legendre coefficient for the single particle phase function.

This is one of two coefficients needed for the single particle phase function. This parameter is limited to values that are >=-1 and <=1.

Parameters:
ch Hapke Legendre coefficient, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoCh, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoHg1 ( const double  hg1  )  [virtual]

Set the Hapke Henyey Greenstein coefficient for the single particle phase function.

This is one of two coefficients needed for the single particle phase function. This parameter is limited to values that are >-1 and <1.

Parameters:
hg1 Hapke Henyey Greenstein coefficient, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoHg1, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoHg2 ( const double  hg2  )  [virtual]

Return photometric Hg1 value.

Set the Hapke Henyey Greenstein coefficient for the single particle phase function.

This is one of two coefficients needed for the single particle phase function. This parameter is limited to values that are >=0 and <=1.

Parameters:
hg2 Hapke Henyey Greenstein coefficient, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoHg2, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoHh ( const double  hh  )  [virtual]

Return photometric Wh value.

Set the Hapke opposition surge component.

This is one of two opposition surge components needed for the Hapke model. This parameter is limited to values that are >=0.

Parameters:
hh Hapke opposition surge component, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoHh, and Isis::IException::User.

Referenced by Hapke().

virtual void Isis::PhotoModel::SetPhotoK ( const double  k  )  [inline, virtual, inherited]

Reimplemented in Isis::Minnaert.

virtual void Isis::PhotoModel::SetPhotoKList ( const std::string  kstrlist  )  [inline, virtual, inherited]
virtual void Isis::PhotoModel::SetPhotoL ( const double  l  )  [inline, virtual, inherited]

Reimplemented in Isis::LunarLambert.

virtual void Isis::PhotoModel::SetPhotoLList ( const std::string  kstrlist  )  [inline, virtual, inherited]
virtual void Isis::PhotoModel::SetPhotoPhaseCurveList ( const std::string  phasecurvestrlist  )  [inline, virtual, inherited]
virtual void Isis::PhotoModel::SetPhotoPhaseList ( const std::string  phasestrlist  )  [inline, virtual, inherited]
void Isis::Hapke::SetPhotoTheta ( const double  theta  )  [virtual]

Return photometric B0 value.

Set the Hapke macroscopic roughness component.

This parameter is limited to values that are >=0 and <=90.

Parameters:
theta Hapke macroscopic roughness component, default is 0.0

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoTheta, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetPhotoWh ( const double  wh  )  [virtual]

Return photometric Ch value.

Set the Hapke single scattering albedo component.

This parameter is limited to values that are >0 and <=1.

Parameters:
wh Hapke single scattering albedo component, default is 0.5

Reimplemented from Isis::PhotoModel.

References _FILEINFO_, Isis::PhotoModel::p_photoWh, and Isis::IException::User.

Referenced by Hapke().

void Isis::Hapke::SetStandardConditions ( bool  standard  )  [virtual]

Return photometric B0 standardization value.

Hapke's approximation to Chandra's H function

Reimplemented from Isis::PhotoModel.

References Isis::PhotoModel::p_photo0B0Standard, Isis::PhotoModel::p_photoB0, and Isis::PhotoModel::p_photoB0save.

bool Isis::PhotoModel::StandardConditions (  )  const [inline, inherited]

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

QString Isis::PhotoModel::p_algName [protected, inherited]

Referenced by Hapke(), and PhotoModelAlgorithm().

std::string Isis::PhotoModel::p_photo0B0Standard [protected, inherited]
double Isis::PhotoModel::p_photoB0 [protected, inherited]
double Isis::PhotoModel::p_photoB0save [protected, inherited]

Referenced by Hapke(), and SetStandardConditions().

double Isis::PhotoModel::p_photoBh [protected, inherited]
double Isis::PhotoModel::p_photoCh [protected, inherited]
double Isis::PhotoModel::p_photoCot2t [protected, inherited]

Referenced by PhotoModelAlgorithm().

double Isis::PhotoModel::p_photoCott [protected, inherited]

Referenced by PhotoModelAlgorithm().

double Isis::PhotoModel::p_photoHg1 [protected, inherited]
double Isis::PhotoModel::p_photoHg2 [protected, inherited]
double Isis::PhotoModel::p_photoHh [protected, inherited]
double Isis::PhotoModel::p_photoK [protected, inherited]
std::vector<double> Isis::PhotoModel::p_photoKList [protected, inherited]
double Isis::PhotoModel::p_photoL [protected, inherited]
std::vector<double> Isis::PhotoModel::p_photoLList [protected, inherited]
double Isis::PhotoModel::p_photoOsr [protected, inherited]

Referenced by PhotoModelAlgorithm().

int Isis::PhotoModel::p_photoPhaseAngleCount [protected, inherited]
std::vector<double> Isis::PhotoModel::p_photoPhaseCurveList [protected, inherited]
std::vector<double> Isis::PhotoModel::p_photoPhaseList [protected, inherited]
double Isis::PhotoModel::p_photoSr [protected, inherited]

Referenced by PhotoModelAlgorithm().

double Isis::PhotoModel::p_photoTant [protected, inherited]

Referenced by PhotoModelAlgorithm().

double Isis::PhotoModel::p_photoTheta [protected, inherited]
double Isis::PhotoModel::p_photoThetaold [protected, inherited]
double Isis::PhotoModel::p_photoWh [protected, inherited]

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