31 init(cam, sinc, linc, filename);
50 init(cam, sinc, linc,
"");
70 init(cam, sinc, linc, filename);
89 m_filename = filename;
113 int eband = cam->
Bands();
118 int pTotal = eband * ((cam->
Lines() - 2) / linc + 2);
123 for (
int band = 1; band <= eband; band++) {
125 for (
int line = 1; line < (int)cam->
Lines(); line = line + linc) {
126 for (
int sample = 1; sample < cam->
Samples(); sample = sample + sinc) {
138 int line = cam->
Lines();
139 for (
int sample = 1; sample < cam->
Samples(); sample = sample + sinc) {
276 double value, QString unit=
"")
const {
365 if (m_filename !=
"") pUser +=
PvlKeyword(
"Filename", m_filename);
381 PvlGroup pObliqueSampleRes(
"ObliqueSampleResolution");
388 pObliqueSampleRes +=
constructKeyword(
"ObliqueSampleResolutionStandardDeviation",
391 PvlGroup pObliqueLineRes(
"ObliqueLineResolution");
398 pObliqueLineRes +=
constructKeyword(
"ObliqueLineResolutionStandardDeviation",
401 PvlGroup pObliqueResolution(
"ObliqueResolution");
408 pObliqueResolution +=
constructKeyword(
"ObliqueResolutionStandardDeviation",
412 PvlGroup pSampleRes(
"SampleResolution");
422 PvlGroup pLineRes(
"LineResolution");
442 PvlGroup pAspectRatio(
"AspectRatio");
455 PvlGroup pEmission(
"EmissionAngle");
462 PvlGroup pIncidence(
"IncidenceAngle");
479 PvlGroup pLocalRadius(
"LocalRadius");
486 PvlGroup pNorthAzimuth(
"NorthAzimuth");
495 returnPvl.addGroup(pUser);
496 returnPvl.addGroup(pLat);
497 returnPvl.addGroup(pLon);
498 returnPvl.addGroup(pSampleRes);
499 returnPvl.addGroup(pLineRes);
500 returnPvl.addGroup(pResolution);
502 returnPvl.addGroup(pObliqueSampleRes);
503 returnPvl.addGroup(pObliqueLineRes);
504 returnPvl.addGroup(pObliqueResolution);
506 returnPvl.addGroup(pAspectRatio);
507 returnPvl.addGroup(pPhase);
508 returnPvl.addGroup(pEmission);
509 returnPvl.addGroup(pIncidence);
510 returnPvl.addGroup(pTime);
511 returnPvl.addGroup(pLocalRadius);
512 returnPvl.addGroup(pNorthAzimuth);
Statistics * m_emissionStat
Emission angle statistics.
Pvl toPvl() const
Constructs a Pvl object from the values in the various statistics objects.
double ObliqueLineResolution()
Returns the oblique line resolution at the current position in meters.
Statistics * m_latStat
Universal latitude statistics.
Statistics * m_obliqueResStat
Oblique pixel resolution statistics.
void SetMaximumSteps(const int steps)
This sets the maximum number of steps in the process.
Camera * camera()
Return a camera associated with the cube.
double Minimum() const
Returns the absolute minimum double found in all data passed through the AddData method.
Statistics * m_phaseStat
Phase angle statistics.
double UniversalLatitude() const
Returns the planetocentric latitude, in degrees, at the surface intersection point in the body fixed ...
Statistics * m_localSolarTimeStat
Local solar time statistics.
Statistics * m_lonStat
Universal longitude statistics.
int m_linc
Line increment for composing statistics.
double ObliquePixelResolution()
Returns the oblique pixel resolution at the current position in meters/pixel.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
double ObliqueSampleResolution()
Returns the oblique sample resolution at the current position in m.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
Statistics * m_northAzimuthStat
North azimuth statistics.
int Bands() const
Returns the number of bands in the image.
void CheckStatus()
Checks and updates the status.
double StandardDeviation() const
Computes and returns the standard deviation.
void setTerminator(const QString &term)
Sets the terminator used to signify the end of the PVL informationDefaults to "END".
double UniversalLongitude() const
Returns the positive east, 0-360 domain longitude, in degrees, at the surface intersection point in t...
Statistics * m_localRaduisStat
Local radius statistics (in meters).
bool SetImage(const double sample, const double line)
Sets the sample/line values of the image to get the lat/lon values.
This class is used to accumulate statistics on double arrays.
Program progress reporter.
double meters() const
Get the distance in meters.
void addStats(Camera *cam, int &sample, int &line)
Add statistics data to Statistics objects if the Camera position given by the provided line and sampl...
int m_sinc
Sample increment for composing statistics.
Statistics * m_sampleResStat
Sample resolution statistics.
Statistics * m_resStat
Pixel resolution statistics.
virtual ~CameraStatistics()
Destroy this instance, deletes all the Statistics objects.
int Samples() const
Returns the number of samples in the image.
double EmissionAngle() const
Returns the emission angle in degrees.
Contains multiple PvlContainers.
double Average() const
Computes and returns the average.
CameraStatistics(QString filename, int sinc, int linc)
Constructs the Camera Statistics object from a Cube filename.
double PhaseAngle() const
Returns the phase angle in degrees.
A single keyword-value pair.
Statistics * m_obliqueLineResStat
Oblique line resolution statistics.
double Maximum() const
Returns the absolute maximum double found in all data passed through the AddData method.
double NorthAzimuth()
Returns the North Azimuth.
bool IsSpecial(const double d)
Returns if the input pixel is special.
void open(const QString &cfile, QString access="r")
This method will open an isis cube for reading or reading/writing.
PvlKeyword constructKeyword(QString keyname, double value, QString unit) const
Takes a name, value, and optionally units and constructs a PVL Keyword.
bool HasSurfaceIntersection() const
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection wi...
void init(Camera *cam, int sinc, int linc, QString filename)
FileName of the Cube the Camera was derived from.
Container for cube-like labels.
Statistics * m_obliqueSampleResStat
Oblique sample resolution statistics.
Statistics * m_aspectRatioStat
Aspect ratio statistics.
Distance LocalRadius() const
Returns the local radius at the intersection point.
virtual bool IsBandIndependent()
Virtual method that checks if the band is independent.
double PixelResolution()
Returns the pixel resolution at the current position in meters/pixel.
double LineResolution()
Returns the line resolution at the current position in meters.
Statistics * m_incidenceStat
Incidence angle statistics.
double LocalSolarTime()
Return the local solar time in hours.
void AddData(const double *data, const unsigned int count)
Add an array of doubles to the accumulators and counters.
double IncidenceAngle() const
Returns the incidence angle in degrees.
double SampleResolution()
Returns the sample resolution at the current position in meters.
virtual void SetBand(const int band)
Virtual method that sets the band number.
Statistics * m_lineResStat
Line resolution statistics.
int Lines() const
Returns the number of lines in the image.
IO Handler for Isis Cubes.