12#include "CubeAttribute.h"
13#include "EndianSwapper.h"
14#include "JP2Decoder.h"
17#include "PvlToPvlTranslationManager.h"
18#include "SpecialPixel.h"
19#include "UserInterface.h"
163 enum VAXSpecialPixel {
202 void SetDimensions(
const int ns,
const int nl,
const int nb);
241 bool IsVAXSpecial(
unsigned int *vax, VAXSpecialPixel pix);
243 void SetSuffixOffset(
int samples,
int lines,
int coreBands,
int itemBytes);
271 std::vector<std::vector<char *> >
DataPrefix();
272 std::vector<std::vector<char *> >
DataSuffix();
298 void SetBase(
const double base);
300 void SetBase(
const std::vector<double> base);
304 const double lis,
const double hrs,
306 void SetNull(
const double null_min,
const double null_max);
307 void SetLRS(
const double lrs_min,
const double lrs_max);
308 void SetLIS(
const double lis_min,
const double lis_max);
309 void SetHRS(
const double hrs_min,
const double hrs_max);
310 void SetHIS(
const double his_min,
const double his_max);
322 void AddImportLabel(
Isis::Pvl &importLab);
Buffer for reading and writing cube data.
Manipulate and parse attributes of output cube filenames.
IO Handler for Isis Cubes.
Base class for all cube processing derivatives.
virtual void StartProcess(void funct())
In the base class, this method will invoked a user-specified function exactly one time.
virtual Isis::Cube * SetOutputCube(const QString ¶meter)
Allocates a user-specified output cube whose size matches the first input cube.
void SetVAXConvert(const bool vax_convert)
Sets the VAX flag of the input cube.
virtual void StartProcess()
Process the input file and write it to the output.
char * p_fileHeader
The file header.
ProcessImport::Interleave p_organization
The format of the input file.
double p_lis_min
The pixel value which is the lower bound of LIS data.
bool p_saveDataPost
Flag indicating whether to save the data suffix or not.
bool p_saveDataTrailer
Flag indicating whether to save the data trailer or not.
Isis::PixelType p_pixelType
Pixel type of input data.
void SetPixelType(const Isis::PixelType type)
Sets the pixel type of the input file.
void SetFileHeaderBytes(const int bytes)
This method sets the number of bytes in the header of a file.
Isis::PixelType PixelType()
Returns the pixel type.
bool p_saveDataPre
Flag indicating whether to save the data prefix or not.
std::vector< char * > DataTrailer()
This method returns a pointer to the data trailer.
double p_null_max
The pixel value which is the upper bound of NULL data.
ProcessImport()
Constructs an Import object.
void SaveDataPrefix()
This method marks the data prefix to be saved.
void SaveDataTrailer()
This method marks the data block trailers to be saved.
int FileHeaderBytes() const
This method returns the number of file header bytes.
void SetOrganization(const ProcessImport::Interleave org)
Sets the organization of the input cube.
char * FileTrailer()
This method returns a pointer to the file trailer.
void SetDataPrefixBytes(const int bytes)
This method sets the number of bytes at the beginning of each data record of a file.
int DataTrailerBytes() const
This method returns the number of data trailer bytes.
std::vector< double > p_base
An array containing the core base for each band.
QString p_inFile
Input file name.
void SetLIS(const double lis_min, const double lis_max)
Sets the range that will be considered Isis::Null.
int p_ns
Number of samples.
void SetHRS(const double hrs_min, const double hrs_max)
Sets the range that will be considered Isis::Null.
int p_suffixData
The number of bytes past the file header bytes where the suffix data bands are stored.
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.
std::vector< std::vector< char * > > p_dataPost
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...
void SetMultiplier(const double mult)
Sets the core multiplier of the input cube.
void SetDataHeaderBytes(const int bytes)
This method sets the number of bytes in the header of each datablock of a file.
std::vector< double > p_mult
An array containing the core multiplier for each band.
std::vector< char * > p_dataTrailer
The data trailer.
void ProcessBip(void funct(Isis::Buffer &out)=NULL)
Function to process files stored as Band Interleaved by Pixel.
double p_his_min
The pixel value which is the lower bound of HIS data.
double p_lis_max
The pixel value which is the upper bound of LIS data.
Isis::Cube * SetOutputCube(const QString ¶meter)
Create the output file.
void SaveFileTrailer()
This method marks the file trailer to be saved.
bool p_saveDataHeader
Flag indicating whether to save the data header or not.
bool p_saveFileHeader
Flag indicating whether to save the file header or not.
int FileTrailerBytes() const
This method returns the number of file trailer bytes.
double p_lrs_max
The pixel value which is the upper bound of LRS data.
void CheckPixelRange(QString pixelName, double min, double max)
Checks the special pixel range of the given against all other special pixel value ranges,...
double p_hrs_max
The pixel value which is the upper bound of HRS data.
Isis::ByteOrder ByteOrder()
Returns the byte order.
int Lines()
Returns the number of lines.
void ProcessJp2(void funct(Isis::Buffer &out)=NULL)
Function to process files containing compressed JPEG2000 data (which is always BSQ but is processed a...
int p_dataTrailerBytes
Number of bytes of non-image data after the image data of each data block, such as band trailer data ...
void SetLRS(const double lrs_min, const double lrs_max)
Sets the range that will be considered Isis::Null.
std::vector< std::vector< char * > > p_dataPre
The data prefix.
double p_lrs_min
The pixel value which is the lower bound of LRS data.
int DataPrefixBytes() const
This method returns the number of data prefix bytes.
double p_null_min
The pixel value which is the lower bound of NULL data.
double p_hrs_min
The pixel value which is the lower bound of HRS data.
int p_fileTrailerBytes
The number of bytes of non-image data at the end of a file.
Isis::PixelType p_suffixPixelType
The pixel type of the suffix data.
bool p_saveFileTrailer
Flag indicating whether to save the file trailer or not.
Interleave Organization() const
Gets the organization of the input cube.
double VAXConversion(void *ibuf)
Conversion routine which translates VAX_REAL to IEEE_REAL.
void SetFileTrailerBytes(const int bytes)
This method sets the number of bytes in the trailer of a file.
int Samples()
Returns the number of samples.
void SetDataTrailerBytes(const int bytes)
This method sets the number of bytes in the trailer of each datablock of a file.
std::vector< std::vector< char * > > DataSuffix()
This method returns a pointer to the data suffix.
QString InputFile()
Sets the name of the input file to be read in the import StartProcess method and verifies its existan...
std::vector< char * > p_dataHeader
The data header.
int DataSuffixBytes() const
This method returns the number of data duffix bytes.
void SaveDataHeader()
This method marks the data block headers to be saved.
void SetByteOrder(const Isis::ByteOrder order)
Sets the byte order of the input file.
void ProcessBil(void funct(Isis::Buffer &out)=NULL)
Function to process files stored as Band Interleaved by Line.
double p_his_max
The pixel value which is the upper bound of HIS data.
virtual ~ProcessImport()
Destroys the Import object.
std::vector< std::vector< char * > > DataPrefix()
This method returns a pointer to the data prefix.
void ProcessBsq(void funct(Isis::Buffer &out)=NULL)
Process the import data as a band sequential file.
void SetHIS(const double his_min, const double his_max)
Sets the range that will be considered Isis::Null.
Interleave
This enum includes how the document should be read: by BSQ, BIL, BIP, JP2, or InterleaveUndefined.
@ InterleaveUndefined
Undefined.
@ BIL
Band Interleaved By Line Format (i.e.
@ BIP
Band Interleaved By Pixel Format (i.e.
@ JP2
Jpeg 2000 Format (always band sequential).
@ BSQ
Band Sequential Format (i.e.
std::vector< char * > DataHeader()
This method returns a pointer to the data header.
void SetDataSuffixBytes(const int bytes)
This method sets the number of bytes at the end of each data record of a file.
char * FileHeader()
This method returns a pointer to the file header.
void SetBase(const double base)
Sets the core base of the input cube.
double TestPixel(const double pixel)
Tests the pixel.
int Bands()
Returns the number of bands.
Isis::ByteOrder p_byteOrder
Byte order of data.
void SetAttributes(CubeAttributeOutput &att)
Given a CubeAttributeOutput object, set min/max to propagate if propagating min/max attributes was re...
int p_dataPreBytes
Number of bytes of non-image data preceding each data record, such as line prefix data in a band sequ...
int p_dataPostBytes
Number of bytes of non-image data following each data record, such as line suffix data in a band sequ...
char * p_fileTrailer
The file trailer.
void SaveFileHeader()
This method marks the file header to be saved.
void SaveDataSuffix()
This method marks the data suffix to be saved.
int p_dataHeaderBytes
Number of bytes of non-image data after the file header and before the image data of each data block,...
void SetDimensions(const int ns, const int nl, const int nb)
Sets the physical size of the input cube.
int DataHeaderBytes() const
This method returns the number of data header bytes.
int p_fileHeaderBytes
The number of bytes of non-image data at the beginning of a file.
bool IsVAXSpecial(unsigned int *vax, VAXSpecialPixel pix)
Determines if the VAX encoded pixel value is special or not.
Container for cube-like labels.
Command Line and Xml loader, validation, and access.
ByteOrder
Tests the current architecture for byte order.
This is free and unencumbered software released into the public domain.
PixelType
Enumerations for Isis Pixel Types.