|
Isis Developer Reference
|
Go to the documentation of this file. 1 #ifndef ProcessExport_h
2 #define ProcessExport_h
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);
unsigned short int UnsignedShortInt(void *buf)
Swaps an unsigned short integer value.
Definition: EndianSwapper.cpp:197
std::vector< Isis::Cube * > InputCubes
A vector of pointers to opened Cube objects.
Definition: Process.h:185
double p_Lis
The output value for pixels whose input DNs are Low Instrument Saturation values.
Definition: ProcessExport.h:248
void SetOutputLis(const double value)
Set output special pixel value for LIS.
Definition: ProcessExport.cpp:491
Buffer manager, for moving through a cube in lines.
Definition: LineManager.h:39
std::vector< BufferManager * > GetBuffers()
Definition: ProcessExport.cpp:870
double Percent(const double percent) const
Computes and returns the value at X percent of the histogram.
Definition: Histogram.cpp:351
void CheckStatus()
Checks and updates the status.
Definition: Progress.cpp:105
double Resolution() const
This method returns the resolution for mapping world coordinates into projection coordinates.
Definition: Projection.cpp:675
bool next()
Moves the shape buffer to the next position.
Definition: BufferManager.h:106
bool m_canGenerateChecksum
Flag to determine if a file checksum will be generated.
Definition: ProcessExport.h:270
ExportFormat
Storage order enumeration.
Definition: ProcessExport.h:116
bool IsLsb()
Return true if this host is an LSB first machine and false if it is not.
Definition: Endian.h:67
void SetMaximumSteps(const int steps)
This sets the maximum number of steps in the process.
Definition: Progress.cpp:85
ByteOrder p_endianType
The byte order of the output file.
Definition: ProcessExport.h:239
void SetInputRange()
Set input pixel range from user.
Definition: ProcessExport.cpp:359
void setCanGenerateChecksum(bool flag)
@description Set m_canGenerateChecksum which determines if we can generate a MD5 checksum on the imag...
Definition: ProcessExport.cpp:673
ExportFormat p_format
Current storage order.
Definition: ProcessExport.h:215
double p_Hrs
The output value for pixels whose input DNs are High Representation Saturation values.
Definition: ProcessExport.h:254
const unsigned char VALID_MIN1
Definition: SpecialPixel.h:181
QCryptographicHash * m_cryptographicHash
A cryptographic hash that will generate an MD5 checksum of the image data.
Definition: ProcessExport.h:268
@ UnsignedWord
Definition: PixelType.h:31
double GetDouble(const QString ¶mName) const
Allows the retrieval of a value for a parameter of type "double".
Definition: IsisAml.cpp:891
Base class for all cube processing derivatives.
Definition: Process.h:143
void CreateWorldFile(const QString &worldFile)
Create a standard world file for the input cube.
Definition: ProcessExport.cpp:1255
double OutputHrs()
Return the output special pixel value for HRS.
Definition: ProcessExport.cpp:577
void SetOutputHrs(const double value)
Set output special pixel value for HRS.
Definition: ProcessExport.cpp:536
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
void setFormat(ExportFormat format)
Sets the storage order of the output file.
Definition: ProcessExport.h:170
Buffer manager, for moving through a cube in bands.
Definition: BandManager.h:33
double OutputLrs()
Return the output special pixel value for LRS.
Definition: ProcessExport.cpp:561
@ SignedWord
Definition: PixelType.h:32
double p_His
The output value for pixels whose input DNs are High Instrument Saturation values.
Definition: ProcessExport.h:252
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
double OutputHis()
Return the output special pixel value for HIS.
Definition: ProcessExport.cpp:569
double p_outputMaximum
Desired maximum pixel value in the Buffer.
Definition: ProcessExport.h:225
int ExportFloat(void *buf)
Swaps a floating point value for Exporting.
Definition: EndianSwapper.cpp:99
short int ShortInt(void *buf)
Swaps a short integer value.
Definition: EndianSwapper.cpp:174
double OutputNull()
Return the output special pixel value for NULL.
Definition: ProcessExport.cpp:545
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time.
Definition: Process.h:213
void SetOutputRange(const double minimum, const double maximum)
Set output pixel range in Buffer.
Definition: ProcessExport.cpp:454
double p_Lrs
The output value for pixels whose input DNs are Low Representation Saturation values.
Definition: ProcessExport.h:250
bool begin()
Moves the shape buffer to the first position.
Definition: BufferManager.h:96
double p_outputMiddle
Middle pixel value (minimum+maximun)/2.0 in the Buffer.
Definition: ProcessExport.h:223
void SetOutputHis(const double value)
Set output special pixel value for HIS.
Definition: ProcessExport.cpp:521
double p_Null
The output value for pixels whose input DNs are Null values.
Definition: ProcessExport.h:247
Manages a Buffer over a cube.
Definition: BufferManager.h:52
ByteOrder
Tests the current architecture for byte order.
Definition: Endian.h:42
Buffer for reading and writing cube data.
Definition: Buffer.h:53
bool end() const
Returns true if the shape buffer has accessed the end of the cube.
Definition: BufferManager.h:115
bool p_Lis_Set
Indicates whether p_Lis has been set (i.e.
Definition: ProcessExport.h:259
void SetOutputType(Isis::PixelType pixelIn)
Set output pixel bit type in Buffer.
Definition: ProcessExport.cpp:608
@ NoByteOrder
Definition: Endian.h:43
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
static UserInterface & GetUserInterface()
Returns the UserInterface object.
Definition: Application.cpp:463
const short VALID_MAX2
Definition: SpecialPixel.h:159
const short VALID_MIN2
Definition: SpecialPixel.h:153
double GetInputMaximum(unsigned int n=0) const
Get the valid maximum pixel value for the Nth input cube.
Definition: ProcessExport.cpp:429
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
virtual void StartProcess(void funct(Isis::Buffer &in))
This method invokes the process operation over a single input cube.
Definition: ProcessExport.cpp:790
bool p_Hrs_Set
Indicates whether p_Hrs has been set (i.e.
Definition: ProcessExport.h:265
void SetText(const QString &text)
Changes the value of the text string reported just before 0% processed.
Definition: Progress.cpp:61
EndianSwapper * p_endianSwap
Object to swap the endianness of the raw output to either MSB or LSB.
Definition: ProcessExport.h:237
const double NULL8
Definition: SpecialPixel.h:94
void SetOutputLrs(const double value)
Set output special pixel value for LRS.
Definition: ProcessExport.cpp:506
double GetOutputMaximum()
Get the valid maximum pixel value to be written to the output file.
Definition: ProcessExport.h:165
void SetOutputEndian(enum ByteOrder endianness)
Set byte endianness of the output cube.
Definition: ProcessExport.cpp:649
@ BIL
Band interleaved by line.
Definition: ProcessExport.h:118
@ Msb
Definition: Endian.h:45
Isis exception class.
Definition: IException.h:91
virtual bool SetWorld(const double x, const double y)
This method is used to set a world coordinate.
Definition: Projection.cpp:497
std::vector< Stretch * > p_str
Stretch object to ensure a reasonable range of pixel values in the output data.
Definition: ProcessExport.h:243
@ JP2
Compressed JPEG2000.
Definition: ProcessExport.h:120
const unsigned short VALID_MAXU2
Definition: SpecialPixel.h:168
bool p_Lrs_Set
Indicates whether p_Lrs has been set (i.e.
Definition: ProcessExport.h:261
void Clear(const QString ¶mName)
Clears the value(s) in the named parameter.
Definition: IsisAml.cpp:1852
QString checksum()
@description Generates a file checksum.
Definition: ProcessExport.cpp:694
PixelType
Enumerations for Isis Pixel Types.
Definition: PixelType.h:27
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
bool canGenerateChecksum()
@description Return if we can generate a checksum
Definition: ProcessExport.cpp:684
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
double Median() const
Returns the median.
Definition: Histogram.cpp:319
Namespace for the standard library.
Container of a cube histogram.
Definition: Histogram.h:74
bool IsValidPixel(const double d)
Returns if the input pixel is valid.
Definition: SpecialPixel.h:223
Command Line and Xml loader, validation, and access.
Definition: UserInterface.h:140
QString GetString(const QString ¶mName) const
Allows the retrieval of a value for a parameter of type "string".
Definition: IsisAml.cpp:692
void ProcessCubes(const Functor &functor)
Definition: ProcessExport.h:175
double GetOutputMinimum()
Get the valid minimum pixel value to be written to the output file.
Definition: ProcessExport.h:161
double GetInputMinimum(unsigned int n=0) const
Get the valid minimum pixel value for the Nth input cube.
Definition: ProcessExport.cpp:418
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
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
Byte swapper.
Definition: EndianSwapper.h:38
bool p_His_Set
Indicates whether p_His has been set (i.e.
Definition: ProcessExport.h:263
Isis::Progress * p_progress
Pointer to a Progress object.
Definition: Process.h:145
const unsigned short VALID_MINU2
Definition: SpecialPixel.h:162
void PutDouble(const QString ¶mName, const double &value)
Allows the insertion of a value for a parameter of type "double".
Definition: IsisAml.cpp:361
const unsigned char VALID_MAX1
Definition: SpecialPixel.h:187
int size() const
Returns the total number of pixels in the shape buffer.
Definition: Buffer.h:97
Adds specific functionality to C++ strings.
Definition: IString.h:165
@ BIP
Band interleaved by pixel.
Definition: ProcessExport.h:119
double YCoord() const
This returns the projection Y provided SetGround, SetCoordinate, SetUniversalGround,...
Definition: Projection.cpp:400
@ Lsb
Definition: Endian.h:44
Base class for Map Projections.
Definition: Projection.h:155
bool HasInputRange() const
Definition: ProcessExport.cpp:412
@ UnsignedByte
Definition: PixelType.h:29
void SetOutputNull(const double value)
Set output special pixel value for NULL.
Definition: ProcessExport.cpp:476
double XCoord() const
This returns the projection X provided SetGround, SetCoordinate, SetUniversalGround,...
Definition: Projection.cpp:387
@ BSQ
Band sequential.
Definition: ProcessExport.h:117
double p_outputMinimum
Desired minimum pixel value in the Buffer.
Definition: ProcessExport.h:222
Process class for exporting cubes.
Definition: ProcessExport.h:111
bool p_Null_Set
Indicates whether p_Null has been set (i.e.
Definition: ProcessExport.h:257
PixelType p_pixelType
The bits per pixel of the output image.
Definition: ProcessExport.h:241
ProcessExport()
Constructs an Export object.
Definition: ProcessExport.cpp:28
double OutputLis()
Return the output special pixel value for LIS.
Definition: ProcessExport.cpp:553
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
virtual ~ProcessExport()
Destructor.
Definition: ProcessExport.cpp:58
@ Real
Definition: PixelType.h:35