15#include <QCryptographicHash> 
  127      virtual void StartProcess(
void funct(std::vector<Isis::Buffer *> &in));
 
  143      void SetInputRange(
const double minimum, 
const double maximum);
 
  144      void SetInputRange(
const double minimum, 
const double maximum, 
const int index);
 
  145      void SetInputRange(
const double minimum, 
const double middle,
 
  146                         const double maximum);
 
  147      void SetInputRange(
const double minimum, 
const double middle,
 
  148                         const double maximum, 
const int index);
 
  175      template <
typename Functor> 
void ProcessCubes(
const Functor & functor) {
 
  187        std::vector<BufferManager *> imgrs = 
GetBuffers();
 
  188        for (
int k = 1; k <= length; k++) {
 
  189          std::vector<Buffer *> ibufs;
 
  191          for (
unsigned int cubeIndex = 0; cubeIndex < 
InputCubes.size(); cubeIndex++) {
 
  193            InputCubes[cubeIndex]->read(*imgrs[cubeIndex]);
 
  196            for (
int sampleIndex = 0; sampleIndex < samples; sampleIndex++) {
 
  197              (*imgrs[cubeIndex])[sampleIndex] =
 
  198                  p_str[cubeIndex]->Map((*imgrs[cubeIndex])[sampleIndex]);
 
  201            ibufs.push_back(imgrs[cubeIndex]);
 
  207          for (
unsigned int i = 0; i < imgrs.size(); i++) imgrs[i]->next();
 
  274      void isisOut8(
Buffer &in, std::ofstream &fout);
 
  277      void isisOut16s(
Buffer &in, std::ofstream &fout);
 
  280      void isisOut16u(
Buffer &in, std::ofstream &fout);
 
  284      void isisOut32(
Buffer &in, std::ofstream &fout);
 
  288      void isisOut64(
Buffer &in, std::ofstream &fout);
 
Buffer for reading and writing cube data.
Definition: Buffer.h:53
 
Byte swapper.
Definition: EndianSwapper.h:38
 
Process class for exporting cubes.
Definition: ProcessExport.h:111
 
double OutputNull()
Return the output special pixel value for NULL.
Definition: ProcessExport.cpp:545
 
double p_Lis
The output value for pixels whose input DNs are Low Instrument Saturation values.
Definition: ProcessExport.h:248
 
ExportFormat p_format
Current storage order.
Definition: ProcessExport.h:215
 
std::vector< Stretch * > p_str
Stretch object to ensure a reasonable range of pixel values in the output data.
Definition: ProcessExport.h:243
 
double OutputHis()
Return the output special pixel value for HIS.
Definition: ProcessExport.cpp:569
 
double OutputLrs()
Return the output special pixel value for LRS.
Definition: ProcessExport.cpp:561
 
bool p_Null_Set
Indicates whether p_Null has been set (i.e.
Definition: ProcessExport.h:257
 
std::vector< BufferManager * > GetBuffersBSQ()
A single line of input data from each input cube will be passed to the line processing function.
Definition: ProcessExport.cpp:905
 
QCryptographicHash * m_cryptographicHash
A cryptographic hash that will generate an MD5 checksum of the image data.
Definition: ProcessExport.h:268
 
QString checksum()
@description Generates a file checksum.
Definition: ProcessExport.cpp:694
 
double GetOutputMaximum()
Get the valid maximum pixel value to be written to the output file.
Definition: ProcessExport.h:165
 
void SetOutputHrs(const double value)
Set output special pixel value for HRS.
Definition: ProcessExport.cpp:536
 
void CreateWorldFile(const QString &worldFile)
Create a standard world file for the input cube.
Definition: ProcessExport.cpp:1255
 
virtual void StartProcess(void funct(std::vector< Isis::Buffer * > &in))
 
void SetOutputLrs(const double value)
Set output special pixel value for LRS.
Definition: ProcessExport.cpp:506
 
double OutputLis()
Return the output special pixel value for LIS.
Definition: ProcessExport.cpp:553
 
std::vector< BufferManager * > GetBuffersBIP()
A single band of input data from each input cube will be passed to the band processing function.
Definition: ProcessExport.cpp:982
 
double p_outputMinimum
Desired minimum pixel value in the Buffer.
Definition: ProcessExport.h:222
 
std::vector< double > p_inputMiddle
Middle pixel value in the input cube to be mapped to the (minimum+maximum)/2.0 value in the Buffer.
Definition: ProcessExport.h:230
 
void setCanGenerateChecksum(bool flag)
@description Set m_canGenerateChecksum which determines if we can generate a MD5 checksum on the imag...
Definition: ProcessExport.cpp:673
 
double GetOutputMinimum()
Get the valid minimum pixel value to be written to the output file.
Definition: ProcessExport.h:161
 
bool p_His_Set
Indicates whether p_His has been set (i.e.
Definition: ProcessExport.h:263
 
void ProcessCubes(const Functor &functor)
Definition: ProcessExport.h:175
 
void SetOutputNull(const double value)
Set output special pixel value for NULL.
Definition: ProcessExport.cpp:476
 
double GetInputMinimum(unsigned int n=0) const
Get the valid minimum pixel value for the Nth input cube.
Definition: ProcessExport.cpp:418
 
std::vector< BufferManager * > GetBuffersBIL()
A single line of input data from each input cube will be passed to the line processing function.
Definition: ProcessExport.cpp:944
 
double p_outputMaximum
Desired maximum pixel value in the Buffer.
Definition: ProcessExport.h:225
 
bool p_Lrs_Set
Indicates whether p_Lrs has been set (i.e.
Definition: ProcessExport.h:261
 
double OutputHrs()
Return the output special pixel value for HRS.
Definition: ProcessExport.cpp:577
 
bool p_Hrs_Set
Indicates whether p_Hrs has been set (i.e.
Definition: ProcessExport.h:265
 
bool m_canGenerateChecksum
Flag to determine if a file checksum will be generated.
Definition: ProcessExport.h:270
 
std::vector< double > p_inputMaximum
Maximum pixel value in the input cube to be mapped to the maximum value in the Buffer.
Definition: ProcessExport.h:234
 
void SetOutputType(Isis::PixelType pixelIn)
Set output pixel bit type in Buffer.
Definition: ProcessExport.cpp:608
 
void SetOutputLis(const double value)
Set output special pixel value for LIS.
Definition: ProcessExport.cpp:491
 
void SetOutputEndian(enum ByteOrder endianness)
Set byte endianness of the output cube.
Definition: ProcessExport.cpp:649
 
virtual void StartProcess(void funct(Isis::Buffer &in))
This method invokes the process operation over a single input cube.
Definition: ProcessExport.cpp:790
 
void SetInputRange()
Set input pixel range from user.
Definition: ProcessExport.cpp:359
 
bool canGenerateChecksum()
@description Return if we can generate a checksum
Definition: ProcessExport.cpp:684
 
ExportFormat
Storage order enumeration.
Definition: ProcessExport.h:116
 
@ JP2
Compressed JPEG2000.
Definition: ProcessExport.h:120
 
@ BSQ
Band sequential.
Definition: ProcessExport.h:117
 
@ BIL
Band interleaved by line.
Definition: ProcessExport.h:118
 
@ BIP
Band interleaved by pixel.
Definition: ProcessExport.h:119
 
ProcessExport()
Constructs an Export object.
Definition: ProcessExport.cpp:28
 
bool HasInputRange() const
Definition: ProcessExport.cpp:412
 
bool p_Lis_Set
Indicates whether p_Lis has been set (i.e.
Definition: ProcessExport.h:259
 
double p_Lrs
The output value for pixels whose input DNs are Low Representation Saturation values.
Definition: ProcessExport.h:250
 
double p_Null
The output value for pixels whose input DNs are Null values.
Definition: ProcessExport.h:247
 
PixelType p_pixelType
The bits per pixel of the output image.
Definition: ProcessExport.h:241
 
ByteOrder p_endianType
The byte order of the output file.
Definition: ProcessExport.h:239
 
void setFormat(ExportFormat format)
Sets the storage order of the output file.
Definition: ProcessExport.h:170
 
double p_outputMiddle
Middle pixel value (minimum+maximun)/2.0 in the Buffer.
Definition: ProcessExport.h:223
 
virtual ~ProcessExport()
Destructor.
Definition: ProcessExport.cpp:58
 
std::vector< BufferManager * > GetBuffers()
Definition: ProcessExport.cpp:870
 
double GetInputMaximum(unsigned int n=0) const
Get the valid maximum pixel value for the Nth input cube.
Definition: ProcessExport.cpp:429
 
void SetOutputRange(const double minimum, const double maximum)
Set output pixel range in Buffer.
Definition: ProcessExport.cpp:454
 
EndianSwapper * p_endianSwap
Object to swap the endianness of the raw output to either MSB or LSB.
Definition: ProcessExport.h:237
 
double p_His
The output value for pixels whose input DNs are High Instrument Saturation values.
Definition: ProcessExport.h:252
 
void SetOutputHis(const double value)
Set output special pixel value for HIS.
Definition: ProcessExport.cpp:521
 
std::vector< double > p_inputMinimum
Minimum pixel value in the input cube to be mapped to the minimum value in the Buffer.
Definition: ProcessExport.h:227
 
double p_Hrs
The output value for pixels whose input DNs are High Representation Saturation values.
Definition: ProcessExport.h:254
 
Base class for all cube processing derivatives.
Definition: Process.h:143
 
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time.
Definition: Process.h:213
 
std::vector< Isis::Cube * > InputCubes
A vector of pointers to opened Cube objects.
Definition: Process.h:185
 
Isis::Progress * p_progress
Pointer to a Progress object.
Definition: Process.h:145
 
void CheckStatus()
Checks and updates the status.
Definition: Progress.cpp:105
 
Command Line and Xml loader, validation, and access.
Definition: UserInterface.h:140
 
ByteOrder
Tests the current architecture for byte order.
Definition: Endian.h:42
 
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
 
PixelType
Enumerations for Isis Pixel Types.
Definition: PixelType.h:27