Isis Developer Reference
Histogram.h
Go to the documentation of this file.
1#ifndef Histogram_h
2#define Histogram_h
9#include "Cube.h"
10#include "Constants.h"
11#include "IException.h"
12#include "Progress.h"
13#include "SpecialPixel.h"
14#include "Statistics.h"
15
16namespace Isis {
17 class ControlNet;
18 class ControlMeasure;
74 class Histogram : public Statistics {
75 public:
76 Histogram() = default;
77 Histogram(double minimum, double maximum,
78 int bins = 1024);
79 Histogram(Cube &cube, int statsBand, Progress *progress = NULL,
80 double startSample = 1.0, double startLine = 1.0,
81 double endSample = Null, double endLine = Null, int bins = 0,
82 bool addCubeData = false);
83
84 //constuctors that use ControlNetworks to build histograms of ControlMeasure data
85 Histogram(ControlNet &net, double(ControlMeasure::*statFunc)() const, int bins);
86 Histogram(ControlNet &net, double(ControlMeasure::*statFunc)() const, double binWidth);
87
88 ~Histogram();
89
90 void SetBins(const int bins);
91
92 void Reset();
93 virtual void AddData(const double *data, const unsigned int count);
94 virtual void AddData(const double data);
95 virtual void RemoveData(const double *data, const unsigned int count);
96
97 double Median() const;
98 double Mode() const;
99 double Percent(const double percent) const;
100 double Skew() const;
101
102 BigInt BinCount(const int index) const;
103 virtual void BinRange(const int index, double &low, double &high) const;
104 double BinMiddle(const int index) const;
105 double BinSize() const;
106 int Bins() const;
107 BigInt MaxBinCount() const;
108
109 double BinRangeStart() const {
110 return p_binRangeStart;
111 }
112 double BinRangeEnd() const {
113 return p_binRangeEnd;
114 }
115 //void SetBinRange(double binStart, double binEnd);
116 void SetValidRange(const double minimum = Isis::ValidMinimum,
117 const double maximum = Isis::ValidMaximum);
118
119 protected:
121 std::vector<BigInt> p_bins;
122
123 private:
124 double p_binRangeStart, p_binRangeEnd;
125 void addMeasureDataFromNet(ControlNet &net, double(ControlMeasure::*statFunc)() const);
126 void rangesFromNet(ControlNet &net, double(ControlMeasure::*statFunc)() const);
127 };
128};
129
130#endif
a control measurement
Definition ControlMeasure.h:175
a control network
Definition ControlNet.h:258
IO Handler for Isis Cubes.
Definition Cube.h:168
Container of a cube histogram.
Definition Histogram.h:74
void SetBins(const int bins)
Change the number of bins in the histogram and reset counters.
Definition Histogram.cpp:219
double BinSize() const
Returns the size of an individual bin.
Definition Histogram.cpp:470
BigInt BinCount(const int index) const
Returns the count at a bin position in the histogram.
Definition Histogram.cpp:403
std::vector< BigInt > p_bins
The array of counts.
Definition Histogram.h:121
double BinRangeStart() const
Definition Histogram.h:109
double BinMiddle(const int index) const
Returns the value represented by a bin.
Definition Histogram.cpp:449
void SetValidRange(const double minimum=Isis::ValidMinimum, const double maximum=Isis::ValidMaximum)
Changes the range of the bins.
Definition Histogram.cpp:192
double Median() const
Returns the median.
Definition Histogram.cpp:319
int Bins() const
Returns the number of bins in the histogram.
Definition Histogram.cpp:483
virtual void RemoveData(const double *data, const unsigned int count)
Remove an array of doubles from the histogram counters.
Definition Histogram.cpp:291
double Percent(const double percent) const
Computes and returns the value at X percent of the histogram.
Definition Histogram.cpp:351
Histogram()=default
double Mode() const
Returns the mode.
Definition Histogram.cpp:328
BigInt MaxBinCount() const
Returns the highest bin count.
Definition Histogram.cpp:493
double BinRangeEnd() const
Definition Histogram.h:112
~Histogram()
Destructs a histogram object.
Definition Histogram.cpp:175
virtual void AddData(const double *data, const unsigned int count)
Add an array of doubles to the histogram counters.
Definition Histogram.cpp:232
void Reset()
Resets histogram counters to zero.
Definition Histogram.cpp:210
double Skew() const
Computes and returns the skew.
Definition Histogram.cpp:384
Histogram(Cube &cube, int statsBand, Progress *progress=NULL, double startSample=1.0, double startLine=1.0, double endSample=Null, double endLine=Null, int bins=0, bool addCubeData=false)
virtual void BinRange(const int index, double &low, double &high) const
Returns the left edge and right edge values of a bin.
Definition Histogram.cpp:427
Program progress reporter.
Definition Progress.h:42
This class is used to accumulate statistics on double arrays.
Definition Statistics.h:94
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
const double ValidMaximum
The maximum valid double value for Isis pixels.
Definition SpecialPixel.h:122
const double Null
Value for an Isis Null pixel.
Definition SpecialPixel.h:95
long long int BigInt
Big int.
Definition Constants.h:49
const double ValidMinimum
The minimum valid double value for Isis pixels.
Definition SpecialPixel.h:87