44 #define EXPONENT_MASK ((char) 0x7F)
51 ProcessImport::ProcessImport() : Isis::
Process() {
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)) {
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 max = Isis::VALID_MAX2 *
p_mult[0] + p_base[0];
1235 max = Isis::VALID_MAXU2 *
p_mult[0] + p_base[0];
1239 max = Isis::VALID_MAX1 *
p_mult[0] + p_base[0];
1242 QString msg =
"Unsupported pixel type [" +
1301 +
"] is not in a supported organization.";
1330 QString msg =
"File [" +
p_inFile +
"] is not in a supported organization.";
1350 readBytes = readBytes *
p_ns;
1351 char *in =
new char [readBytes];
1355 tok = tok.toUpper();
1361 QString inFileName(inFile.expanded());
1362 fin.open(inFileName.toLatin1().data(), ios::in | ios::binary);
1363 if (!fin.is_open()) {
1364 QString msg =
"Cannot open input file [" +
p_inFile +
"]";
1369 streampos pos = fin.tellg();
1382 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1383 toString((
int)pos) +
"]. Byte count [" +
1391 if (funct != NULL) {
1403 for(
int band = 0; band <
p_nb; band++) {
1427 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1428 toString((
int)pos) +
"]. Byte count [" +
1434 vector<char *> tempPre, tempPost;
1437 for(
int line = 0; line <
p_nl; line++) {
1451 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1452 toString((
int)pos) +
"]. Byte count [" +
1459 fin.read(in, readBytes);
1461 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1462 toString((
int)pos) +
"]. Byte count [" +
1469 for(
int samp = 0; samp <
p_ns; samp++) {
1471 case Isis::UnsignedByte:
1472 (*out)[samp] = (double)((
unsigned char *)in)[samp];
1474 case Isis::UnsignedWord:
1478 case Isis::SignedWord:
1479 (*out)[samp] = (double)swapper.
ShortInt((
short int *)in+samp);
1481 case Isis::SignedInteger:
1482 (*out)[samp] = (double)swapper.
Int((
int *)in+samp);
1489 (*out)[samp] = (double)swapper.
Float((
float *)in+samp);
1494 (*out)[samp] = (double)swapper.
Double((
double *)in+samp);
1503 (*out)[samp] = mult * ((*out)[samp]) + base;
1507 if (funct == NULL) {
1533 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1534 toString((
int)pos) +
"]. Byte count [" +
1564 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1565 toString((
int)pos) +
"]. Byte count [" +
1575 fin.seekg(0, ios_base::end);
1576 streampos e = fin.tellg();
1584 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1585 toString((
int)pos) +
"]. Byte count [" +
1612 readBytes = readBytes *
p_ns;
1613 char *in =
new char [readBytes];
1617 tok = tok.toUpper();
1623 QString inFileName(inFile.expanded());
1624 fin.open(inFileName.toLatin1().data(), ios::in | ios::binary);
1625 if (!fin.is_open()) {
1626 QString msg =
"Cannot open input file [" +
p_inFile +
"]";
1631 streampos pos = fin.tellg();
1644 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1645 toString((
int)pos) +
"]. Byte count [" +
1653 if (funct != NULL) {
1667 for(
int line = 0; line <
p_nl; line++) {
1669 for(
int band = 0; band <
p_nb; band++) {
1683 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1684 toString((
int)pos) +
"]. Byte count [" +
1690 vector<char *> tempPre, tempPost;
1705 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1706 toString((
int)pos) +
"]. Byte count [" +
1714 fin.read(in, readBytes);
1716 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1717 toString((
int)pos) +
"]. Byte count [" +
1724 for(
int samp = 0; samp <
p_ns; samp++) {
1726 case Isis::UnsignedByte:
1727 (*out)[samp] = (double)((
unsigned char *)in)[samp];
1729 case Isis::UnsignedWord:
1733 case Isis::SignedWord:
1734 (*out)[samp] = (double)swapper.
ShortInt((
short int *)in+samp);
1736 case Isis::SignedInteger:
1737 (*out)[samp] = (double)swapper.
Int((
int *)in+samp);
1744 (*out)[samp] = (double)swapper.
Float((
float *)in+samp);
1748 (*out)[samp] = (double)swapper.
Double((
double *)in+samp);
1758 (*out)[samp] = mult * ((*out)[samp]) + base;
1762 if (funct == NULL) {
1785 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1786 toString((
int)pos) +
"]. Byte count [" +
1805 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1806 toString((
int)pos) +
"]. Byte count [" +
1818 fin.seekg(0, ios_base::end);
1819 streampos e = fin.tellg();
1827 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1828 toString((
int)pos) +
"]. Byte count [" +
1855 readBytes = readBytes *
p_ns *
p_nb;
1856 char *in =
new char [readBytes];
1860 tok = tok.toUpper();
1866 QString inFileName(inFile.expanded());
1867 fin.open(inFileName.toLatin1().data(), ios::in | ios::binary);
1868 if (!fin.is_open()) {
1869 QString msg =
"Cannot open input file [" +
p_inFile +
"]";
1874 streampos pos = fin.tellg();
1886 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1887 toString((
int)pos) +
"]. Byte count [" +
1897 if (funct != NULL) {
1909 for(
int line = 0; line <
p_nl; line++) {
1912 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1913 toString((
int)pos) +
"]. Byte count [" +
1919 vector<char *> tempPre, tempPost;
1933 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1934 toString((
int)pos) +
"]. Byte count [" +
1941 fin.read(in, readBytes);
1943 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
1944 toString((
int)pos) +
"]. Byte count [" +
1950 for(
int band = 0; band <
p_nb; band++) {
1966 for(
int samp = band; samp <
p_ns *
p_nb; samp +=
p_nb) {
1968 case Isis::UnsignedByte:
1969 (*out)[osamp] = (double)((
unsigned char *)in)[samp];
1971 case Isis::UnsignedWord:
1975 case Isis::SignedWord:
1976 (*out)[osamp] = (double)swapper.
ShortInt((
short int *)in+samp);
1978 case Isis::SignedInteger:
1979 (*out)[samp] = (double)swapper.
Int((
int *)in+samp);
1986 (*out)[osamp] = (double)swapper.
Float((
float *)in+samp);
1990 (*out)[osamp] = (double)swapper.
Double((
double *)in+samp);
1997 (*out)[osamp] =
TestPixel((*out)[osamp]);
2000 (*out)[osamp] = mult * ((*out)[osamp]) + base;
2005 if (funct == NULL) {
2026 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
2027 toString((
int)pos) +
"]. Byte count [" +
2047 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
2048 toString((
int)pos) +
"]. Byte count [" +
2062 fin.seekg(0, ios_base::end);
2063 streampos e = fin.tellg();
2071 QString msg =
"Cannot read file [" +
p_inFile +
"]. Position [" +
2072 toString((
int)pos) +
"]. Byte count [" +
2111 p_ns = JP2_decoder->GetSampleDimension();
2112 p_nl = JP2_decoder->GetLineDimension();
2113 p_nb = JP2_decoder->GetBandDimension();
2119 int endsamp = startsamp +
p_ns;
2120 int readBytes = sizeofpixel * p_ns *
p_nb
2122 char **in =
new char* [
p_nb];
2123 for(
int i = 0; i <
p_nb; i++) {
2124 in[i] =
new char [readBytes];
2130 if (funct != NULL) {
2142 for(
int line = 0; line <
p_nl; line++) {
2144 JP2_decoder->
Read((
unsigned char **)in);
2147 JP2_decoder->
Read((
short int **)in);
2150 for(
int band = 0; band <
p_nb; band++) {
2163 vector<char *> tempPre, tempPost;
2169 memcpy(&tempPre[0], in[band], p_dataPreBytes);
2174 for(
int samp = startsamp; samp < endsamp; samp++) {
2176 case Isis::UnsignedByte:
2177 (*out)[samp] = (double)((
unsigned char *)in[band])[samp];
2179 case Isis::UnsignedWord:
2180 (*out)[samp] = (double)((
unsigned short int *)in[band])[samp];
2182 case Isis::SignedWord:
2183 (*out)[samp] = (double)((
short int *)in[band])[samp];
2193 (*out)[samp] = mult * ((*out)[samp]) + base;
2197 if (funct == NULL) {
2210 tempPost.push_back(
new char[p_dataPostBytes]);
2245 void ProcessImport::AddLabel(
Isis::Pvl &label) {
2250 output->Find(
"IsisCube");
2251 output->Insert(label);
2260 void ProcessImport::AddImportLabel(
Isis::Pvl &importLab) {
2265 output->Find(
"IsisCube");
2267 output->Insert(importLab);
2283 QString msg =
"File [" + file +
"] does not exist";
2299 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...
int FileTrailerBytes() const
This method returns the number of file trailer bytes.
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.
bool propagateMinimumMaximum() const
Return true if the min/max are to be propagated from an input cube.
static UserInterface & GetUserInterface()
Returns the UserInterface object.
bool propagatePixelType() const
Return true if the pixel type is to be propagated from an input cube.
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 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.
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.
Interleave Organization() const
Gets the organization of the 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 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.
int DataPrefixBytes() const
This method returns the number of data prefix bytes.
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.
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.
int DataHeaderBytes() const
This method returns the number of data header bytes.
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...
void SaveDataSuffix()
This method marks the data suffix to be saved.
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.
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 DataSuffixBytes() const
This method returns the number of data duffix 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.
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.
void SetMultiplier(const double mult)
Sets the core multiplier of the input cube.
int FileHeaderBytes() const
This method returns the number of file header 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.
int DataTrailerBytes() const
This method returns the number of data trailer bytes.
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.
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.