Isis Developer Reference
Isis::PhotometricFunction Class Referenceabstract

An abstract implementation of the photometric function. More...

#include <PhotometricFunction.h>

Collaboration diagram for Isis::PhotometricFunction:
Collaboration graph

Public Member Functions

 PhotometricFunction (PvlObject &pvl, Cube &cube, bool useCamera)
 Construct Photometric function from Pvl and Cube file.
 
virtual ~PhotometricFunction ()
 Destructor.
 
void setCamera (Camera *cam)
 Set the camera used to compute photometric angles.
 
virtual double compute (const double &line, const double &sample, int band=1, bool useDem=false)
 Computes Photometric function from cube attributes.
 
virtual double photometry (double i, double e, double g, int band=1) const =0
 
virtual void report (PvlContainer &pvl)=0
 
virtual void setMinimumIncidenceAngle (double angle)
 Mutator function to set minimum incidence angle.
 
virtual void setMaximumIncidenceAngle (double angle)
 Mutator function to set maximum incidence angle.
 
virtual void setMinimumEmissionAngle (double angle)
 Mutator function to set minimum emission angle.
 
virtual void setMaximumEmissionAngle (double angle)
 Mutator function to set maximum emission angle.
 
virtual void setMinimumPhaseAngle (double angle)
 Mutator function to set minimum phase angle.
 
virtual void setMaximumPhaseAngle (double angle)
 Mutator function to set maximum phase angle.
 
virtual double minimumIncidenceAngle ()
 Accessor method to access minimum incidence angle.
 
virtual double maximumIncidenceAngle ()
 Accessor method to access maximum incidence angle.
 
virtual double minimumEmissionAngle ()
 Accessor method to access minimum emission angle.
 
virtual double maximumEmissionAngle ()
 Accessor method to access maximum emission angle.
 
virtual double minimumPhaseAngle ()
 Accessor method to access minimum phase angle.
 
virtual double maximumPhaseAngle ()
 Accessor method to access maximum phase angle.
 

Static Public Member Functions

static QString algorithmName (const PvlObject &pvl)
 Finds the name of the algorithm defined in a PVL object.
 

Protected Member Functions

template<typename T >
ConfKey (const DbProfile &conf, const QString &keyname, const T &defval, int index=0) const
 Helper template to initialize parameters.
 

Protected Attributes

Cameram_camera
 
double m_iRef
 
double m_eRef
 
double m_gRef
 
double m_minimumIncidenceAngle
 
double m_maximumIncidenceAngle
 
double m_minimumEmissionAngle
 
double m_maximumEmissionAngle
 
double m_minimumPhaseAngle
 
double m_maximumPhaseAngle
 
DbProfile m_normProf
 

Detailed Description

An abstract implementation of the photometric function.

This abstract class implements the a generic Photometric function. Child classes are expected to implement the photometry and report methods.

Author
2016-08-15 Victor Silva

Constructor & Destructor Documentation

◆ PhotometricFunction()

Isis::PhotometricFunction::PhotometricFunction ( PvlObject & pvl,
Cube & cube,
bool useCamera )

Construct Photometric function from Pvl and Cube file.

Parameters
pvlphotometric parameter files
cubeInput cube file
Author
2016-08-15 Victor Silva

References Isis::Cube::camera(), and m_camera.

◆ ~PhotometricFunction()

Isis::PhotometricFunction::~PhotometricFunction ( )
virtual

Destructor.

Member Function Documentation

◆ algorithmName()

QString Isis::PhotometricFunction::algorithmName ( const PvlObject & pvl)
static

Finds the name of the algorithm defined in a PVL object.

Parameters
pvlThe pvl to find the algorithm name in.
Returns
QString The algorithm name from the PVL object.

References Isis::PvlObject::Traverse.

◆ compute()

double Isis::PhotometricFunction::compute ( const double & line,
const double & sample,
int band = 1,
bool useDem = false )
virtual

Computes Photometric function from cube attributes.

Parameters
lineline number in cube
samplesample number in cube
bandband number in cube
useDemboolean to use provided Dem
Returns
double photometry calculations
Author
2016-08-15 Victor Silva

References Isis::Camera::Band(), Isis::Angle::degrees(), Isis::Sensor::EmissionAngle(), Isis::Sensor::IncidenceAngle(), Isis::Camera::LocalPhotometricAngles(), m_camera, maximumEmissionAngle(), maximumIncidenceAngle(), maximumPhaseAngle(), minimumEmissionAngle(), minimumIncidenceAngle(), minimumPhaseAngle(), Isis::Null, Isis::Sensor::PhaseAngle(), photometry(), Isis::Camera::SetBand(), and Isis::Camera::SetImage().

◆ ConfKey()

template<typename T >
T Isis::PhotometricFunction::ConfKey ( const DbProfile & conf,
const QString & keyname,
const T & defval,
int index = 0 ) const
inlineprotected

Helper template to initialize parameters.

This template will check the existance of a keyword and extract the value if it exists to the passed parameter (type). If it doesn't exist, the default values are returned.

Parameters
confParameter profile container
keynameName of keyword to get a value from
defvalDefault value it keyword/value doesn't exist
indexOptional index of the value for keyword arrays
Returns
T The value of the keyword or the default value if the keyword is not found.

