44 #define EXPONENT_MASK ((char) 0x7F) 84 p_vax_convert =
false;
107 for(
unsigned int j = 0; j <
p_dataPre.size(); j++) {
109 for(
unsigned int i = 0; i < temp.size(); i++)
delete [] temp[i];
112 for(
unsigned int j = 0; j <
p_dataPost.size(); j++) {
114 for(
unsigned int i = 0; i < temp.size(); i++)
delete [] temp[i];
134 unsigned int VAX_NULL = 0xFFFFFFFF;
135 unsigned int VAX_MIN = 0xFFEFFFFF;
136 unsigned int VAX_LRS = 0xFFFEFFFF;
137 unsigned int VAX_LIS = 0xFFFDFFFF;
138 unsigned int VAX_HIS = 0xFFFCFFFF;
139 unsigned int VAX_HRS = 0xFFFBFFFF;
143 memcpy(&x, vax,
sizeof(
unsigned int));
147 n = memcmp(&VAX_NULL, &x,
sizeof(
unsigned int));
148 if (n == 0)
return true;
151 n = memcmp(&VAX_LRS, &x,
sizeof(
unsigned int));
152 if (n == 0)
return true;
155 n = memcmp(&VAX_LIS, &x,
sizeof(
unsigned int));
156 if (n == 0)
return true;
159 n = memcmp(&VAX_HIS, &x,
sizeof(
unsigned int));
160 if (n == 0)
return true;
163 n = memcmp(&VAX_HRS, &x,
sizeof(
unsigned int));
164 if (n == 0)
return true;
167 n = memcmp(&VAX_MIN, &x,
sizeof(
unsigned int));
168 if (n == 0)
return true;
189 bool swap_bytes =
false;
190 bool swap_words =
true;
198 unsigned int *oli, *ili;
204 out_order = Isis::Lsb;
208 out_order = Isis::Msb;
211 if (in_order != out_order) {
215 oli = (
unsigned int * ) ibuf;
216 ili = (
unsigned int * ) ibuf;
223 return Isis::LOW_INSTR_SAT8;
227 return Isis::LOW_REPR_SAT8;
231 return Isis::HIGH_INSTR_SAT8;
235 return Isis::HIGH_REPR_SAT8;
239 return Isis::VALID_MIN8;
244 *oli = (*ili <<16) | (*ili >> 16);
247 osi = (
unsigned short* ) oli;
252 osi[0] = (osi[0] >> 8 ) | (osi[0] << 8);
253 osi[1] = (osi[1] >> 8 ) | (osi[1] << 8);
257 oci = (
char *) &osi[exp_word];
259 if ( (oci[exp_byte] & EXPONENT_MASK) != exp_mask) {
260 oci[exp_byte] += exp_adjust;
263 result = *(
float *)oli;
264 dresult =
static_cast<double>(result);
280 if ((type == Isis::Double) || (type == Isis::Real) || (type == Isis::SignedWord) ||
281 (type == Isis::UnsignedWord) || (type == Isis::UnsignedByte) ||
282 (type == Isis::SignedInteger) || type==Isis::UnsignedInteger) {
286 QString msg =
"Unsupported pixel type [" +
294 if ((type == Isis::Double) || (type == Isis::Real) || (type == Isis::SignedWord) ||
295 (type == Isis::UnsignedWord) || (type == Isis::UnsignedByte)) {
299 QString msg =
"Unsupported pixel type [" +
319 if (ns > 0 && nl > 0 && nb > 0) {
325 QString msg =
"Illegal dimension [" +
toString(ns) +
", " +
368 QString msg =
"Illegal file header size [" +
toString(bytes) +
"]";
398 QString msg =
"Illegal file trailer size [" +
toString(bytes) +
"]";
427 QString msg =
"Illegal data header size [" +
toString(bytes) +
"]";
433 void ProcessImport::SetSuffixOffset(
int samples,
int lines,
int coreBands,
int itemBytes) {
463 QString msg =
"Illegal data trailer size [" +
toString(bytes) +
"]";
493 QString msg =
"Illegal data prefix size [" +
toString(bytes) +
"]";
523 QString msg =
"Illegal data suffix size [" +
toString(bytes) +
"]";
548 QString msg =
"File header bytes equals 0. There is nothing to save. " 549 "Use SetFileHeaderBytes() first.";
575 QString msg =
"File trailer bytes equals 0. There is nothing to save. " 576 "Use SetFileTrailerBytes() first.";
604 QString msg =
"Data header bytes equals 0. There is nothing to save. " 605 "Use SetDataHeaderBytes() first.";
633 QString msg =
"Data trailer bytes equals 0. There is nothing to save. " 634 "Use SetDataTrailerBytes() first.";
661 QString msg =
"Data prefix bytes equals 0. There is nothing to save. " 662 "Use SetDataPrefixBytes() first.";
690 QString msg =
"Data suffix bytes equals 0. There is nothing to save. " 691 "Use SetDataSuffixBytes() first.";
771 QString msg =
"File header was not saved. Use SaveFileHeader().";
797 QString msg =
"File trailer was not saved. Use SaveFileTrailer()";
825 QString msg =
"Data header was not saved. Use SaveDataHeader()";
853 QString msg =
"Data trailer was not saved. Use SaveDataTrailer()";
881 QString msg =
"Data prefix was not saved. Use SaveDataPrefix()";
909 QString msg =
"Data suffix was not saved. Use SaveDataSuffix()";
934 p_vax_convert = vax_convert;
1008 const double lis,
const double hrs,
1114 if (pixelMin == DBL_MAX || pixelMax == -DBL_MAX)
return;
1119 (pixelMin < p_null_min && pixelMax >
p_null_max))) {
1121 QString msg =
"The " + pixelName +
" range [" +
toString(pixelMin) +
1122 "," +
toString(pixelMax) +
"] overlaps the NULL range [" +
1130 (pixelMin < p_lrs_min && pixelMax >
p_lrs_max))) {
1131 QString msg =
"The " + pixelName +
" range [" +
toString(pixelMin) +
1132 "," +
toString(pixelMax) +
"] overlaps the LRS range [" +
1140 (pixelMin < p_lis_min && pixelMax >
p_lis_max))) {
1141 QString msg =
"The " + pixelName +
" range [" +
toString(pixelMin) +
1142 "," +
toString(pixelMax) +
"] overlaps the LIS range [" +
1150 (pixelMin < p_hrs_min && pixelMax >
p_hrs_max))) {
1151 QString msg =
"The " + pixelName +
" range [" +
toString(pixelMin) +
1152 "," +
toString(pixelMax) +
"] overlaps the HRS range [" +
1160 (pixelMin < p_his_min && pixelMax >
p_his_max))) {
1161 QString msg =
"The " + pixelName +
" range [" +
toString(pixelMin) +
1162 "," +
toString(pixelMax) +
"] overlaps the HIS range [" +
1182 if (pixel <= p_null_max && pixel >=
p_null_min) {
1185 else if (pixel <= p_hrs_max && pixel >=
p_hrs_min) {
1186 return Isis::HIGH_REPR_SAT8;
1188 else if (pixel <= p_lrs_max && pixel >=
p_lrs_min) {
1189 return Isis::LOW_REPR_SAT8;
1191 else if (pixel <= p_his_max && pixel >=
p_his_min) {
1192 return Isis::HIGH_INSTR_SAT8;
1194 else if (pixel <= p_lis_max && pixel >=
p_lis_min) {
1195 return Isis::LOW_INSTR_SAT8;
1222 min = Isis::VALID_MIN4;
1223 max = Isis::VALID_MAX4;
1226 min = Isis::IVALID_MIN4;
1227 max = Isis::IVALID_MAX4;
1231 min = Isis::VALID_MINUI4;
1232 max = Isis::VALID_MAXUI4;
1247 QString msg =
"Unsupported pixel type [" +
1306 +
"] is not in a supported organization.";
1335 QString msg =
"File [" +
p_inFile +
"] is not in a supported organization.";
1355 readBytes = readBytes *
p_ns;
1356 char *in =
new char [readBytes];
1360 tok = tok.toUpper();
1366 QString inFileName(inFile.
expanded());
1367 fin.open(inFileName.toLatin1().data(), ios::in | ios::binary);
1368 if (!fin.is_open()) {
1369 QString msg =
"Cannot open input file [" +
p_inFile +
"]";
1374 streampos pos = fin.tellg();
1386 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1387 toString((
int)pos) +
"]. Byte count [" +
1395 if (funct != NULL) {
1407 for(
int band = 0; band <
p_nb; band++) {
1431 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1432 toString((
int)pos) +
"]. Byte count [" +
1438 vector<char *> tempPre, tempPost;
1441 for(
int line = 0; line <
p_nl; line++) {
1455 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1456 toString((
int)pos) +
"]. Byte count [" +
1463 fin.read(in, readBytes);
1465 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1466 toString((
int)pos) +
"]. Byte count [" +
1473 for(
int samp = 0; samp <
p_ns; samp++) {
1475 case Isis::UnsignedByte:
1476 (*out)[samp] = (double)((
unsigned char *)in)[samp];
1478 case Isis::UnsignedWord:
1482 case Isis::SignedWord:
1483 (*out)[samp] = (double)swapper.
ShortInt((
short int *)in+samp);
1485 case Isis::SignedInteger:
1486 (*out)[samp] = (double)swapper.
Int((
int *)in+samp);
1489 case Isis::UnsignedInteger:
1490 (*out)[samp] = (double)swapper.
Uint32_t((
unsigned int *)in+samp);
1497 (*out)[samp] = (double)swapper.
Float((
float *)in+samp);
1501 (*out)[samp] = (double)swapper.
Double((
double *)in+samp);
1510 (*out)[samp] = mult * ((*out)[samp]) + base;
1514 if (funct == NULL) {
1540 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1541 toString((
int)pos) +
"]. Byte count [" +
1571 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1572 toString((
int)pos) +
"]. Byte count [" +
1582 fin.seekg(0, ios_base::end);
1583 streampos e = fin.tellg();
1591 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1592 toString((
int)pos) +
"]. Byte count [" +
1619 readBytes = readBytes *
p_ns;
1620 char *in =
new char [readBytes];
1624 tok = tok.toUpper();
1630 QString inFileName(inFile.
expanded());
1631 fin.open(inFileName.toLatin1().data(), ios::in | ios::binary);
1632 if (!fin.is_open()) {
1633 QString msg =
"Cannot open input file [" +
p_inFile +
"]";
1638 streampos pos = fin.tellg();
1651 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1652 toString((
int)pos) +
"]. Byte count [" +
1660 if (funct != NULL) {
1674 for(
int line = 0; line <
p_nl; line++) {
1676 for(
int band = 0; band <
p_nb; band++) {
1690 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1691 toString((
int)pos) +
"]. Byte count [" +
1697 vector<char *> tempPre, tempPost;
1711 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1712 toString((
int)pos) +
"]. Byte count [" +
1720 fin.read(in, readBytes);
1722 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1723 toString((
int)pos) +
"]. Byte count [" +
1730 for(
int samp = 0; samp <
p_ns; samp++) {
1732 case Isis::UnsignedByte:
1733 (*out)[samp] = (double)((
unsigned char *)in)[samp];
1735 case Isis::UnsignedWord:
1739 case Isis::SignedWord:
1740 (*out)[samp] = (double)swapper.
ShortInt((
short int *)in+samp);
1742 case Isis::SignedInteger:
1743 (*out)[samp] = (double)swapper.
Int((
int *)in+samp);
1745 case Isis::UnsignedInteger:
1746 (*out)[samp] = (double)swapper.
Uint32_t((
unsigned int *)in+samp);
1753 (*out)[samp] = (double)swapper.
Float((
float *)in+samp);
1757 (*out)[samp] = (double)swapper.
Double((
double *)in+samp);
1767 (*out)[samp] = mult * ((*out)[samp]) + base;
1771 if (funct == NULL) {
1794 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1795 toString((
int)pos) +
"]. Byte count [" +
1814 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1815 toString((
int)pos) +
"]. Byte count [" +
1827 fin.seekg(0, ios_base::end);
1828 streampos e = fin.tellg();
1836 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1837 toString((
int)pos) +
"]. Byte count [" +
1864 tok = tok.toUpper();
1870 QString inFileName(inFile.
expanded());
1871 fin.open(inFileName.toLatin1().data(), ios::in | ios::binary);
1872 if (!fin.is_open()) {
1873 QString msg =
"Cannot open input file [" +
p_inFile +
"]";
1878 streampos pos = fin.tellg();
1890 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1891 toString((
int)pos) +
"]. Byte count [" +
1901 if (funct != NULL) {
1914 int readBytes =
p_ns * sampleBytes;
1915 char *in =
new char [readBytes];
1918 for(
int line = 0; line <
p_nl; line++) {
1921 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1922 toString((
int)pos) +
"]. Byte count [" +
1928 vector<char *> tempPre, tempPost;
1932 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1933 toString((
int)pos) +
"]. Byte count [" +
1940 fin.read(in, readBytes);
1942 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1943 toString((
int)pos) +
"]. Byte count [" +
1949 for(
int band = 0; band <
p_nb; band++) {
1965 for(
int samp = 0; samp <
p_ns; samp++) {
1968 case Isis::UnsignedByte:
1969 (*out)[osamp] = (double)((
unsigned char *)in)[bufferIndex];
1971 case Isis::UnsignedWord:
1975 case Isis::SignedWord:
1976 (*out)[osamp] = (double)swapper.
ShortInt(&in[bufferIndex]);
1978 case Isis::SignedInteger:
1979 (*out)[samp] = (double)swapper.
Int(&in[bufferIndex]);
1981 case Isis::UnsignedInteger:
1982 (*out)[samp] = (double)swapper.
Uint32_t(&in[bufferIndex]);
1989 (*out)[osamp] = (double)swapper.
Float(&in[bufferIndex]);
1993 (*out)[osamp] = (double)swapper.
Double(&in[bufferIndex]);
2000 (*out)[osamp] =
TestPixel((*out)[osamp]);
2003 (*out)[osamp] = mult * ((*out)[osamp]) + base;
2008 if (funct == NULL) {
2021 for(
int samp = 0; samp <
p_ns; samp++) {
2024 tempPre.push_back(samplePrefix);
2030 for(
int samp = 0; samp <
p_ns; samp++) {
2034 tempPost.push_back(sampleSuffix);
2042 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
2043 toString((
int)pos) +
"]. Byte count [" +
2060 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
2061 toString((
int)pos) +
"]. Byte count [" +
2073 fin.seekg(0, ios_base::end);
2074 streampos e = fin.tellg();
2082 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
2083 toString((
int)pos) +
"]. Byte count [" +
2122 p_ns = JP2_decoder->GetSampleDimension();
2123 p_nl = JP2_decoder->GetLineDimension();
2124 p_nb = JP2_decoder->GetBandDimension();
2130 int endsamp = startsamp +
p_ns;
2131 int readBytes = sizeofpixel *
p_ns *
p_nb 2133 char **in =
new char* [
p_nb];
2134 for(
int i = 0; i <
p_nb; i++) {
2135 in[i] =
new char [readBytes];
2141 if (funct != NULL) {
2153 for(
int line = 0; line <
p_nl; line++) {
2155 JP2_decoder->
Read((
unsigned char **)in);
2158 JP2_decoder->
Read((
short int **)in);
2161 for(
int band = 0; band <
p_nb; band++) {
2174 vector<char *> tempPre, tempPost;
2185 for(
int samp = startsamp; samp < endsamp; samp++) {
2187 case Isis::UnsignedByte:
2188 (*out)[samp] = (double)((
unsigned char *)in[band])[samp];
2190 case Isis::UnsignedWord:
2191 (*out)[samp] = (double)((
unsigned short int *)in[band])[samp];
2193 case Isis::SignedWord:
2194 (*out)[samp] = (double)((
short int *)in[band])[samp];
2204 (*out)[samp] = mult * ((*out)[samp]) + base;
2208 if (funct == NULL) {
2256 void ProcessImport::AddLabel(
Isis::Pvl &label) {
2261 output->Find(
"IsisCube");
2262 output->Insert(label);
2271 void ProcessImport::AddImportLabel(
Isis::Pvl &importLab) {
2276 output->Find(
"IsisCube");
2278 output->Insert(importLab);
2294 QString msg =
"File [" + file +
"] does not exist";
2310 QString msg =
"No input file has been set";
Buffer for reading and writing cube data.
int p_dataHeaderBytes
Number of bytes of non-image data after the file header and before the image data of each data block...
float Float(void *buf)
Swaps a floating point value.
void SaveDataTrailer()
This method marks the data block trailers to be saved.
double TestPixel(const double pixel)
Tests the pixel.
void SetMaximumSteps(const int steps)
This sets the maximum number of steps in the process.
bool p_saveFileTrailer
Flag indicating whether to save the file trailer or not.
virtual ~ProcessImport()
Destroys the Import object.
static UserInterface & GetUserInterface()
Returns the UserInterface object.
File name manipulation and expansion.
double p_null_max
The pixel value which is the upper bound of NULL data.
bool p_saveFileHeader
Flag indicating whether to save the file header or not.
std::vector< double > p_mult
An array containing the core multiplier for each band.
void SetFileTrailerBytes(const int bytes)
This method sets the number of bytes in the trailer of a file.
std::vector< std::vector< char * > > p_dataPre
The data prefix.
bool p_saveDataPre
Flag indicating whether to save the data prefix or not.
std::vector< Isis::Cube * > OutputCubes
A vector of pointers to allocated Cube objects.
int p_ns
Number of samples.
int SizeOf(Isis::PixelType pixelType)
Returns the number of bytes of the specified PixelType.
int DataSuffixBytes() const
This method returns the number of data duffix bytes.
int p_suffixData
The number of bytes past the file header bytes where the suffix data bands are stored.
Buffer for containing a three dimensional section of an image.
QString PixelTypeName(Isis::PixelType pixelType)
Returns string name of PixelType enumeration entered as input parameter.
int p_dataPreBytes
Number of bytes of non-image data preceding each data record, such as line prefix data in a band sequ...
bool p_saveDataPost
Flag indicating whether to save the data suffix or not.
void SetDataHeaderBytes(const int bytes)
This method sets the number of bytes in the header of each datablock of a file.
Namespace for the standard library.
ByteOrder
Tests the current architecture for byte order.
void ProcessBip(void funct(Isis::Buffer &out)=NULL)
Function to process files stored as Band Interleaved by Pixel.
bool propagatePixelType() const
Return true if the pixel type is to be propagated from an input cube.
unsigned short int UnsignedShortInt(void *buf)
Swaps an unsigned short integer value.
std::vector< char * > p_dataHeader
The data header.
std::vector< char * > DataHeader()
This method returns a pointer to the data header.
bool propagateMinimumMaximum() const
Return true if the min/max are to be propagated from an input cube.
bool p_saveDataHeader
Flag indicating whether to save the data header or not.
void SetDataPrefixBytes(const int bytes)
This method sets the number of bytes at the beginning of each data record of a file.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
double p_his_max
The pixel value which is the upper bound of HIS data.
bool IsValidPixel(const double d)
Returns if the input pixel is valid.
std::vector< std::vector< char * > > p_dataPost
The data suffix.
int DataTrailerBytes() const
This method returns the number of data trailer bytes.
This error is for when a programmer made an API call that was illegal.
std::vector< double > p_base
An array containing the core base for each band.
A type of error that occurred when performing an actual I/O operation.
void SetDataSuffixBytes(const int bytes)
This method sets the number of bytes at the end of each data record of a file.
double p_lis_min
The pixel value which is the lower bound of LIS data.
bool IsVAXSpecial(unsigned int *vax, VAXSpecialPixel pix)
Determines if the VAX encoded pixel value is special or not.
QString InputFile()
Sets the name of the input file to be read in the import StartProcess method and verifies its existan...
void SetDimensions(const int ns, const int nl, const int nb)
Sets the physical size of the input cube.
void CheckStatus()
Checks and updates the status.
PixelType
Enumerations for Isis Pixel Types.
std::vector< char * > DataTrailer()
This method returns a pointer to the data trailer.
void ProcessBsq(void funct(Isis::Buffer &out)=NULL)
Process the import data as a band sequential file.
void addObject(const PvlObject &object)
Add a PvlObject.
This algorithm is designed for applications that jump around between a couple of spots in the cube wi...
Buffer manager, for moving through a cube in lines.
std::vector< char * > p_dataTrailer
The data trailer.
Jpeg 2000 Format (always band sequential).
void Read(unsigned char **inbuf)
Read data from JP2 file containing 8-bit data.
char * p_fileHeader
The file header.
void SetText(const QString &text)
Changes the value of the text string reported just before 0% processed.
void CheckPixelRange(QString pixelName, double min, double max)
Checks the special pixel range of the given against all other special pixel value ranges...
Interleave Organization() const
Gets the organization of the input cube.
void SaveDataSuffix()
This method marks the data suffix to be saved.
int DataHeaderBytes() const
This method returns the number of data header bytes.
void SetHIS(const double his_min, const double his_max)
Sets the range that will be considered Isis::Null.
#define _FILEINFO_
Macro for the filename and line number.
double p_his_min
The pixel value which is the lower bound of HIS data.
double Double(void *buf)
Swaps a double precision value.
Manipulate and parse attributes of output cube filenames.
A type of error that could only have occurred due to a mistake on the user's part (e...
double VAXConversion(void *ibuf)
Conversion routine which translates VAX_REAL to IEEE_REAL.
Isis::PixelType p_pixelType
Pixel type of input data.
std::vector< std::vector< char * > > DataPrefix()
This method returns a pointer to the data prefix.
bool IsLsb()
Return true if this host is an LSB first machine and false if it is not.
void ProcessBil(void funct(Isis::Buffer &out)=NULL)
Function to process files stored as Band Interleaved by Line.
double p_null_min
The pixel value which is the lower bound of NULL data.
void SaveDataPrefix()
This method marks the data prefix to be saved.
int p_fileHeaderBytes
The number of bytes of non-image data at the beginning of a file.
virtual void StartProcess()
Process the input file and write it to the output.
QString expanded() const
Returns a QString of the full file name including the file path, excluding the attributes.
Isis::Cube * SetOutputCube(const QString ¶meter)
Create the output file.
double p_hrs_max
The pixel value which is the upper bound of HRS data.
void setPixelType(PixelType type)
Set the pixel type to that given by the parameter.
void SetDataTrailerBytes(const int bytes)
This method sets the number of bytes in the trailer of each datablock of a file.
void SetSpecialValues(const double null, const double lrs, const double lis, const double hrs, const double his)
Sets a mapping of input pixel values to output special pixel values.
void setMinimum(double min)
Set the output cube attribute minimum.
void SetPixelType(const Isis::PixelType type)
Sets the pixel type of the input file.
Container for cube-like labels.
void SaveDataHeader()
This method marks the data block headers to be saved.
virtual Isis::Cube * SetOutputCube(const QString ¶meter)
Allocates a user-specified output cube whose size matches the first input cube.
int p_dataTrailerBytes
Number of bytes of non-image data after the image data of each data block, such as band trailer data ...
char * p_fileTrailer
The file trailer.
double p_hrs_min
The pixel value which is the lower bound of HRS data.
void SetOrganization(const ProcessImport::Interleave org)
Sets the organization of the input cube.
Isis::CubeAttributeOutput & GetOutputAttribute(const QString ¶mName)
Gets the attributes for an output cube.
Interleave
This enum includes how the document should be read: by BSQ, BIL, BIP, JP2, or InterleaveUndefined.
Band Sequential Format (i.e.
void SaveFileTrailer()
This method marks the file trailer to be saved.
Band Interleaved By Pixel Format (i.e.
int FileHeaderBytes() const
This method returns the number of file header bytes.
double p_lrs_min
The pixel value which is the lower bound of LRS data.
void SetLRS(const double lrs_min, const double lrs_max)
Sets the range that will be considered Isis::Null.
QString p_inFile
Input file name.
int DataPrefixBytes() const
This method returns the number of data prefix bytes.
ProcessImport::Interleave p_organization
The format of the input file.
Isis::Progress * p_progress
Pointer to a Progress object.
char * FileHeader()
This method returns a pointer to the file header.
char * FileTrailer()
This method returns a pointer to the file trailer.
Namespace for ISIS/Bullet specific routines.
void SetMultiplier(const double mult)
Sets the core multiplier of the input cube.
int FileTrailerBytes() const
This method returns the number of file trailer bytes.
void ProcessJp2(void funct(Isis::Buffer &out)=NULL)
Function to process files containing compressed JPEG2000 data (which is always BSQ but is processed a...
short int ShortInt(void *buf)
Swaps a short integer value.
void OpenFile()
Open the JPEG2000 file.
void SetVAXConvert(const bool vax_convert)
Sets the VAX flag of the input cube.
Isis::ByteOrder p_byteOrder
Byte order of data.
void SetFileHeaderBytes(const int bytes)
This method sets the number of bytes in the header of a file.
int p_fileTrailerBytes
The number of bytes of non-image data at the end of a file.
void SetLIS(const double lis_min, const double lis_max)
Sets the range that will be considered Isis::Null.
void SetBase(const double base)
Sets the core base of the input cube.
Isis::PixelType p_suffixPixelType
The pixel type of the suffix data.
std::vector< std::vector< char * > > DataSuffix()
This method returns a pointer to the data suffix.
void SetNull(const double null_min, const double null_max)
Sets the range that will be considered Isis::Null.
uint32_t Uint32_t(void *buf)
Swaps a 32bit unsigned integer.
void SetInputFile(const QString &file)
Sets the name of the input file to be read in the import StartProcess method and verifies its existan...
double p_lis_max
The pixel value which is the upper bound of LIS data.
double p_lrs_max
The pixel value which is the upper bound of LRS data.
Base class for all cube processing derivatives.
void setMaximum(double max)
Set the output cube attribute maximum.
int p_dataPostBytes
Number of bytes of non-image data following each data record, such as line suffix data in a band sequ...
void SetByteOrder(const Isis::ByteOrder order)
Sets the byte order of the input file.
Band Interleaved By Line Format (i.e.
void SetHRS(const double hrs_min, const double hrs_max)
Sets the range that will be considered Isis::Null.
bool p_saveDataTrailer
Flag indicating whether to save the data trailer or not.
int Int(void *buf)
Swaps a 4 byte integer value.
IO Handler for Isis Cubes.
void SaveFileHeader()
This method marks the file header to be saved.