16#include "PhotometricFunction.h"
65 return pvl.findObject(
"PhotometricModel").findGroup(
"Algorithm",
Pvl::Traverse).findKeyword(
"Name")[0];
87 if (m_camera->
Band() != band) {
91 if (!m_camera->
SetImage(sample, line)) {
101 Angle phase, incidence, emission;
106 i = incidence.degrees();
116 return photometry(i, e, g, band);
132 m_minimumIncidenceAngle = angle;
148 m_maximumIncidenceAngle = angle;
164 m_minimumEmissionAngle = angle;
180 m_maximumEmissionAngle = angle;
196 m_minimumPhaseAngle = angle;
212 m_maximumPhaseAngle = angle;
228 return m_minimumIncidenceAngle;
244 return m_maximumIncidenceAngle;
260 return m_minimumEmissionAngle;
276 return m_maximumEmissionAngle;
292 return m_minimumPhaseAngle;
308 return m_maximumPhaseAngle;
Defines an angle and provides unit conversions.
double degrees() const
Get the angle in units of Degrees.
virtual bool SetImage(const double sample, const double line)
Sets the sample/line values of the image to get the lat/lon values.
virtual int Band() const
Returns the current band.
void LocalPhotometricAngles(Angle &phase, Angle &incidence, Angle &emission, bool &success)
Calculates LOCAL photometric angles using the DEM (not ellipsoid).
virtual void SetBand(const int band)
Virtual method that sets the band number.
IO Handler for Isis Cubes.
Camera * camera()
Return a camera associated with the cube.
PhotometricFunction(PvlObject &pvl, Cube &cube, bool useCamera)
Construct Photometric function from Pvl and Cube file.
virtual void setMaximumIncidenceAngle(double angle)
Mutator function to set maximum incidence angle.
virtual void setMaximumEmissionAngle(double angle)
Mutator function to set maximum emission angle.
virtual double compute(const double &line, const double &sample, int band=1, bool useDem=false)
Computes Photometric function from cube attributes.
virtual ~PhotometricFunction()
Destructor.
virtual void setMinimumPhaseAngle(double angle)
Mutator function to set minimum phase angle.
virtual double maximumEmissionAngle()
Accessor method to access maximum emission angle.
static QString algorithmName(const PvlObject &pvl)
Finds the name of the algorithm defined in a PVL object.
virtual double maximumPhaseAngle()
Accessor method to access maximum phase angle.
virtual double minimumIncidenceAngle()
Accessor method to access minimum incidence angle.
virtual double minimumEmissionAngle()
Accessor method to access minimum emission angle.
virtual void setMaximumPhaseAngle(double angle)
Mutator function to set maximum phase angle.
virtual void setMinimumEmissionAngle(double angle)
Mutator function to set minimum emission angle.
virtual void setMinimumIncidenceAngle(double angle)
Mutator function to set minimum incidence angle.
virtual double minimumPhaseAngle()
Accessor method to access minimum phase angle.
virtual double maximumIncidenceAngle()
Accessor method to access maximum incidence angle.
void setCamera(Camera *cam)
Set the camera used to compute photometric angles.
Contains Pvl Groups and Pvl Objects.
@ Traverse
Search child objects.
virtual double PhaseAngle() const
Returns the phase angle in degrees.
virtual double IncidenceAngle() const
Returns the incidence angle in degrees.
virtual double EmissionAngle() const
Returns the emission angle in degrees.
This is free and unencumbered software released into the public domain.
const double Null
Value for an Isis Null pixel.
Namespace for the standard library.