31 init(cam, sinc, linc, filename);
50 init(cam, sinc, linc,
"");
70 init(cam, sinc, linc, 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 {
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);
double meters() const
Get the distance in meters.
Statistics * m_emissionStat
Emission angle statistics.
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.
double StandardDeviation() const
Computes and returns the standard deviation.
double Minimum() const
Returns the absolute minimum double found in all data passed through the AddData method.
double UniversalLatitude() const
Returns the planetocentric latitude, in degrees, at the surface intersection point in the body fixed ...
Camera * camera()
Return a camera associated with the cube.
Statistics * m_phaseStat
Phase angle statistics.
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.
void CheckStatus()
Checks and updates the status.
Distance LocalRadius() const
Returns the local radius at the intersection point.
void setTerminator(const QString &term)
Sets the terminator used to signify the end of the PVL informationDefaults to "END".
double Maximum() const
Returns the absolute maximum double found in all data passed through the AddData method.
double EmissionAngle() const
Returns the emission angle in degrees.
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.
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.
Pvl toPvl() const
Constructs a Pvl object from the values in the various statistics objects.
Statistics * m_resStat
Pixel resolution statistics.
virtual ~CameraStatistics()
Destroy this instance, deletes all the Statistics objects.
Contains multiple PvlContainers.
CameraStatistics(QString filename, int sinc, int linc)
Constructs the Camera Statistics object from a Cube filename.
A single keyword-value pair.
Statistics * m_obliqueLineResStat
Oblique line resolution statistics.
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.
QString m_filename
FileName of the Cube the Camera was derived from.
PvlKeyword constructKeyword(QString keyname, double value, QString unit) const
Takes a name, value, and optionally units and constructs a PVL Keyword.
void init(Camera *cam, int sinc, int linc, QString filename)
Initializes this collection of statistics by incrementing over sample/line positions in the Camera an...
Container for cube-like labels.
double UniversalLongitude() const
Returns the positive east, 0-360 domain longitude, in degrees, at the surface intersection point in t...
Statistics * m_obliqueSampleResStat
Oblique sample resolution statistics.
Statistics * m_aspectRatioStat
Aspect ratio statistics.
double PhaseAngle() const
Returns the phase angle in degrees.
virtual bool IsBandIndependent()
Virtual method that checks if the band is independent.
int Bands() const
Returns the number of bands in the image.
int Lines() const
Returns the number of lines in the image.
int Samples() const
Returns the number of samples in the image.
double PixelResolution()
Returns the pixel resolution at the current position in meters/pixel.
Namespace for ISIS/Bullet specific routines.
double LineResolution()
Returns the line resolution at the current position in meters.
double IncidenceAngle() const
Returns the incidence angle in degrees.
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 Average() const
Computes and returns the average.
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.
bool HasSurfaceIntersection() const
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection wi...
IO Handler for Isis Cubes.