◆ maximumEmissionAngle()

double Isis::PhotometricFunction::maximumEmissionAngle ( )
virtual

Accessor method to access maximum emission angle.

Returns
double The maximum emission angle
Author
2016-08-15 Victor Silva

References m_maximumEmissionAngle.

Referenced by compute().

◆ maximumIncidenceAngle()

double Isis::PhotometricFunction::maximumIncidenceAngle ( )
virtual

Accessor method to access maximum incidence angle.

Returns
double The maximum incidence angle
Author
2016-08-15 Victor Silva

References m_maximumIncidenceAngle.

Referenced by compute().

◆ maximumPhaseAngle()

double Isis::PhotometricFunction::maximumPhaseAngle ( )
virtual

Accessor method to access maximum phase angle.

Returns
double The maximum phase angle
Author
2016-08-15 Victor Silva

References m_maximumPhaseAngle.

Referenced by compute().

◆ minimumEmissionAngle()

double Isis::PhotometricFunction::minimumEmissionAngle ( )
virtual

Accessor method to access minimum emission angle.

Returns
double The minimum emission angle
Author
2016-08-15 Victor Silva

References m_minimumEmissionAngle.

Referenced by compute().

◆ minimumIncidenceAngle()

double Isis::PhotometricFunction::minimumIncidenceAngle ( )
virtual

Accessor method to access minimum incidence angle.

Returns
double The minimum incidence angle
Author
2016-08-15 Victor Silva

References m_minimumIncidenceAngle.

Referenced by compute().

◆ minimumPhaseAngle()

double Isis::PhotometricFunction::minimumPhaseAngle ( )
virtual

Accessor method to access minimum phase angle.

Returns
double The minimum phase angle
Author
2016-08-15 Victor Silva

References m_minimumPhaseAngle.

Referenced by compute().

◆ photometry()

virtual double Isis::PhotometricFunction::photometry ( double i,
double e,
double g,
int band = 1 ) const
pure virtual

Referenced by compute().

◆ report()

virtual void Isis::PhotometricFunction::report ( PvlContainer & pvl)
pure virtual

◆ setCamera()

void Isis::PhotometricFunction::setCamera ( Camera * cam)

Set the camera used to compute photometric angles.

Parameters
camA pointer to the camera to be used

References m_camera.

◆ setMaximumEmissionAngle()

void Isis::PhotometricFunction::setMaximumEmissionAngle ( double angle)
virtual

Mutator function to set maximum emission angle.

Parameters
doubleThe new maximum emission angle
Author
2016-08-15 Victor Silva

References m_maximumEmissionAngle.

◆ setMaximumIncidenceAngle()

void Isis::PhotometricFunction::setMaximumIncidenceAngle ( double angle)
virtual

Mutator function to set maximum incidence angle.

Parameters
doublethe new maximum incidence angle
Author
2016-08-15 Victor Silva

References m_maximumIncidenceAngle.

◆ setMaximumPhaseAngle()

void Isis::PhotometricFunction::setMaximumPhaseAngle ( double angle)
virtual

Mutator function to set maximum phase angle.

Parameters
doubleThe new maximum phase angle
Author
2016-08-15 Victor Silva

References m_maximumPhaseAngle.

◆ setMinimumEmissionAngle()

void Isis::PhotometricFunction::setMinimumEmissionAngle ( double angle)
virtual

Mutator function to set minimum emission angle.

Parameters
doubleThe new minimum emission angle
Author
2016-08-15 Victor Silva

References m_minimumEmissionAngle.

◆ setMinimumIncidenceAngle()

void Isis::PhotometricFunction::setMinimumIncidenceAngle ( double angle)
virtual

Mutator function to set minimum incidence angle.

Parameters
doubleThe new minimum incidence angle
Author
2016-08-15 Victor Silva

References m_minimumIncidenceAngle.

◆ setMinimumPhaseAngle()

void Isis::PhotometricFunction::setMinimumPhaseAngle ( double angle)
virtual

Mutator function to set minimum phase angle.

Parameters
doubleThe new minimum phase angle
Author
2016-08-15 Victor Silva

References m_minimumPhaseAngle.

Member Data Documentation

◆ m_camera

Camera* Isis::PhotometricFunction::m_camera
protected

◆ m_eRef

double Isis::PhotometricFunction::m_eRef
protected

◆ m_gRef

double Isis::PhotometricFunction::m_gRef
protected

◆ m_iRef

double Isis::PhotometricFunction::m_iRef
protected

◆ m_maximumEmissionAngle

double Isis::PhotometricFunction::m_maximumEmissionAngle
protected

◆ m_maximumIncidenceAngle

double Isis::PhotometricFunction::m_maximumIncidenceAngle
protected

◆ m_maximumPhaseAngle

double Isis::PhotometricFunction::m_maximumPhaseAngle
protected

◆ m_minimumEmissionAngle

double Isis::PhotometricFunction::m_minimumEmissionAngle
protected

◆ m_minimumIncidenceAngle

double Isis::PhotometricFunction::m_minimumIncidenceAngle
protected

◆ m_minimumPhaseAngle

double Isis::PhotometricFunction::m_minimumPhaseAngle
protected

◆ m_normProf

DbProfile Isis::PhotometricFunction::m_normProf
protected

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