36 ProcessByQuickFilter::ProcessByQuickFilter() :
Isis::
Process() {
53 string m =
"StartProcess only supports exactly one input file";
58 string m =
"StartProcess only supports exactly one output file";
64 string m =
"The lines in the input and output cube must match";
70 string m =
"The samples in the input and output cube must match";
76 string m =
"The bands in the input and output cube must match";
95 string msg =
"Boxcar height is too big for cube size";
100 string msg =
"Boxcar width is too big for cube size";
114 for(
int band = 1; band <= bands; band++) {
119 for(bot = top; bot <= (1 + filter.
HalfHeight()); bot++) {
121 if(bot <= 0) iline = (-1 * bot + 2);
129 for(
int line = 1; line <= lines; line++) {
135 funct(*iline, *oline, filter);
143 topline->
SetLine(-1 * top + 2, band);
152 if(line == lines)
continue;
158 botline->
SetLine(lines - (bot - lines), band);
196 double low,
double high,
int minimum) {
bool SetLine(const int line, const int band=1)
Positions the buffer at the requested line and returns a status indicator if the set was succesful or...
Buffer for reading and writing cube data.
double * DoubleBuffer() const
Returns the value of the shape buffer.
void Reset()
Reset all accumulators and counters to zero.
void SetFilterParameters(int samples, int lines, double low=-DBL_MAX, double high=DBL_MAX, int minimum=0)
This method allows the programmer to set the filter parameters.
void SetMaximumSteps(const int steps)
This sets the maximum number of steps in the process.
static UserInterface & GetUserInterface()
Returns the UserInterface object.
This algorithm is designed for applications that use ProcessByQuickFilter or very similar I/O pattern...
int p_minimum
Minimum number of valid pixels in the sample-by-line boxcar in order for statistical computations to ...
std::vector< Isis::Cube * > OutputCubes
A vector of pointers to allocated Cube objects.
Namespace for the standard library.
double p_high
Maximum valid pixel value to include in statistical computations of the boxcar.
void GetFilterParameters()
This method allows the user to input the filter parameters.
bool p_getParametersFromUser
Flag to indicate whether or not to get parameters from the user.
void SetMinimumPixels(const int minimumValid)
This method is used to set the minimum number of valid pixels in the boxcar.
This error is for when a programmer made an API call that was illegal.
int p_boxcarSamples
Number of samples in the boxcar.
double p_low
Minimum valid pixel value to include in statistical computations of the boxcar.
int p_boxcarLines
Number of lines in the boxcar.
void CheckStatus()
Checks and updates the status.
Buffer manager, for moving through a cube in lines.
int HalfHeight() const
Returns the half the height of the boxcar rounded down because the boxcar size is odd...
void SetMinMax(const double minimum, const double maximum)
This method is used to set the minimum/maximum valid values.
#define _FILEINFO_
Macro for the filename and line number.
A type of error that could only have occurred due to a mistake on the user's part (e...
double GetDouble(const QString ¶mName) const
Allows the retrieval of a value for a parameter of type "double".
Container for boxcar statistics.
void AddLine(const double *buf)
Add an array of doubles to the accumulators and counters.
int GetInteger(const QString ¶mName) const
Allows the retrieval of a value for a parameter of type "integer".
void RemoveLine(const double *buf)
Remove an array of doubles from the accumulators and counters.
Isis::Progress * p_progress
Pointer to a Progress object.
virtual void StartProcess(void funct(Isis::Buffer &in, Isis::Buffer &out, Isis::QuickFilter &filter))
This method invokes the process on a line by line basis.
Namespace for ISIS/Bullet specific routines.
Base class for all cube processing derivatives.
std::vector< Isis::Cube * > InputCubes
A vector of pointers to opened Cube objects.