Isis 3 Programmer Reference
Isis::ProcessImportPds Class Reference

Convert PDS archive files to Isis format. More...

#include <ProcessImportPds.h>

Inheritance diagram for Isis::ProcessImportPds:
Inheritance graph
Collaboration diagram for Isis::ProcessImportPds:
Collaboration graph

Public Types

enum  PdsFileType {
  Image = 1, Qube = 2, SpectralQube = 4, L0 = 8,
  Rdn = 16, Loc = 32, Obs = 64, CombinedSpectrum = 128,
  All = Image | Qube | SpectralQube | L0 | Rdn | Loc | Obs | CombinedSpectrum
}
 
enum  VAXDataType { VAX_REAL, VAX_INT }
 
enum  VAXSpecialPixel {
  VAX_MIN4, VAX_NULL4, VAX_LRS4, VAX_LIS4,
  VAX_HIS4, VAX_HRS4
}
 
enum  Interleave {
  InterleaveUndefined, JP2, BSQ, BIL,
  BIP
}
 This enum includes how the document should be read: by BSQ, BIL, BIP, JP2, or InterleaveUndefined. More...
 

Public Member Functions

 ProcessImportPds ()
 Constructor. More...
 
bool GetProjectionOffsetChange ()
 Return whether the projection offsets have changed. More...
 
PvlGroup GetProjectionOffsetGroup ()
 Return the projection offsets. More...
 
void SetPdsFile (const QString &pdsLabelFile, const QString &pdsDataFile, Pvl &pdsLabel, PdsFileType allowedTypes=All)
 Set the input label file, data file and initialize a Pvl with the PDS labels. More...
 
void SetPdsFile (const Pvl &pdsLabelPvl, const QString &pdsDataFile, PdsFileType allowedTypes=All)
 Set the input label PVL and data file and initialize a Pvl with the PDS labels. More...
 
void ProcessLabel (const QString &pdsDataFile, PdsFileType allowedTypes)
 Load the PDS labels after determining what type of data file was provided. More...
 
void TranslatePdsProjection (Pvl &lab)
 Fills the passed in label with the projection information from the PDS label file. More...
 
void TranslateIsis2Labels (Pvl &lab)
 Translate as many of the ISIS2 labels as possible. More...
 
void TranslatePdsLabels (Pvl &lab)
 Translate as many of the PDS labels as possible. More...
 
bool IsIsis2 ()
 Return true if ISIS2 cube, else return false. More...
 
void OmitOriginalLabel ()
 Prevents the Original Label blob from being written out to the end of the cube. More...
 
TableImportTable (QString pdsTableName)
 This method will import the PDS table with the given name into an Isis Table object. More...
 
void StartProcess ()
 This method will write the cube and table data to the output cube. More...
 
void StartProcess (void funct(Isis::Buffer &out))
 Process the input file and send data to a method for specialized processing. More...
 
void EndProcess ()
 
void Finalize ()
 End the processing sequence and cleans up by closing cubes, freeing memory, etc. More...
 
virtual void StartProcess ()
 Process the input file and write it to the output. More...
 
virtual void StartProcess (void funct(Isis::Buffer &out))
 Process the input file and send data to method. More...
 
virtual void StartProcess (void funct())
 In the base class, this method will invoked a user-specified function exactly one time. More...
 
void SetInputFile (const QString &file)
 Sets the name of the input file to be read in the import StartProcess method and verifies its existance. More...
 
QString InputFile ()
 Sets the name of the input file to be read in the import StartProcess method and verifies its existance. More...
 
Isis::CubeSetOutputCube (const QString &parameter)
 Create the output file. More...
 
Isis::CubeSetOutputCube (const QString &parameter, UserInterface &ui)
 Create the output file. More...
 
virtual Isis::CubeSetOutputCube (const QString &fname, Isis::CubeAttributeOutput &att)
 Create the output file. More...
 
virtual Isis::CubeSetOutputCube (const QString &parameter, const int nsamps, const int nlines, const int nbands=1)
 Allocates a user specified output cube whose size is specified by the programmer. More...
 
virtual Isis::CubeSetOutputCube (const QString &fname, const Isis::CubeAttributeOutput &att, const int nsamps, const int nlines, const int nbands=1)
 Allocates a output cube whose name and size is specified by the programmer. More...
 
void SetAttributes (CubeAttributeOutput &att)
 Given a CubeAttributeOutput object, set min/max to propagate if propagating min/max attributes was requested and set the pixel type to propagate if pixel type propagation was requested. More...
 
void SetPixelType (const Isis::PixelType type)
 Sets the pixel type of the input file. More...
 
Isis::PixelType PixelType ()
 Returns the pixel type. More...
 
void SetDimensions (const int ns, const int nl, const int nb)
 Sets the physical size of the input cube. More...
 
int Samples ()
 Returns the number of samples. More...
 
int Lines ()
 Returns the number of lines. More...
 
int Bands ()
 Returns the number of bands. More...
 
void SetByteOrder (const Isis::ByteOrder order)
 Sets the byte order of the input file. More...
 
Isis::ByteOrder ByteOrder ()
 Returns the byte order. More...
 
bool IsVAXSpecial (unsigned int *vax, VAXSpecialPixel pix)
 Determines if the VAX encoded pixel value is special or not. More...
 
double VAXConversion (void *ibuf)
 Conversion routine which translates VAX_REAL to IEEE_REAL. More...
 
void SetSuffixOffset (int samples, int lines, int coreBands, int itemBytes)
 
void SetSuffixPixelType (const Isis::PixelType type)
 
void SetVAXConvert (const bool vax_convert)
 Sets the VAX flag of the input cube. More...
 
void SetFileHeaderBytes (const int bytes)
 This method sets the number of bytes in the header of a file. More...
 
void SetFileTrailerBytes (const int bytes)
 This method sets the number of bytes in the trailer of a file. More...
 
void SetDataHeaderBytes (const int bytes)
 This method sets the number of bytes in the header of each datablock of a file. More...
 
void SetDataTrailerBytes (const int bytes)
 This method sets the number of bytes in the trailer of each datablock of a file. More...
 
void SetDataPrefixBytes (const int bytes)
 This method sets the number of bytes at the beginning of each data record of a file. More...
 
void SetDataSuffixBytes (const int bytes)
 This method sets the number of bytes at the end of each data record of a file. More...
 
void SaveFileHeader ()
 This method marks the file header to be saved. More...
 
void SaveFileTrailer ()
 This method marks the file trailer to be saved. More...
 
void SaveDataHeader ()
 This method marks the data block headers to be saved. More...
 
void SaveDataTrailer ()
 This method marks the data block trailers to be saved. More...
 
void SaveDataPrefix ()
 This method marks the data prefix to be saved. More...
 
void SaveDataSuffix ()
 This method marks the data suffix to be saved. More...
 
int FileHeaderBytes () const
 This method returns the number of file header bytes. More...
 
int FileTrailerBytes () const
 This method returns the number of file trailer bytes. More...
 
int DataHeaderBytes () const
 This method returns the number of data header bytes. More...
 
int DataTrailerBytes () const
 This method returns the number of data trailer bytes. More...
 
int DataPrefixBytes () const
 This method returns the number of data prefix bytes. More...
 
int DataSuffixBytes () const
 This method returns the number of data duffix bytes. More...
 
char * FileHeader ()
 This method returns a pointer to the file header. More...
 
char * FileTrailer ()
 This method returns a pointer to the file trailer. More...
 
std::vector< char * > DataHeader ()
 This method returns a pointer to the data header. More...
 
std::vector< char * > DataTrailer ()
 This method returns a pointer to the data trailer. More...
 
std::vector< std::vector< char * > > DataPrefix ()
 This method returns a pointer to the data prefix. More...
 
std::vector< std::vector< char * > > DataSuffix ()
 This method returns a pointer to the data suffix. More...
 
void SetOrganization (const ProcessImport::Interleave org)
 Sets the organization of the input cube. More...
 
Interleave Organization () const
 Gets the organization of the input cube. More...
 
void SetBase (const double base)
 Sets the core base of the input cube. More...
 
void SetBase (const std::vector< double > base)
 Sets band dependent core base. More...
 
void SetMultiplier (const double mult)
 Sets the core multiplier of the input cube. More...
 
void SetMultiplier (const std::vector< double > mult)
 Sets band dependent core multiplier. More...
 
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. More...
 
void SetNull (const double null_min, const double null_max)
 Sets the range that will be considered Isis::Null. More...
 
void SetLRS (const double lrs_min, const double lrs_max)
 Sets the range that will be considered Isis::Null. More...
 
void SetLIS (const double lis_min, const double lis_max)
 Sets the range that will be considered Isis::Null. More...
 
void SetHRS (const double hrs_min, const double hrs_max)
 Sets the range that will be considered Isis::Null. More...
 
void SetHIS (const double his_min, const double his_max)
 Sets the range that will be considered Isis::Null. More...
 
double TestPixel (const double pixel)
 Tests the pixel. More...
 
void ProcessBsq (void funct(Isis::Buffer &out)=NULL)
 Process the import data as a band sequential file. More...
 
void ProcessBil (void funct(Isis::Buffer &out)=NULL)
 Function to process files stored as Band Interleaved by Line. More...
 
void ProcessBip (void funct(Isis::Buffer &out)=NULL)
 Function to process files stored as Band Interleaved by Pixel. More...
 
void ProcessJp2 (void funct(Isis::Buffer &out)=NULL)
 Function to process files containing compressed JPEG2000 data (which is always BSQ but is processed as BIL with one or more lines stored sequentially for each band). More...
 
void CheckPixelRange (QString pixelName, double min, double max)
 Checks the special pixel range of the given against all other special pixel value ranges, making sure none overlap. More...
 
virtual Isis::CubeSetInputCube (const QString &parameter, const int requirements=0)
 Opens an input cube specified by the user and verifies requirements are met. More...
 
virtual Isis::CubeSetInputCube (const QString &fname, const Isis::CubeAttributeInput &att, int requirements=0)
 Opens an input cube specified by the programmer and verifies requirements are met. More...
 
virtual void SetInputCube (Isis::Cube *inCube, int requirements=0)
 Set the InputCube vector to an opened Cube which was dynamically allocated. More...
 
virtual Isis::CubeSetOutputCubeStretch (const QString &parameter, UserInterface *ui=nullptr)
 Allocates a user-specified output cube whose size matches the first input cube. More...
 
virtual Isis::CubeSetOutputCubeStretch (const QString &parameter, const int nsamps, const int nlines, const int nbands=1, UserInterface *ui=nullptr)
 Allocates a user specified output cube whose size is specified by the programmer. More...
 
void AddInputCube (Cube *cube, bool owned=true)
 
void AddOutputCube (Cube *cube, bool owned=true)
 
void CheckRequirements (const Cube *cube, const int requirements)
 Checks to make sure the input cube meets the inputted requirements. More...
 
void ClearCubes ()
 Close owned cubes from the list and clear the list. More...
 
void ClearInputCubes ()
 Close owned input cubes from the list and clear the list. More...
 
void ClearOutputCubes ()
 Close owned output cubes from the list and clear the list. More...
 
void PropagateLabels (const bool prop)
 This method allows the programmer to turn on/off the propagation of labels from the 1st input cube to any of the output cubes. More...
 
void PropagateLabels (const QString &cube)
 This method allows the programmer to propagate labels from a specific secondary cube. More...
 
void PropagateTables (const bool prop)
 This method allows the programmer to propagate input tables to the output cube (default is true) More...
 
void PropagateTables (const QString &fromName, const QList< QString > &tableNames=QList< QString >())
 Propagate the tables from the cube with the given filename to the output cube. More...
 
void PropagatePolygons (const bool prop)
 This method allows the programmer to propagate input blobs to the output cube (default is true) More...
 
void PropagateHistory (const bool prop)
 This method allows the programmer to propagate history to the output cube (default is true) More...
 
void PropagateOriginalLabel (const bool prop)
 This method allows the programmer to propagate original labels to the output cube (default is true) More...
 
Isis::ProgressProgress ()
 This method returns a pointer to a Progress object. More...
 
QString MissionData (const QString &mission, const QString &file, bool highestVersion=false)
 This method reads the mission specific data directory from the user preference file, makes sure that mission is available in the Isis installation, and the attaches the provided input file to the directory in order to create a full file specification. More...
 
void WriteHistory (Cube &cube)
 Writes out the History blob to the cube. More...
 
void CalculateStatistics ()
 Calculates and stores off statistics on every band of every cube added to this process via the SetInputCube method. More...
 
std::vector< Isis::Statistics * > BandStatistics (const unsigned index)
 Get the vector of Statistics objects for each band separately of a specified input cube. More...
 
Isis::StatisticsCubeStatistics (const unsigned index)
 Get the Statistics object for all bands of a specified input cube. More...
 

Protected Attributes

Isis::Progressp_progress
 Pointer to a Progress object. More...
 
bool p_propagateLabels
 Flag indicating if labels are be propagated to output cubes. More...
 
bool p_propagateTables
 Flag indicating if tables are be propagated to output cubes. More...
 
bool p_propagatePolygons
 Flag indicating if blobs are be propagated to output cubes. More...
 
bool p_propagateHistory
 Flag indicating if history is to be propagated to output cubes. More...
 
bool p_propagateOriginalLabel
 Flag indicating if original lable is to be propagated to output cubes. More...
 
std::vector< std::vector< Isis::Statistics * > > p_bandStats
 Holds the calculated statistics for each band separately of every input cubei after the CalculateStatistics method is called. More...
 
std::vector< Isis::Statistics * > p_cubeStats
 Holds the calculated statistics for every band together of every input cubei after the CalculateStatistics method is called. More...
 
std::vector< Isis::Cube * > InputCubes
 A vector of pointers to opened Cube objects. More...
 
std::vector< Isis::Cube * > OutputCubes
 A vector of pointers to allocated Cube objects. More...
 
QSet< Isis::Cube * > * m_ownedCubes
 A list of cubes owned by this instant. More...
 

Private Types

enum  Source { NOSOURCE, PDS, ISIS2 }
 
enum  EncodingType { NONE, JP2 }
 

Private Member Functions

void ProcessDataFilePointer (PvlToPvlTranslationManager &pdsXlater, const bool &calcOffsetOnly)
 Handles the DataFilePointer keyword, aka ^QUBE or ^IMAGE. More...
 
void ProcessPixelBitandType (PvlToPvlTranslationManager &pdsXlater)
 Handles PixelType and BitsPerPixel Calls SetPixelType with the correct values. More...
 
void ProcessSpecialPixels (PvlToPvlTranslationManager &pdsXlater, const bool &isQube)
 Handles all special pixel setting, ultimately, calls SetSpecialValues. More...
 
void ProcessPdsImageLabel (const QString &pdsDataFile)
 Process the PDS label of type IMAGE. More...
 
void ProcessPdsQubeLabel (const QString &pdsDataFile, const QString &transFile)
 Process the PDS label of type QUBE or SPECTRALQUBE. More...
 
void ProcessPdsM3Label (const QString &pdsDataFile, PdsFileType fileType)
 Process Chandrayaan M3 PDS label. More...
 
void ProcessPdsCombinedSpectrumLabel (const QString &pdsDataFile)
 Process the PDS label of type CombinedSpectrum. More...
 
void ExtractPdsProjection (PvlToPvlTranslationManager &pdsXlater)
 Extract all possible PDS projection parameters from the PDS label. More...
 
void GetProjectionOffsetMults (double &xoff, double &yoff, double &xmult, double &ymult)
 Read mults and offsets from a def file in order to calculate the upper left x/y. More...
 
void IdentifySource (Pvl &lab)
 Identify the source of this file PDS or ISIS2. More...
 
void TranslateIsis2BandBin (Pvl &lab)
 Fill as many of the Isis BandBin labels as possible. More...
 
void TranslateIsis2Instrument (Pvl &lab)
 Fill as many of the Isis instrument labels as possible. More...
 
void TranslatePdsBandBin (Pvl &lab)
 Fill as many of the Isis BandBin labels as possible. More...
 
void TranslatePdsArchive (Pvl &lab)
 Fill as many of the Isis BandBin labels as possible. More...
 

Private Attributes

Pvl p_pdsLabel
 Internalized PDS label. More...
 
QString p_labelFile
 The filename where the PDS label came from. More...
 
QString p_transDir
 Base data directory. More...
 
EncodingType p_encodingType
 The encoding type of the image data. More...
 
QString p_jp2File
 The name of the file containing the encoded JP2 data. More...
 
QString p_projection
 The name of the projection found in the PDS projection labels. More...
 
bool p_projectionOffsetChange
 Whether the projection offsets were updated upon loading. More...
 
PvlGroup p_projectionOffsetGroup
 Log information for projection offsets. More...
 
QString p_targetName
 
double p_equatorialRadius
 Equatorial radius found in the PDS projection labels. More...
 
double p_polarRadius
 The polar radius found in the PDS projection labels. More...
 
QString p_longitudeDirection
 Longitude direction found in the PDS projection labels. More...
 
int p_longitudeDomain
 Longitude domain found in the PDS projection labels. More...
 
QString p_latitudeType
 The latitude type found in the PDS projection labels. More...
 
double p_minimumLatitude
 Minimum latitude found in the PDS projection labels. More...
 
double p_maximumLatitude
 Maximum latitude found in the PDS projection labels. More...
 
double p_minimumLongitude
 Minimum longitude found in the PDS projection labels. More...
 
double p_maximumLongitude
 Maximum longitude found in the PDS projection labels. More...
 
double p_pixelResolution
 Pixel resolution found in the PDS projection labels. More...
 
double p_scaleFactor
 The scale factor found in the PDS projection labels. More...
 
double p_rotation
 The rotation found in the PDS labels. More...
 
double p_sampleProjectionOffset
 
double p_lineProjectionOffset
 
double p_upperLeftX
 
double p_upperLeftY
 
bool p_keepOriginalLabel
 determines whether or not to keep the OriginalLabel blob. More...
 
std::vector< Tablep_tables
 Vector of Isis Table objects that were imported from PDS and need to be added to the imported cube file. More...
 
Source p_source
 
QString p_inFile
 Input file name. More...
 
Isis::PixelType p_pixelType
 Pixel type of input data. More...
 
Isis::PixelType p_suffixPixelType
 The pixel type of the suffix data. More...
 
int p_ns
 Number of samples. More...
 
int p_nl
 Number of lines. More...
 
int p_nb
 Number of bands. More...
 
Isis::ByteOrder p_byteOrder
 Byte order of data. More...
 
int p_suffixData
 The number of bytes past the file header bytes where the suffix data bands are stored. More...
 
int p_fileHeaderBytes
 The number of bytes of non-image data at the beginning of a file. More...
 
int p_fileTrailerBytes
 The number of bytes of non-image data at the end of a file. More...
 
int p_dataHeaderBytes
 Number of bytes of non-image data after the file header and before the image data of each data block, such as band header data in a band sequential file. More...
 
int p_dataTrailerBytes
 Number of bytes of non-image data after the image data of each data block, such as band trailer data in a band sequential file. More...
 
int p_dataPreBytes
 Number of bytes of non-image data preceding each data record, such as line prefix data in a band sequential file. More...
 
int p_dataPostBytes
 Number of bytes of non-image data following each data record, such as line suffix data in a band sequential file. More...
 
bool p_saveFileHeader
 Flag indicating whether to save the file header or not. More...
 
bool p_saveDataHeader
 Flag indicating whether to save the data header or not. More...
 
bool p_saveDataTrailer
 Flag indicating whether to save the data trailer or not. More...
 
bool p_saveDataPre
 Flag indicating whether to save the data prefix or not. More...
 
bool p_saveDataPost
 Flag indicating whether to save the data suffix or not. More...
 
bool p_saveFileTrailer
 Flag indicating whether to save the file trailer or not. More...
 
char * p_fileHeader
 The file header. More...
 
std::vector< char * > p_dataHeader
 The data header. More...
 
std::vector< char * > p_dataTrailer
 The data trailer. More...
 
std::vector< std::vector< char * > > p_dataPre
 The data prefix. More...
 
std::vector< std::vector< char * > > p_dataPost
 The data suffix. More...
 
char * p_fileTrailer
 The file trailer. More...
 
bool p_vax_convert
 
ProcessImport::Interleave p_organization
 The format of the input file. More...
 
std::vector< double > p_base
 An array containing the core base for each band. More...
 
std::vector< double > p_mult
 An array containing the core multiplier for each band. More...
 
double p_null_min
 The pixel value which is the lower bound of NULL data. More...
 
double p_null_max
 The pixel value which is the upper bound of NULL data. More...
 
double p_hrs_min
 The pixel value which is the lower bound of HRS data. More...
 
double p_hrs_max
 The pixel value which is the upper bound of HRS data. More...
 
double p_his_min
 The pixel value which is the lower bound of HIS data. More...
 
double p_his_max
 The pixel value which is the upper bound of HIS data. More...
 
double p_lrs_min
 The pixel value which is the lower bound of LRS data. More...
 
double p_lrs_max
 The pixel value which is the upper bound of LRS data. More...
 
double p_lis_min
 The pixel value which is the lower bound of LIS data. More...
 
double p_lis_max
 The pixel value which is the upper bound of LIS data. More...
 

Detailed Description

Convert PDS archive files to Isis format.

This class is used to import PDS archive files into Isis format. The class can handle PDS images, qubes and spectral cubes. It can also convert projection information if it exists.

Here is an example of how to use ProcessImportPds

ImportPds p;
Pvl plab;
p.SetPdsFile("imagefile.img", "", plab);
p.SetOutputCube("TO");
p.StartProcess();
Pvl proj;
p.TranslatePdsProjection (proj);
p.AddLabel (proj);
p.EndProcess();
Author
2002-08-06 Tracie Sucharski
History:
2003-01-24 Tracie Sucharski - Fixed bug in processing 8bit data. In the Swap method needed to return unsigned char, not char.
History:
2003-02-13 Stuart Sides - Added a unit test.
History:
2003-05-16 Stuart Sides - Modified schema from astrogeology... isis.astrogeology...
History:
2003-05-30 Stuart Sides - Fixed compiler error after -O1 flag was added to g++
History:
2003-09-10 Tracie Sucharski - Complete redesign to handle different raw file formats.
History:
2003-10-09 Stuart Sides - Added capabilities for reading PDS files
History:
2003-10-10 Stuart Sides - Added capabilities to get the translation files from the user preferences BASE directory.
History:
2003-10-10 Stuart Sides - Fixed bug for PDS files. When the image name was explicitly given the open statement was attempting to open the label file.
History:
2003-10-16 Stuart Sides - Added a section for debuging all the parameters which can be set before processing starts.
History:
2003-10-16 Stuart Sides - Added a second parameter to the Pvl constructor in SetVicarFile. This allows the vicar label to be read into a Pvl without modifying the repeated "PROPERTY" keyword.
History:
2003-10-23 Stuart Sides - Added new member functions "AddImportLabel()" and "AddImportLabel(Pvl). AddImportLabel() uses the original label file to create a Pvl and write it to the output cube label. AddImportLabel(Pvl) uses the Pvl argument to write the import label to the output cube.
History:
2004-01-21 Jeff Anderson - Modified SetOutputCube method to propagate the input pixel type, base, and multipliers to the output cube. The old method always generated real pixel values in the output.
History:
2004-01-22 Jeff Anderson - Modified the SetVicarFile method to return the vicar labels internalized in a PVL object.
History:
2004-02-04 Jeff Anderson - Modified SetPdsFile method to allow for SPECTRAL_QUBE objects to handle Themis data.
History:
2004-02-10 Stuart Sides - Separated PDS capabilities from Import.
History:
2005-02-09 Elizabeth Ribelin - Modified file to support Doxygen documentation
History:
2006-06-13 Brendan George - Modified to add OriginalLabel blob automatically, and added a function to allow the user to prevent this.
History:
2006-07-12 Stuart Sides - Modified the translation of projection keywords such as CenterLongitude, so the would not throw and error if the keywods was not a number. This was necessary because map a planet creates PDS labels with "N/A" in several keywords.
History:
2006-10-26 Stuart Sides - Added unsigned 16 bit ability
History:
2006-11-16 Brendan George - Changed instances of "Foreign" to "Input" and "Native" to "Output"
History:
2007-01-24 Stuart Sides - Added ability to identify the difference between PDS and ISIS2 files, and process them differently.
History:
2007-02-08 Brendan George - Fixed TranslateIsis2Instrument to remove the appended z in the StartTime keyword, if present.
History:
2007-04-09 Tracie Sucharski - Added GetProjectionOffsetMults method which will find the correct multiplication factors for the projection offsets depending on the keyword and pattern in pdsProjectionLineSampToXY.def. Added IsIsis2 method. Made changes to projection translation tables for additional values for Longitude direction, latitude type and if the min or max longitude values is greater than 180, change longitude domain to 360.
History:
2007-05-31 Steven Koechle -Moddified to assume all signed bytes input pixels are actually unsigned.
History:
2007-06-04 Jeff Anderson - Modified to deal with projection conversion generically
History:
2007-08-07 Steven Lambright - Modified to support translating some PDS labels for pds2isis and default longitude domain is now 360.
History:
2007-08-29 Steven Koechle - Modified to use new SetSpecialValues method from ProcessImport
History:
2007-10-16 Steven Koechle - Modified TranslatePdsProjection() to not add the min & max lat long keywords if they have null values.
History:
2008-05-12 Steven Lambright - Removed references to CubeInfo
History:
2008-06-13 Steven Lambright - Updated algorithm to decide domain and calculate correct longitudes in ExtractPdsProjection
History:
2008-06-13 Noah Hild - Added support for the FILE object
History:
2008-06-13 Steven Lambright - Updated ExtractPdsProjection to change the latitude type to planetocentric if both the planet radii are the same
History:
2008-08-08 Steven Lambright - Fixed bug where the longitude keywords could be incorrecty interpretted (minumum longitude and maximum longitude are swapped).
History:
2009-07-16 Steven Lambright - Fixed bug where the longitude is misordered
History:
2009-12-15 Steven Lambright - Hard-coded translation table is now a valid Pvl
History:
2009-12-18 Janet Barrett - Added capability to process JPEG2000 files with a detached PDS label
History:
2010-08-23 Steven Lambright - Non-numeric string values for PDS projection rotations are now supported.
History:
2010-08-27 Steven Lambright - Longitude domain correction added for center and pole longitude keywords in PDS projections
History:
2010-11-17 Eric Hyer - Inside ProcessPdsImageLabel method Absolute paths are now supported for the ^IMAGE Keyword
History:
2010-12-09 Sharmila Prasad - Set default offset to be 1 for detatched label and offset not set
History:
2011-02-11 Mackenzie Boyd - Added methods ProcessDataFilePointer, ProcessPixelBitandType, and ProcessSpecialPixels, removed duplicate code in ProcessImage and ProcessQube labels. Fixed functionality regarding ^QUBE pointer having no offest.
History:
2011-04-27 Mackenzie Boyd - Changed ProcessQubeLabels to set BIP for BANDSAMPLELINE axes instead of LINEBANDSAMPLE and added exception for unknown storage order.
History:
2012-05-03 Tracie Sucharski - Added a try/catch in SetPdsFile when attempting to read PDS label
History:
2012-11-21 Jeannie Backer - Added methods and member variables to import binary PDS tables found in the PDS file. Added a default destructor. References #700.
History:
2013-03-12 Steven Lambright and Tracie Sucharski - Added ProcessPdsRdnLabel() to handle Chandrayaan M3 RDN files. Added a file type to handle Chandrayaan Loc and Obs files on the same import as the Rdn files. Also added support for 64 bit input data. Note: There may be loss of precision since the output type is 32-bit. Return reference to imported table. Needed so that M3 table data can be flipped to match image data depending on yaw and orbit limb direction.
History:
2014-02-11 Janet Barrett - Created new version of SetPdsFile method so that calling applications can intercept the PDS label before it gets loaded by this class. This is needed so that missing keywords can be added to the PDS label by the application before it gets loaded. This also required moving some of the code from the SetPdsFile method to a new method, ProcessLabel. Fixes #2036.
History:
2014-03-19 Kristin Berry - Added a Finalize method identical to the old EndProcess method so that ProcessImportPds::Finalize is called, rather than Process::Finalize on ProcessImportPds objects. Marked EndProcess as deprecated.
History:
2015-01-19 Sasha Brownsberger - Made destructor virtual. References #2215.
History:
2015-03-10 Tyler Wilson Added to unit test to test opening Galileo NIMS cube files. References #2368.
History:
2017-01-03 Jesse Mapel - Added support for importing combined spectrum images such as from the Hyabusa NIRS. Fixes #4573.
History:
2017-05-29 Kristin Berry - Update to the DataTrailer handling code so that its size (DataTrailerBytes) is not inappropriately re-set if we have specified it previously. References #3888.
Todo:
2005-02-09 Finish documentation-lots of holes with variable definitions in .h file and .cpp methods, and insert implementation example
History:
2017-05-19 Christopher Combs - Modified unitTest.cpp: changed ReportError method to truncate paths before data directory. Allows test to pass when not using the default data area. Fixes #4738.
History:
2017-06-26 Summer Stapleton - Added functions to identify and report changes to the default projection offsets and multipliers. Fixes #4887.
History:
2017-12-20 Summer Stapleton - Modified error message in ProcessImportPds::ProcessLabel() to be more discriptive. Fixes #4883.
History:
2018-01-19 Christopher Combs - Changed ProcessDataFilePointer call to reflect changes made to voy2isis. Fixes #4345, #4421.

Definition at line 214 of file ProcessImportPds.h.

Member Enumeration Documentation

◆ Interleave

This enum includes how the document should be read: by BSQ, BIL, BIP, JP2, or InterleaveUndefined.

Enumerator
InterleaveUndefined 

Undefined.

JP2 

Jpeg 2000 Format (always band sequential).

BSQ 

Band Sequential Format (i.e.

Band Interleaved). The first line of data is followed immediately by the next line in the same spectral band.

BIL 

Band Interleaved By Line Format (i.e.

Row Interleaved). The first line of data is followed immediately by the first line of data in the next band.

BIP 

Band Interleaved By Pixel Format (i.e.

Pixel Interleaved). The first pixel for all bands is followed by the second pixel for all bands.

Definition at line 278 of file ProcessImport.h.

Constructor & Destructor Documentation

◆ ProcessImportPds()

Isis::ProcessImportPds::ProcessImportPds ( )

Constructor.

Definition at line 40 of file ProcessImportPds.cpp.

Member Function Documentation

◆ Bands()

int Isis::ProcessImport::Bands ( )
inlineinherited

Returns the number of bands.

Returns
The number of bands

Definition at line 226 of file ProcessImport.h.

References Isis::ProcessImport::p_nb.

◆ BandStatistics()

std::vector<Isis::Statistics *> Isis::Process::BandStatistics ( const unsigned  index)
inlineinherited

Get the vector of Statistics objects for each band separately of a specified input cube.

Parameters
indexThe index of the input cube in InputCubes
Returns
vector<Statistics*> A list of statistics ordered by band

Definition at line 279 of file Process.h.

References Isis::Process::p_bandStats.

◆ ByteOrder()

Isis::ByteOrder Isis::ProcessImport::ByteOrder ( )
inlineinherited

Returns the byte order.

Returns
Byte order of the data

Definition at line 237 of file ProcessImport.h.

References Isis::ProcessImport::p_byteOrder.

◆ CalculateStatistics()

void Isis::Process::CalculateStatistics ( )
inherited

Calculates and stores off statistics on every band of every cube added to this process via the SetInputCube method.

The newly calculated statistics are stored in two ways: as a vector where each entry is a single Statistics object for every band of a particular input cube, and as a vector where each entry is a vector of Statistics objects, for each band separately, of a particular input cube.

Definition at line 824 of file Process.cpp.

References Isis::Statistics::AddData(), Isis::Cube::bandCount(), Isis::Progress::CheckStatus(), Isis::Buffer::DoubleBuffer(), Isis::Cube::lineCount(), Isis::Cube::read(), Isis::LineManager::SetLine(), Isis::Progress::SetMaximumSteps(), Isis::Progress::SetText(), Isis::Buffer::size(), and Isis::toString().

◆ CheckPixelRange()

void Isis::ProcessImport::CheckPixelRange ( QString  pixelName,
double  pixelMin,
double  pixelMax 
)
inherited

Checks the special pixel range of the given against all other special pixel value ranges, making sure none overlap.

Parameters
pixelNameName of the special pixel type to be displayed in the error message.
pixelMinThe minimum value of the special pixel range
pixelMaxThe maximum value of the special pixel range

Definition at line 1098 of file ProcessImport.cpp.

References Isis::ProcessImport::p_his_max, Isis::ProcessImport::p_his_min, Isis::ProcessImport::p_hrs_max, Isis::ProcessImport::p_hrs_min, Isis::ProcessImport::p_lis_max, Isis::ProcessImport::p_lis_min, Isis::ProcessImport::p_lrs_max, Isis::ProcessImport::p_lrs_min, Isis::ProcessImport::p_null_max, Isis::ProcessImport::p_null_min, Isis::toString(), and Isis::IException::User.

Referenced by Isis::ProcessImport::SetHIS(), Isis::ProcessImport::SetHRS(), Isis::ProcessImport::SetLIS(), Isis::ProcessImport::SetLRS(), and Isis::ProcessImport::SetNull().

◆ CheckRequirements()

void Isis::Process::CheckRequirements ( const Cube cube,
const int  requirements 
)
inherited

Checks to make sure the input cube meets the inputted requirements.

Parameters
cubeCube to check
requirementsUse to specify requirements for the input file. The following requirments are checked against 1) ic_base::SizeMatch checks to make sure the input cube has the same bands, samples, and lines as the first input cube open using this method, 2) ic_base::SpatialMatch checks to make sure the input cube has the same samples and lines as the first input cube, 3) ic_base::Georeferenced checks to make sure latitude/longitudes can be obtained from the input cube, 4) ic_base::FullyGeoreferenced checks to make sure latitude/longitude, phase/incidence/emission, and other geometric parameters can be obtained from the input cube, 5) ic_base::OneBand checks to make sure the input cube has exactly one band. Note, that these requirements can be logically or'ed. For example, ic_base::SpatialMatch | ic_base::georeferenced. Defaults to 0
Exceptions
Isis::iException::Message

Definition at line 503 of file Process.cpp.

References Isis::Cube::bandCount(), Isis::Cube::fileName(), Isis::Cube::lineCount(), and Isis::Cube::sampleCount().

◆ ClearCubes()

void Isis::Process::ClearCubes ( )
inherited

Close owned cubes from the list and clear the list.

Definition at line 593 of file Process.cpp.

◆ ClearInputCubes()

void Isis::Process::ClearInputCubes ( )
inherited

Close owned input cubes from the list and clear the list.

Definition at line 603 of file Process.cpp.

Referenced by Isis::ProcessMapMosaic::RingsSetOutputCube(), Isis::FileTool::saveAsReducedCube(), and Isis::ProcessMapMosaic::SetOutputCube().

◆ ClearOutputCubes()

void Isis::Process::ClearOutputCubes ( )
inherited

Close owned output cubes from the list and clear the list.

Definition at line 617 of file Process.cpp.

◆ CubeStatistics()

Isis::Statistics* Isis::Process::CubeStatistics ( const unsigned  index)
inlineinherited

Get the Statistics object for all bands of a specified input cube.

Parameters
indexThe index of the input cube in InputCubes
Returns
Statistics* Collections of statistics gathered on all bands

Definition at line 293 of file Process.h.

References Isis::Process::p_cubeStats.

◆ DataHeader()

std::vector< char * > Isis::ProcessImport::DataHeader ( )
inherited

This method returns a pointer to the data header.

A data header is a block of non-image data at the beginning of each data block (for BSQ data blocks are bands). This is not included in the file header and does not include any record headers, such as line prefixes. In order to retrieve this data, the data header bytes must be set and the data header must be saved via SetDataHeaderBytes() and SaveDataHeader(), respectively. This method must be called only after StartProcess() has returned and before EndProcess() is called.

Returns
vector <char*> Vector of pointers to data headers for each block, if saved.
Exceptions
Isis::iException::Message"Data header was not saved. Use SaveDataHeader()."
See also
SetDataHeaderBytes()
SaveDataHeader()

Definition at line 807 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataHeader, Isis::ProcessImport::p_saveDataHeader, and Isis::IException::Programmer.

◆ DataHeaderBytes()

int Isis::ProcessImport::DataHeaderBytes ( ) const
inherited

This method returns the number of data header bytes.

Definition at line 705 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataHeaderBytes.

◆ DataPrefix()

std::vector< std::vector< char * > > Isis::ProcessImport::DataPrefix ( )
inherited

This method returns a pointer to the data prefix.

A data prefix is a block of non-image data at the beginning of each data record (for BSQ data records are lines). This is not included in the file header or the data header. In order to retrieve this data, the data prefix bytes must be set and the data prefix must be saved via SetDataPrefixBytes() and SaveDataPrefix(), respectively. This method must be called only after StartProcess() has returned and before EndProcess() is called.

Returns
vector <vector <char*> > Two-dimensional vector of pointers to data prefixes for each record, if saved.
Exceptions
Isis::iException::Message"Data prefix was not saved. Use SaveDataPrefix()."
See also
SetDataPrefixBytes()
SaveDataPrefix()

Definition at line 863 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPre, Isis::ProcessImport::p_saveDataPre, and Isis::IException::Programmer.

◆ DataPrefixBytes()

int Isis::ProcessImport::DataPrefixBytes ( ) const
inherited

This method returns the number of data prefix bytes.

Definition at line 721 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPreBytes.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ DataSuffix()

std::vector< std::vector< char * > > Isis::ProcessImport::DataSuffix ( )
inherited

This method returns a pointer to the data suffix.

A data suffix is a block of non-image data at the end of each data record (for BSQ data records are lines). This is not included in the file trailer or the data trailer. In order to retrieve this data, the data suffix bytes must be set and the data suffix must be saved via SetDataSuffixBytes() and SaveDataSuffix(), respectively. This method must be called only after StartProcess() has returned and before EndProcess() is called.

Returns
vector <vector <char*> > Two-dimensional vector of pointers to data suffixes for each record, if saved.
Exceptions
Isis::iException::Message"Data suffix was not saved. Use SaveDataSuffix()."
See also
SetDataSuffixBytes()
SaveDataSuffix()

Definition at line 891 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPost, Isis::ProcessImport::p_saveDataPost, and Isis::IException::Programmer.

◆ DataSuffixBytes()

int Isis::ProcessImport::DataSuffixBytes ( ) const
inherited

This method returns the number of data duffix bytes.

Definition at line 729 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPostBytes.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ DataTrailer()

std::vector< char * > Isis::ProcessImport::DataTrailer ( )
inherited

This method returns a pointer to the data trailer.

A data trailer is a block of non-image data at the end each data block (for BSQ data blocks are bands). This is not included in the file trailer and does not include any record trailers, such as line suffixes. In order to retrieve this data, the data trailer bytes must be set and the data trailer must be saved via SetDataTrailerBytes() and SaveDataTrailer(), respectively. This method must be called only after StartProcess() has returned and before EndProcess() is called.

Returns
vector <char*> Vector of pointers to data trailers for each block, if saved.
Exceptions
Isis::iException::Message"Data trailer was not saved. Use SaveDataTrailer()."
See also
SetDataTrailerBytes()
SaveDataTrailer()

Definition at line 835 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataTrailer, Isis::ProcessImport::p_saveDataTrailer, and Isis::IException::Programmer.

◆ DataTrailerBytes()

int Isis::ProcessImport::DataTrailerBytes ( ) const
inherited

This method returns the number of data trailer bytes.

Definition at line 713 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataTrailerBytes.

◆ EndProcess()

void Isis::ProcessImportPds::EndProcess ( )
virtual
Deprecated:
. Please use Finalize.

Reimplemented from Isis::Process.

Definition at line 59 of file ProcessImportPds.cpp.

◆ ExtractPdsProjection()

void Isis::ProcessImportPds::ExtractPdsProjection ( Isis::PvlToPvlTranslationManager pdsXlater)
private

Extract all possible PDS projection parameters from the PDS label.

Parameters
pdsXlater
Exceptions
Isis::iException::Message
History:
2007-04-12 Tracie Sucharski - Modified the projection translation tables to include additional versions of Longitude direction, latitude type and if the min or max longitude values is greater than 180, change longitude domain to 360. Read projection mults/offsets from def file so lat/lon values are correct.
History:
2007-07-12 Stuart Sides- Modified to handle units of meters on the pixel resolution
History:
2008-06-06 Tracie Sucharski, Added LineProjectionOffset2 for Magellan images.
History:
2008-06-09 Tracie Sucharski, Added MinimumLongitude2 and MaximumLongitude2 for Magellan images.

The input file does not have a longitude domain. We need to figure it out!

The current process is two-step. First, we use the longitude direction to swap into what should be the proper order of min,max longitude. Then, if the values are still misordered, we have a 180 domain projection. Try converting the minimum to 180 domain, which hopefully results in ordering the min,max properly. Only do this to the minimum because if they are out of order, then it must be something like 330-30 which needs to be -30-30.

pdsImageProjection.trn assumes EasternMost is the MINIMUM, which is PositiveWest. For a PositiveEast image this swap should occur. On a PositiveWest image this swap should not occur.

Definition at line 88 of file ProcessImportPds.cpp.

References Isis::PvlToPvlTranslationManager::InputHasKeyword(), Isis::PvlToPvlTranslationManager::InputKeyword(), Isis::TProjection::To180Domain(), Isis::toDouble(), Isis::toInt(), Isis::PvlToPvlTranslationManager::Translate(), and Isis::PvlKeyword::unit().

◆ FileHeader()

char * Isis::ProcessImport::FileHeader ( )
inherited

This method returns a pointer to the file header.

A file header is a block of non-image data at the beginning of the entire file. This does not include any section headers, such as band headers or line prefixes. In order to retrieve this data, the file header bytes must be set and the file header must be saved via SetFileHeaderBytes() and SaveFileHeader(), respectively. This method must be called only after StartProcess() has returned and before EndProcess() is called.

Returns
char* Pointer to file header, if saved.
Exceptions
Isis::iException::Message"File header was not saved. Use SaveFileHeader()."
See also
SetFileHeaderBytes()
SaveFileHeader()

Definition at line 753 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileHeader, Isis::ProcessImport::p_saveFileHeader, and Isis::IException::Programmer.

◆ FileHeaderBytes()

int Isis::ProcessImport::FileHeaderBytes ( ) const
inherited

This method returns the number of file header bytes.

Definition at line 688 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileHeaderBytes.

◆ FileTrailer()

char * Isis::ProcessImport::FileTrailer ( )
inherited

This method returns a pointer to the file trailer.

A file trailer is a block of non-image data at the end of the entire file. This does not include any section trailers, such as band trailers or line suffixes. In order to retrieve this data, the file trailer bytes must be set and the file trailer must be saved via SetFileTrailerBytes() and SaveFileTrailer(), respectively. This method must be called only after StartProcess() has returned and before EndProcess() is called.

Returns
char* Pointer to file trailer, if saved.
Exceptions
Isis::iException::Message"File trailer was not saved. Use SaveFileTrailer()."
See also
SetFileTrailerBytes()
SaveFileTrailer()

Definition at line 779 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileTrailer, Isis::ProcessImport::p_saveFileTrailer, and Isis::IException::Programmer.

◆ FileTrailerBytes()

int Isis::ProcessImport::FileTrailerBytes ( ) const
inherited

This method returns the number of file trailer bytes.

Definition at line 697 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileTrailerBytes.

◆ Finalize()

void Isis::ProcessImportPds::Finalize ( )
virtual

End the processing sequence and cleans up by closing cubes, freeing memory, etc.

Adds the OriginalLabel data to the end of the cube file, unless OmitOriginalLabel() has been called.

Reimplemented from Isis::Process.

Definition at line 312 of file ProcessImportPds.cpp.

◆ GetProjectionOffsetChange()

bool Isis::ProcessImportPds::GetProjectionOffsetChange ( )

Return whether the projection offsets have changed.

Definition at line 326 of file ProcessImportPds.cpp.

◆ GetProjectionOffsetGroup()

PvlGroup Isis::ProcessImportPds::GetProjectionOffsetGroup ( )

Return the projection offsets.

This will allow an app to log offset data.

Definition at line 334 of file ProcessImportPds.cpp.

◆ GetProjectionOffsetMults()

void Isis::ProcessImportPds::GetProjectionOffsetMults ( double &  xoff,
double &  yoff,
double &  xmult,
double &  ymult 
)
private

Read mults and offsets from a def file in order to calculate the upper left x/y.

Parameters
[out]xoff(double &) x offset
[out]yoff(double &) y offset
[out]xmult(double &) x multiplicative factor
[out]ymult(double &) y multiplicative factor
History:
2007-04-12 Tracie Sucharski - New Method

Definition at line 351 of file ProcessImportPds.cpp.

References Isis::PvlObject::findObject(), Isis::PvlObject::group(), and Isis::PvlObject::groups().

◆ IdentifySource()

void Isis::ProcessImportPds::IdentifySource ( Isis::Pvl inputLabel)
private

Identify the source of this file PDS or ISIS2.

Parameters
inputLabelThe label from the input file.

Definition at line 391 of file ProcessImportPds.cpp.

References Isis::PvlToPvlTranslationManager::InputHasKeyword().

◆ ImportTable()

Table & Isis::ProcessImportPds::ImportTable ( QString  pdsTableName)

This method will import the PDS table with the given name into an Isis Table object.

The table will be added to the cube file in the call to StartProcess().

Parameters
pdsTableNameName of the PDS table object to be imported.

Definition at line 428 of file ProcessImportPds.cpp.

References Isis::ImportPdsTable::getFormattedName(), and Isis::ImportPdsTable::importTable().

◆ InputFile()

QString Isis::ProcessImport::InputFile ( )
inherited

Sets the name of the input file to be read in the import StartProcess method and verifies its existance.

Parameters
fileThe name of the input file to import.
Exceptions
Isis::iException::Message"File does not exist."

Definition at line 2319 of file ProcessImport.cpp.

References Isis::ProcessImport::p_inFile, and Isis::IException::Programmer.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ IsIsis2()

bool Isis::ProcessImportPds::IsIsis2 ( )

Return true if ISIS2 cube, else return false.

Returns
(bool) returns true if pds file is an Isis2 file
History:
2007-04-12 Tracie Sucharski - New method

Definition at line 455 of file ProcessImportPds.cpp.

◆ IsVAXSpecial()

bool Isis::ProcessImport::IsVAXSpecial ( unsigned int *  vax,
VAXSpecialPixel  pix 
)
inherited

Determines if the VAX encoded pixel value is special or not.

Parameters
vaxA pointer to a VAX pixel
pixAn enumerated value indicating the VAX pixel type
Returns
bool Returns true if the bit pattern for the enumerated type matches that pointed to by vax. Returns false otherwise.

Definition at line 118 of file ProcessImport.cpp.

◆ Lines()

int Isis::ProcessImport::Lines ( )
inlineinherited

Returns the number of lines.

Returns
The number of lines

Definition at line 217 of file ProcessImport.h.

References Isis::ProcessImport::p_nl.

◆ MissionData()

QString Isis::Process::MissionData ( const QString &  mission,
const QString &  file,
bool  highestVersion = false 
)
inherited

This method reads the mission specific data directory from the user preference file, makes sure that mission is available in the Isis installation, and the attaches the provided input file to the directory in order to create a full file specification.

Parameters
missionName of the mission data directory
fileName of the file to attach to the end of the directory
highestVersionIf set to true the method will return the highest version number of the given file. Therefore, file must contain question marks such as "file???.dat". See the FileName class for more information on versioned files. Defaults to false.

Definition at line 768 of file Process.cpp.

References Isis::FileName::expanded(), Isis::FileName::fileExists(), Isis::PvlObject::findGroup(), and Isis::FileName::highestVersion().

◆ OmitOriginalLabel()

void Isis::ProcessImportPds::OmitOriginalLabel ( )

Prevents the Original Label blob from being written out to the end of the cube.

Definition at line 472 of file ProcessImportPds.cpp.

◆ Organization()

ProcessImport::Interleave Isis::ProcessImport::Organization ( ) const
inherited

Gets the organization of the input cube.

Definition at line 928 of file ProcessImport.cpp.

References Isis::ProcessImport::p_organization.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ PixelType()

Isis::PixelType Isis::ProcessImport::PixelType ( )
inlineinherited

Returns the pixel type.

Returns
The pixel type of input data

Definition at line 197 of file ProcessImport.h.

References Isis::ProcessImport::p_pixelType.

◆ ProcessBil()

void Isis::ProcessImport::ProcessBil ( void   functIsis::Buffer &out = NULL)
inherited

Function to process files stored as Band Interleaved by Line.

Parameters
functMethod that accepts Isis::Buffer as an input parameter, processes the image, and has no return value.
Exceptions
Isis::iException::Message"Cannot open input file."
Isis::iException::Message"Cannot read file. Position[]. Byte count[]"

Definition at line 1626 of file ProcessImport.cpp.

References Isis::Progress::CheckStatus(), Isis::EndianSwapper::Double(), Isis::FileName::expanded(), Isis::EndianSwapper::Float(), Isis::EndianSwapper::Int(), Isis::IException::Io, Isis::IsValidPixel(), Isis::Process::OutputCubes, Isis::ProcessImport::p_base, Isis::ProcessImport::p_byteOrder, Isis::ProcessImport::p_dataHeaderBytes, Isis::ProcessImport::p_dataPost, Isis::ProcessImport::p_dataPostBytes, Isis::ProcessImport::p_dataPre, Isis::ProcessImport::p_dataPreBytes, Isis::ProcessImport::p_fileHeader, Isis::ProcessImport::p_fileHeaderBytes, Isis::ProcessImport::p_fileTrailer, Isis::ProcessImport::p_fileTrailerBytes, Isis::ProcessImport::p_inFile, Isis::ProcessImport::p_mult, Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::ProcessImport::p_pixelType, Isis::Process::p_progress, Isis::ProcessImport::p_saveDataPost, Isis::ProcessImport::p_saveDataPre, Isis::ProcessImport::p_saveFileHeader, Isis::ProcessImport::p_saveFileTrailer, Isis::ProcessImport::p_suffixData, Isis::Progress::SetMaximumSteps(), Isis::EndianSwapper::ShortInt(), Isis::SizeOf(), Isis::ProcessImport::TestPixel(), Isis::toString(), Isis::EndianSwapper::Uint32_t(), Isis::EndianSwapper::UnsignedShortInt(), and Isis::ProcessImport::VAXConversion().

Referenced by Isis::ProcessImport::StartProcess().

◆ ProcessBip()

void Isis::ProcessImport::ProcessBip ( void   functIsis::Buffer &out = NULL)
inherited

Function to process files stored as Band Interleaved by Pixel.

Parameters
functMethod that accepts Isis::Buffer as an input parameter, processes the image, and has no return value.
Exceptions
Isis::iException::Message"Cannot open input file."
Isis::iException::Message"Cannot read file. Position[]. Byte count[]"

Definition at line 1871 of file ProcessImport.cpp.

References Isis::Progress::CheckStatus(), Isis::EndianSwapper::Double(), Isis::FileName::expanded(), Isis::EndianSwapper::Float(), Isis::EndianSwapper::Int(), Isis::IException::Io, Isis::IsValidPixel(), Isis::Process::OutputCubes, Isis::ProcessImport::p_base, Isis::ProcessImport::p_byteOrder, Isis::ProcessImport::p_dataHeaderBytes, Isis::ProcessImport::p_dataPost, Isis::ProcessImport::p_dataPostBytes, Isis::ProcessImport::p_dataPre, Isis::ProcessImport::p_dataPreBytes, Isis::ProcessImport::p_dataTrailer, Isis::ProcessImport::p_dataTrailerBytes, Isis::ProcessImport::p_fileHeader, Isis::ProcessImport::p_fileHeaderBytes, Isis::ProcessImport::p_fileTrailer, Isis::ProcessImport::p_fileTrailerBytes, Isis::ProcessImport::p_inFile, Isis::ProcessImport::p_mult, Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::ProcessImport::p_pixelType, Isis::Process::p_progress, Isis::ProcessImport::p_saveDataPost, Isis::ProcessImport::p_saveDataPre, Isis::ProcessImport::p_saveDataTrailer, Isis::ProcessImport::p_saveFileHeader, Isis::ProcessImport::p_saveFileTrailer, Isis::ProcessImport::p_suffixData, Isis::Progress::SetMaximumSteps(), Isis::EndianSwapper::ShortInt(), Isis::SizeOf(), Isis::ProcessImport::TestPixel(), Isis::toString(), Isis::EndianSwapper::Uint32_t(), Isis::EndianSwapper::UnsignedShortInt(), and Isis::ProcessImport::VAXConversion().

Referenced by Isis::ProcessImport::StartProcess().

◆ ProcessBsq()

void Isis::ProcessImport::ProcessBsq ( void   functIsis::Buffer &out = NULL)
inherited

Process the import data as a band sequential file.

Parameters
functMethod that accepts Isis::Buffer as an input parameter, processes the image, and has no return value.
Exceptions
Isis::iException::Message"Cannot open input file."
Isis::iException::Message"Cannot read file. Position[]. Byte count[]"

Definition at line 1363 of file ProcessImport.cpp.

References Isis::Progress::CheckStatus(), Isis::EndianSwapper::Double(), Isis::FileName::expanded(), Isis::EndianSwapper::Float(), Isis::EndianSwapper::Int(), Isis::IException::Io, Isis::IsValidPixel(), Isis::Process::OutputCubes, Isis::ProcessImport::p_base, Isis::ProcessImport::p_byteOrder, Isis::ProcessImport::p_dataHeader, Isis::ProcessImport::p_dataHeaderBytes, Isis::ProcessImport::p_dataPost, Isis::ProcessImport::p_dataPostBytes, Isis::ProcessImport::p_dataPre, Isis::ProcessImport::p_dataPreBytes, Isis::ProcessImport::p_dataTrailer, Isis::ProcessImport::p_dataTrailerBytes, Isis::ProcessImport::p_fileHeader, Isis::ProcessImport::p_fileHeaderBytes, Isis::ProcessImport::p_fileTrailer, Isis::ProcessImport::p_fileTrailerBytes, Isis::ProcessImport::p_inFile, Isis::ProcessImport::p_mult, Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::ProcessImport::p_pixelType, Isis::Process::p_progress, Isis::ProcessImport::p_saveDataHeader, Isis::ProcessImport::p_saveDataPost, Isis::ProcessImport::p_saveDataPre, Isis::ProcessImport::p_saveDataTrailer, Isis::ProcessImport::p_saveFileHeader, Isis::ProcessImport::p_saveFileTrailer, Isis::ProcessImport::p_suffixData, Isis::Progress::SetMaximumSteps(), Isis::EndianSwapper::ShortInt(), Isis::SizeOf(), Isis::ProcessImport::TestPixel(), Isis::toString(), Isis::EndianSwapper::Uint32_t(), Isis::EndianSwapper::UnsignedShortInt(), and Isis::ProcessImport::VAXConversion().

Referenced by Isis::ProcessImport::StartProcess().

◆ ProcessDataFilePointer()

void Isis::ProcessImportPds::ProcessDataFilePointer ( Isis::PvlToPvlTranslationManager pdsXlater,
const bool &  calcOffsetOnly 
)
private

Handles the DataFilePointer keyword, aka ^QUBE or ^IMAGE.

There are two side effects of this method, those are SetInputFile and SetFileHeaderBytes, both are called during this method. Will not do SetInputFile if calcOffsetOnly is true

Definition at line 483 of file ProcessImportPds.cpp.

References Isis::FileName::expanded(), Isis::FileName::fileExists(), Isis::PvlToPvlTranslationManager::InputKeyword(), Isis::FileName::name(), Isis::FileName::path(), Isis::PvlKeyword::size(), Isis::toInt(), Isis::IString::ToInteger(), Isis::PvlToPvlTranslationManager::Translate(), and Isis::PvlKeyword::unit().

◆ ProcessJp2()

void Isis::ProcessImport::ProcessJp2 ( void   functIsis::Buffer &out = NULL)
inherited

Function to process files containing compressed JPEG2000 data (which is always BSQ but is processed as BIL with one or more lines stored sequentially for each band).

There is no need to set up an Isis::EndianSwapper because JP2 data is always assumed to be in MSB format. The Kakadu library does an automatic byte swap for the current architecture.

Parameters
functMethod that accepts Isis::Buffer as an input parameter, processes the image, and has no return value.
Exceptions
Isis::iException::Message"Cannot open input file."
Isis::iException::Message"Cannot read file. Position[]. Byte count[]"

Definition at line 2123 of file ProcessImport.cpp.

References Isis::Progress::CheckStatus(), Isis::IsValidPixel(), Isis::JP2Decoder::OpenFile(), Isis::Process::OutputCubes, Isis::ProcessImport::p_base, Isis::ProcessImport::p_dataPost, Isis::ProcessImport::p_dataPostBytes, Isis::ProcessImport::p_dataPre, Isis::ProcessImport::p_dataPreBytes, Isis::ProcessImport::p_inFile, Isis::ProcessImport::p_mult, Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::ProcessImport::p_pixelType, Isis::Process::p_progress, Isis::ProcessImport::p_saveDataPost, Isis::ProcessImport::p_saveDataPre, Isis::JP2Decoder::Read(), Isis::Progress::SetMaximumSteps(), Isis::SizeOf(), and Isis::ProcessImport::TestPixel().

Referenced by Isis::ProcessImport::StartProcess().

◆ ProcessLabel()

void Isis::ProcessImportPds::ProcessLabel ( const QString &  pdsDataFile,
PdsFileType  allowedTypes 
)

Load the PDS labels after determining what type of data file was provided.

This code used to be part of the SetPdsFile method, but had to be moved to a separate method in order to allow calling applications to intercept the PDS labels before this method loaded them. This was necessary to fix problems in PDS labels such as adding missing keywords.

Parameters
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter can be an empty QString, in which case the label information will be searched to find the data file name or the data will be assumed to be after the label information.
Exceptions
Isis::iException::Message

Definition at line 595 of file ProcessImportPds.cpp.

References Isis::FileName::expanded(), Isis::FileName::fileExists(), Isis::PvlObject::findKeyword(), Isis::PvlObject::findObject(), Isis::PvlToPvlTranslationManager::InputHasKeyword(), Isis::FileName::path(), and Isis::PvlToPvlTranslationManager::Translate().

◆ ProcessPdsCombinedSpectrumLabel()

void Isis::ProcessImportPds::ProcessPdsCombinedSpectrumLabel ( const QString &  pdsDataFile)
private

Process the PDS label of type CombinedSpectrum.

Parameters
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter can be an empty QString, in which case the label information will be searched to find the data file name or the data will be assumed to be after the label information.
Exceptions
Isis::iException::Message

Definition at line 761 of file ProcessImportPds.cpp.

References Isis::FileName::expanded(), Isis::toDouble(), Isis::toInt(), and Isis::PvlToPvlTranslationManager::Translate().

◆ ProcessPdsImageLabel()

void Isis::ProcessImportPds::ProcessPdsImageLabel ( const QString &  pdsDataFile)
private

Process the PDS label of type IMAGE.

Parameters
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter can be an empty QString, in which case the label information will be searched to find the data file name or the data will be assumed to be after the label information.
Exceptions
Isis::iException::Message

Definition at line 1034 of file ProcessImportPds.cpp.

References Isis::FileName::expanded(), Isis::toDouble(), Isis::toInt(), and Isis::PvlToPvlTranslationManager::Translate().

◆ ProcessPdsM3Label()

void Isis::ProcessImportPds::ProcessPdsM3Label ( const QString &  pdsDataFile,
PdsFileType  fileType 
)
private

Process Chandrayaan M3 PDS label.

Parameters
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter can be an empty QString, in which case the label information will be searched to find the data file name or the data will be assumed to be after the label information.
Exceptions
Isis::iException::Message

Definition at line 1174 of file ProcessImportPds.cpp.

References Isis::FileName::expanded(), Isis::toDouble(), Isis::toInt(), and Isis::PvlToPvlTranslationManager::Translate().

◆ ProcessPdsQubeLabel()

void Isis::ProcessImportPds::ProcessPdsQubeLabel ( const QString &  pdsDataFile,
const QString &  transFile 
)
private

Process the PDS label of type QUBE or SPECTRALQUBE.

Parameters
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter can be an empty QString, in which case the label information will be searched to find the data file name or the data will be assumed to be after the label information.
transFile
Exceptions
Isis::iException::Message
History:
2010-12-09 Sharmila Prasad - Set default offset to be 1 for detatched label and offset not set

Definition at line 855 of file ProcessImportPds.cpp.

References Isis::FileName::expanded(), Isis::PvlToPvlTranslationManager::InputHasKeyword(), Isis::PvlToPvlTranslationManager::InputKeyword(), Isis::PvlKeyword::size(), Isis::toDouble(), Isis::toInt(), and Isis::PvlToPvlTranslationManager::Translate().

◆ ProcessPixelBitandType()

void Isis::ProcessImportPds::ProcessPixelBitandType ( Isis::PvlToPvlTranslationManager pdsXlater)
private

Handles PixelType and BitsPerPixel Calls SetPixelType with the correct values.

Definition at line 1120 of file ProcessImportPds.cpp.

References Isis::toInt(), Isis::toString(), and Isis::PvlToPvlTranslationManager::Translate().

◆ ProcessSpecialPixels()

void Isis::ProcessImportPds::ProcessSpecialPixels ( Isis::PvlToPvlTranslationManager pdsXlater,
const bool &  isQube 
)
private

Handles all special pixel setting, ultimately, calls SetSpecialValues.

Definition at line 1276 of file ProcessImportPds.cpp.

References Isis::His, Isis::Hrs, Isis::PvlToPvlTranslationManager::InputHasKeyword(), Isis::Lis, Isis::Lrs, Isis::toDouble(), and Isis::PvlToPvlTranslationManager::Translate().

◆ Progress()

◆ PropagateHistory()

void Isis::Process::PropagateHistory ( const bool  prop)
inherited

This method allows the programmer to propagate history to the output cube (default is true)

Parameters
propFlag indicating if history is to be propagated to output cubes.

Definition at line 737 of file Process.cpp.

Referenced by Isis::ProcessMapMosaic::RingsSetOutputCube(), and Isis::ProcessMapMosaic::SetOutputCube().

◆ PropagateLabels() [1/2]

void Isis::Process::PropagateLabels ( const bool  prop)
inherited

This method allows the programmer to turn on/off the propagation of labels from the 1st input cube to any of the output cubes.

By default, propagation occurs automatically in the Process class when a call to either of the SetOutputCube methods is invoked. If the program * requires no propagation then utilize this method. This method can be invoked between successive calls of SetOutputCube so that some cube will have labels propagated while others will not.

Parameters
propFlag indicating if labels are be propagated to output cubes.

Definition at line 639 of file Process.cpp.

Referenced by Isis::ProcessMapMosaic::RingsSetOutputCube(), and Isis::ProcessMapMosaic::SetOutputCube().

◆ PropagateLabels() [2/2]

void Isis::Process::PropagateLabels ( const QString &  cube)
inherited

This method allows the programmer to propagate labels from a specific secondary cube.

Parameters
cubeIString containing the name of the cube containing the labels to propagate.

Definition at line 650 of file Process.cpp.

References Isis::PvlObject::addGroup(), Isis::PvlObject::addObject(), Isis::PvlObject::findObject(), Isis::PvlObject::group(), Isis::PvlObject::groups(), and Isis::PvlObject::hasObject().

◆ PropagateOriginalLabel()

void Isis::Process::PropagateOriginalLabel ( const bool  prop)
inherited

This method allows the programmer to propagate original labels to the output cube (default is true)

Parameters
propFlag indicating if original labels is to be propagated to output cubes.

Definition at line 748 of file Process.cpp.

Referenced by Isis::ProcessMapMosaic::RingsSetOutputCube(), and Isis::ProcessMapMosaic::SetOutputCube().

◆ PropagatePolygons()

void Isis::Process::PropagatePolygons ( const bool  prop)
inherited

This method allows the programmer to propagate input blobs to the output cube (default is true)

Parameters
propFlag indicating if input blobs are to be propagated to output cubes.

Definition at line 727 of file Process.cpp.

Referenced by Isis::ProcessMapMosaic::RingsSetOutputCube(), and Isis::ProcessMapMosaic::SetOutputCube().

◆ PropagateTables() [1/2]

void Isis::Process::PropagateTables ( const bool  prop)
inherited

This method allows the programmer to propagate input tables to the output cube (default is true)

Parameters
propFlag indicating if input tables are to be propagated to output cubes.

Definition at line 678 of file Process.cpp.

Referenced by Isis::ProcessMapMosaic::RingsSetOutputCube(), and Isis::ProcessMapMosaic::SetOutputCube().

◆ PropagateTables() [2/2]

void Isis::Process::PropagateTables ( const QString &  fromName,
const QList< QString > &  tableNames = QList<QString>() 
)
inherited

Propagate the tables from the cube with the given filename to the output cube.

This is done at the time this method is called, not during normal processing. The names of the tables to propagate can be provided through the second paramter, by specifing a list of table names. Not providing any list (or providing an empty list) will propagate all tables.

Parameters
fromNameQString of the name of the cube containing the tables to propagate.
tableNamesList of QStrings of the names of the tables to propagate; default is empty, which indicates that all tables will be propagated.
History:
2016-11-30 Ian Humphrey - Added tableNames parameter so that only specified tables will be propagated when calling this method. Note that a default of an empty QList is used to propagate all tables. References #4433.

Definition at line 698 of file Process.cpp.

References Isis::Cube::close(), Isis::Cube::label(), Isis::PvlObject::object(), Isis::PvlObject::objects(), Isis::Cube::open(), and Isis::Cube::read().

◆ Samples()

int Isis::ProcessImport::Samples ( )
inlineinherited

Returns the number of samples.

Returns
The number of samples

Definition at line 208 of file ProcessImport.h.

References Isis::ProcessImport::p_ns.

◆ SaveDataHeader()

void Isis::ProcessImport::SaveDataHeader ( )
inherited

This method marks the data block headers to be saved.

A data header is a block of non-image data at the beginning of each data block (for BSQ data blocks are bands). This is not included in the file header and does not include any record headers, such as line prefixes. Each of the header blocks will be saved inside StartProcess(). It must be called after setting the size with SetDataHeaderBytes() and before StartProcess() is called. This data will only be available via DataHeader() after StartProcess() has returned and before EndProcess() is called.

Exceptions
Isis::iException::Message"Data header bytes equals 0. There is nothing to save. Use SetDataHeaderBytes() first."
See also
SetDataHeaderBytes()
DataHeader()

Definition at line 588 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataHeaderBytes, Isis::ProcessImport::p_saveDataHeader, and Isis::IException::Programmer.

◆ SaveDataPrefix()

void Isis::ProcessImport::SaveDataPrefix ( )
inherited

This method marks the data prefix to be saved.

A data prefix is a block of non-image data at the beginning of each data record (for BSQ data records are lines). This is not included in the file header or the data header. Each of the data prefixes will be saved inside StartProcess(). It must be called after setting the size with SetDataPrefixBytes() and before StartProcess() is called. This data will only be available via DataPrefix() after StartProcess() has returned and before EndProcess() is called.

Exceptions
Isis::iException::Message"Data prefix bytes equals 0. There is nothing to save. Use SetDataPrefixBytes() first."
See also
SetDataPrefixBytes()
DataPrefix()

Definition at line 645 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPreBytes, Isis::ProcessImport::p_saveDataPre, and Isis::IException::Programmer.

◆ SaveDataSuffix()

void Isis::ProcessImport::SaveDataSuffix ( )
inherited

This method marks the data suffix to be saved.

A data suffix is a block of non-image data at the end of each data record (for BSQ data records are lines). This is not included in the file trailer or the data trailer. Each of the data suffixes will be saved inside StartProcess(). It must be called after setting the size with SetDataPrefixBytes() and before StartProcess() is called. This data will only be available via DataPrefix() after StartProcess() has returned and before EndProcess() is called.

Exceptions
Isis::iException::Message"Data suffix bytes equals 0. There is nothing to save. Use SetDataSuffixBytes() first."
See also
SetDataSuffixBytes()
DataSuffix()

Definition at line 674 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPostBytes, Isis::ProcessImport::p_saveDataPost, and Isis::IException::Programmer.

◆ SaveDataTrailer()

void Isis::ProcessImport::SaveDataTrailer ( )
inherited

This method marks the data block trailers to be saved.

A data trailer is a block of non-image data at the end of each data block (for BSQ data blocks are bands). This is not included in the file trailer and does not include any record trailers, such as line suffixes. Each of the trailer blocks will be saved inside StartProcess(). It must be called after setting the size with SetDataTrailerBytes() and before StartProcess() is called. This data will only be available via DataTrailer() after StartProcess() has returned and before EndProcess() is called.

Exceptions
Isis::iException::Message"Data trailer bytes equals 0. There is nothing to save. Use SetDataTrailerBytes() first."
See also
SetDataTrailerBytes()
DataTrailer()

Definition at line 617 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataTrailerBytes, Isis::ProcessImport::p_saveDataTrailer, and Isis::IException::Programmer.

◆ SaveFileHeader()

void Isis::ProcessImport::SaveFileHeader ( )
inherited

This method marks the file header to be saved.

A file header is a block of non-image data at the beginning of the entire file. This does not include any section headers, such as band headers or line prefixes. The file header will be saved inside StartProcess(). It must be called after setting the size with SetFileHeaderBytes() and before StartProcess() is called. This data will only be available via FileHeader() after StartProcess() has returned and before EndProcess() is called.

Exceptions
Isis::iException::Message"File header bytes equals 0. There is nothing to save. Use SetFileHeaderBytes() first."
See also
SetFileHeaderBytes()
FileHeader()

Definition at line 532 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileHeaderBytes, Isis::ProcessImport::p_saveFileHeader, and Isis::IException::Programmer.

◆ SaveFileTrailer()

void Isis::ProcessImport::SaveFileTrailer ( )
inherited

This method marks the file trailer to be saved.

A file trailer is a block of non-image data at the end of the entire file. This does not include any section trailers, such as band trailers or line suffixes. The file trailer will be saved inside StartProcess(). It must be called after setting the size with SetFileTrailerBytes() and before StartProcess() is called. This data will only be available via FileTrailer() after StartProcess() has returned and before EndProcess() is called.

Exceptions
Isis::iException::Message"File trailer bytes equals 0. There is nothing to save. Use SetFileTrailerBytes() first."
See also
SetFileTrailerBytes()
FileTrailer()

Definition at line 559 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileTrailerBytes, Isis::ProcessImport::p_saveFileTrailer, and Isis::IException::Programmer.

◆ SetAttributes()

void Isis::ProcessImport::SetAttributes ( CubeAttributeOutput att)
inherited

Given a CubeAttributeOutput object, set min/max to propagate if propagating min/max attributes was requested and set the pixel type to propagate if pixel type propagation was requested.

Parameters
parameterThe parameter name that holds the output file name.
Exceptions
Isis::iException::Message"Unsupported pixel type."

Definition at line 1198 of file ProcessImport.cpp.

References Isis::ProcessImport::p_base, Isis::ProcessImport::p_mult, Isis::ProcessImport::p_pixelType, Isis::PixelTypeName(), Isis::IException::Programmer, Isis::CubeAttributeOutput::propagateMinimumMaximum(), Isis::CubeAttributeOutput::propagatePixelType(), Isis::CubeAttributeOutput::setMaximum(), Isis::CubeAttributeOutput::setMinimum(), and Isis::CubeAttributeOutput::setPixelType().

Referenced by Isis::ProcessImport::SetOutputCube().

◆ SetBase() [1/2]

void Isis::ProcessImport::SetBase ( const double  base)
inherited

Sets the core base of the input cube.

Defaults to zero if not invoked.

Parameters
baseCore base

Definition at line 938 of file ProcessImport.cpp.

References Isis::ProcessImport::p_base.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ SetBase() [2/2]

void Isis::ProcessImport::SetBase ( const std::vector< double >  base)
inherited

Sets band dependent core base.

Parameters
baseA vector containing the base for each band.

Definition at line 949 of file ProcessImport.cpp.

References Isis::ProcessImport::p_base.

◆ SetByteOrder()

void Isis::ProcessImport::SetByteOrder ( const Isis::ByteOrder  order)
inherited

Sets the byte order of the input file.

This must be invoked prior to SetOutputCube.

Parameters
orderThe enumerated byte order Isis::Lsb or Isis::Msb

Definition at line 324 of file ProcessImport.cpp.

References Isis::ProcessImport::p_byteOrder.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ SetDataHeaderBytes()

void Isis::ProcessImport::SetDataHeaderBytes ( const int  bytes)
inherited

This method sets the number of bytes in the header of each datablock of a file.

A data header is a block of non-image data at the beginning of each data block (for BSQ data blocks are bands). This is not included in the file header and does not include any record headers, such as line prefixes. It must be called before StartProcess(). This data will only be available if saved via SaveDataHeader() and may be accessed via DataHeader() after StartProcess() has returned and before EndProcess() is called. If not invoked the default is 0.

Parameters
bytesNumber of bytes
Exceptions
Isis::iException::Message"Illegal data header size." (when bytes < 0)
See also
SaveDataHeader()
DataHeader()

Definition at line 408 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataHeaderBytes, Isis::IException::Programmer, and Isis::toString().

◆ SetDataPrefixBytes()

void Isis::ProcessImport::SetDataPrefixBytes ( const int  bytes)
inherited

This method sets the number of bytes at the beginning of each data record of a file.

A data prefix is a block of non-image data at the beginning of each data record (for BSQ data records are lines). This is not included in the file header or the data header. It must be called before StartProcess(). This data will only be available if saved via SaveDataPrefix() and may be accessed via DataPrefix() after StartProcess() has returned and before EndProcess() is called. If not invoked the default is 0.

Parameters
bytesNumber of bytes
Exceptions
Isis::iException::Message"Illegal data prefix size." (when bytes < 0)
See also
SaveDataPrefix()
DataPrefix()

Definition at line 473 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPreBytes, Isis::IException::Programmer, and Isis::toString().

◆ SetDataSuffixBytes()

void Isis::ProcessImport::SetDataSuffixBytes ( const int  bytes)
inherited

This method sets the number of bytes at the end of each data record of a file.

A data suffix is a block of non-image data at the end of each data record (for BSQ data records are lines). This is not included in the file trailer or the data trailer. It must be called before StartProcess(). This data will only be available if saved via SaveDataSuffix() and may be accessed via DataSuffix() after StartProcess() has returned and before EndProcess() is called. If not invoked the default is 0.

Parameters
bytesNumber of bytes
Exceptions
Isis::iException::Message"Illegal data suffix size." (when bytes < 0)
See also
SaveDataSuffix()
DataSuffix()

Definition at line 503 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataPostBytes, Isis::IException::Programmer, and Isis::toString().

◆ SetDataTrailerBytes()

void Isis::ProcessImport::SetDataTrailerBytes ( const int  bytes)
inherited

This method sets the number of bytes in the trailer of each datablock of a file.

A data trailer is a block of non-image data at the end of each data block (for BSQ data blocks are bands). This is not included in the file trailer and does not include any record trailers, such as line suffixes. It must be called before StartProcess(). This data will only be available if saved via SaveDataTrailer() and may be accessed via DataTrailer() after StartProcess() has returned and before EndProcess() is called. If not invoked the default is 0.

Parameters
bytesNumber of bytes
Exceptions
Isis::iException::Message"Illegal data trailer size." (when bytes < 0)
See also
SaveDataTrailer()
DataTrailer()

Definition at line 443 of file ProcessImport.cpp.

References Isis::ProcessImport::p_dataTrailerBytes, Isis::IException::Programmer, and Isis::toString().

◆ SetDimensions()

void Isis::ProcessImport::SetDimensions ( const int  ns,
const int  nl,
const int  nb 
)
inherited

Sets the physical size of the input cube.

This must be invoked prior to setOutputCube.

Parameters
nsNumber of samples
nlNumber of lines
nbNumber of bands
Exceptions
Isis::iException::Message"Illegal dimension."

Definition at line 304 of file ProcessImport.cpp.

References Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::IException::Programmer, and Isis::toString().

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ SetFileHeaderBytes()

void Isis::ProcessImport::SetFileHeaderBytes ( const int  bytes)
inherited

This method sets the number of bytes in the header of a file.

The file header is a block of non-image data at the beginning of the entire file. This does not include any section headers, such as band headers or line prefixes. Typically it is used to delineate the boundary of the binary or ascii labels. It must be called before StartProcess(). This data will only be available if saved via SaveFileHeader() and may be accessed via FileHeader() after StartProcess() has returned and before EndProcess() is called. If not invoked the default is 0.

Parameters
bytesNumber of bytes
Exceptions
Isis::iException::Message"Illegal file header size." (when bytes < 0)
See also
SaveFileHeader()
FileHeader()

Definition at line 349 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileHeaderBytes, Isis::IException::Programmer, and Isis::toString().

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ SetFileTrailerBytes()

void Isis::ProcessImport::SetFileTrailerBytes ( const int  bytes)
inherited

This method sets the number of bytes in the trailer of a file.

The trailer is a block of non-image data at the end of the entire file. This does not include any section trailers, such as band trailers or line suffixes. It must be called before StartProcess(). This data will only be available if saved via SaveFileTrailer() and may be accessed via FileTrailer() after StartProcess() has returned and before EndProcess() is called. If not invoked the default is 0.

Parameters
bytesNumber of bytes
Exceptions
Isis::iException::Message"Illegal file trailer size." (when bytes < 0)
See also
SaveFileTrailer()
FileTrailer()
History:
2008-08-12 Jeannie Walldren, Method created

Definition at line 379 of file ProcessImport.cpp.

References Isis::ProcessImport::p_fileTrailerBytes, Isis::IException::Programmer, and Isis::toString().

◆ SetHIS()

void Isis::ProcessImport::SetHIS ( const double  his_min,
const double  his_max 
)
inherited

Sets the range that will be considered Isis::Null.

Parameters
his_minThe double precision value used to identify the min range of his pixels in the image being imported.
his_maxThe double precision value used to identify the max range of his pixels in the image being imported.

Definition at line 1082 of file ProcessImport.cpp.

References Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::p_his_max, and Isis::ProcessImport::p_his_min.

Referenced by Isis::ProcessImport::ProcessImport(), and Isis::ProcessImport::SetSpecialValues().

◆ SetHRS()

void Isis::ProcessImport::SetHRS ( const double  hrs_min,
const double  hrs_max 
)
inherited

Sets the range that will be considered Isis::Null.

Parameters
hrs_minThe double precision value used to identify the min range of hrs pixels in the image being imported.
hrs_maxThe double precision value used to identify the max range of hrs pixels in the image being imported.

Definition at line 1065 of file ProcessImport.cpp.

References Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::p_hrs_max, and Isis::ProcessImport::p_hrs_min.

Referenced by Isis::ProcessImport::ProcessImport(), and Isis::ProcessImport::SetSpecialValues().

◆ SetInputCube() [1/3]

Isis::Cube * Isis::Process::SetInputCube ( const QString &  fname,
const Isis::CubeAttributeInput att,
int  requirements = 0 
)
virtualinherited

Opens an input cube specified by the programmer and verifies requirements are met.

Parameters
fnameProgrammer specified work file. For example, "myfile.cub".
attThe cube attributes to use when opening the input cube.
requirementsRequirements to check that the input cube meets. See CheckRequirements().
Returns
Cube*
Exceptions
Isis::iException::Message

Reimplemented in Isis::ProcessByBrick.

Definition at line 66 of file Process.cpp.

References Isis::CubeAttributeInput::bands(), Isis::Cube::open(), and Isis::Cube::setVirtualBands().

◆ SetInputCube() [2/3]

Isis::Cube * Isis::Process::SetInputCube ( const QString &  parameter,
const int  requirements = 0 
)
virtualinherited

Opens an input cube specified by the user and verifies requirements are met.

Returns
Cube*
Parameters
parameterUser parameter to obtain file to open. Typically, the value is "FROM". For example, the user can specify on the command line FROM=myfile.cub and this method will attempt to open the cube "myfile.cub" if the parameter was set to "FROM".
requirementsRequirements to check that the input cube meets. See CheckRequirements().
Exceptions
Isis::iException::Message

Reimplemented in Isis::ProcessBySample, Isis::ProcessByBrick, Isis::ProcessBySpectra, and Isis::ProcessByLine.

Definition at line 136 of file Process.cpp.

Referenced by Isis::ImageExporter::addChannel(), Isis::JigsawRunWidget::on_JigsawAcceptButton_clicked(), Isis::FileTool::saveAsEnlargedCube(), and Isis::ProcessGroundPolygons::SetStatCubes().

◆ SetInputCube() [3/3]

void Isis::Process::SetInputCube ( Isis::Cube inCube,
int  requirements = 0 
)
virtualinherited

Set the InputCube vector to an opened Cube which was dynamically allocated.

This is used if there already exists a valid opened cube

Author
Sharmila Prasad (5/7/2011)
Parameters
inCube- Pointer to input Cube
requirementsRequirements to check that the input cube meets. See CheckRequirements().

Definition at line 107 of file Process.cpp.

References Isis::Cube::isOpen().

◆ SetInputFile()

void Isis::ProcessImport::SetInputFile ( const QString &  file)
inherited

Sets the name of the input file to be read in the import StartProcess method and verifies its existance.

Parameters
fileThe name of the input file to import.
Exceptions
Isis::iException::Message"File does not exist."

Definition at line 2302 of file ProcessImport.cpp.

References Isis::ProcessImport::p_inFile, and Isis::IException::User.

Referenced by Isis::ProcessImportFits::setFitsFile().

◆ SetLIS()

void Isis::ProcessImport::SetLIS ( const double  lis_min,
const double  lis_max 
)
inherited

Sets the range that will be considered Isis::Null.

Parameters
lis_minThe double precision value used to identify the min range of lis pixels in the image being imported.
lis_maxThe double precision value used to identify the max range of lis pixels in the image being imported.

Definition at line 1048 of file ProcessImport.cpp.

References Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::p_lis_max, and Isis::ProcessImport::p_lis_min.

Referenced by Isis::ProcessImport::ProcessImport(), and Isis::ProcessImport::SetSpecialValues().

◆ SetLRS()

void Isis::ProcessImport::SetLRS ( const double  lrs_min,
const double  lrs_max 
)
inherited

Sets the range that will be considered Isis::Null.

Parameters
lrs_minThe double precision value used to identify the min range of lrs pixels in the image being imported.
lrs_maxThe double precision value used to identify the max range of lrs pixels in the image being imported.

Definition at line 1031 of file ProcessImport.cpp.

References Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::p_lrs_max, and Isis::ProcessImport::p_lrs_min.

Referenced by Isis::ProcessImport::ProcessImport(), and Isis::ProcessImport::SetSpecialValues().

◆ SetMultiplier() [1/2]

void Isis::ProcessImport::SetMultiplier ( const double  mult)
inherited

Sets the core multiplier of the input cube.

Defaults to one if not invoked.

Parameters
multCore base

Definition at line 959 of file ProcessImport.cpp.

References Isis::ProcessImport::p_mult.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ SetMultiplier() [2/2]

void Isis::ProcessImport::SetMultiplier ( const std::vector< double >  mult)
inherited

Sets band dependent core multiplier.

Parameters
multA vector containing the multiplier for each band.

Definition at line 970 of file ProcessImport.cpp.

References Isis::ProcessImport::p_mult.

◆ SetNull()

void Isis::ProcessImport::SetNull ( const double  null_min,
const double  null_max 
)
inherited

Sets the range that will be considered Isis::Null.

Parameters
null_minThe double precision value used to identify the min range of null pixels in the image being imported.
null_maxThe double precision value used to identify the max range of null pixels in the image being imported.

Definition at line 1014 of file ProcessImport.cpp.

References Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::p_null_max, and Isis::ProcessImport::p_null_min.

Referenced by Isis::ProcessImport::ProcessImport(), and Isis::ProcessImport::SetSpecialValues().

◆ SetOrganization()

void Isis::ProcessImport::SetOrganization ( const ProcessImport::Interleave  org)
inherited

Sets the organization of the input cube.

If not invoked it is assumed Isis::Import::Bsq.

Parameters
orgThe enumerated organizations either Isis::Import::Bsq Isis::Import::Bil or Isis::Import::Bip

Definition at line 907 of file ProcessImport.cpp.

References Isis::ProcessImport::p_organization.

◆ SetOutputCube() [1/5]

◆ SetOutputCube() [2/5]

Isis::Cube * Isis::ProcessImport::SetOutputCube ( const QString &  fname,
Isis::CubeAttributeOutput att 
)
virtualinherited

Create the output file.

Note that all the appropiate calls to at least SetDimensions should be invoked prior to calling this method.

Parameters
fnameThe output file name.
attAn output cube attribute to define the characteristics of the output cube.
Returns
Isis::Cube Output cube.
Exceptions
Isis::iException::Message"File is not in a supported organization."

Definition at line 1294 of file ProcessImport.cpp.

References Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::ProcessImport::SetAttributes(), and Isis::Process::SetOutputCube().

◆ SetOutputCube() [3/5]

Isis::Cube * Isis::ProcessImport::SetOutputCube ( const QString &  parameter)
virtualinherited

Create the output file.

Note that all the appropriate calls to at least SetDimensions and SetPixelType should be made prior to calling this method.

Parameters
parameterThe parameter name that holds the output file name.
Returns
Isis::Cube Output cube.
Exceptions
Isis::iException::Message"Unsupported pixel type."

Reimplemented from Isis::Process.

Definition at line 1261 of file ProcessImport.cpp.

References IsisAml::GetOutputAttribute(), Isis::Application::GetUserInterface(), Isis::ProcessImport::p_nb, Isis::ProcessImport::p_nl, Isis::ProcessImport::p_ns, Isis::ProcessImport::SetAttributes(), and Isis::Process::SetOutputCube().

◆ SetOutputCube() [4/5]

Isis::Cube * Isis::Process::SetOutputCube ( const QString &  parameter,
const int  ns,
const int  nl,
const int  nb = 1 
)
virtualinherited

Allocates a user specified output cube whose size is specified by the programmer.

Returns
Cube*
Parameters
parameterUser specified output file. For example, "TO" is a popular user parameter. If the user specified TO=output.cub, then this routine would allocate the file output.cub with size specified by the first opened input cube. The output pixel type will be propagated from the first loaded input cube or will use the value in the application XML file for pixelType.
nsNumber of samples to allocate
nlNumber of lines to allocate
nbNumber of bands to allocate
Exceptions
Isis::iException::Message

Definition at line 229 of file Process.cpp.

◆ SetOutputCube() [5/5]

Isis::Cube * Isis::ProcessImport::SetOutputCube ( const QString &  parameter,
UserInterface ui 
)
inherited

◆ SetOutputCubeStretch() [1/2]

Isis::Cube * Isis::Process::SetOutputCubeStretch ( const QString &  parameter,
const int  ns,
const int  nl,
const int  nb = 1,
UserInterface ui = nullptr 
)
virtualinherited

Allocates a user specified output cube whose size is specified by the programmer.

Returns
Cube*
Parameters
parameterUser specified output file. For example, "TO" is a popular user parameter. If the user specified TO=output.cub, then this routine would allocate the file output.cub with size specified by the first opened input cube. The output pixel type will be propagated from the first loaded input cube or will use the value in the application XML file for pixelType.
nsNumber of samples to allocate
nlNumber of lines to allocate
nbNumber of bands to allocate
uiA user interface used to get the attributes needed. If null, the user interface will be obtained from the application.
Exceptions
Isis::iException::Message

Definition at line 270 of file Process.cpp.

References IsisAml::GetFileName(), and IsisAml::GetOutputAttribute().

◆ SetOutputCubeStretch() [2/2]

Isis::Cube * Isis::Process::SetOutputCubeStretch ( const QString &  parameter,
UserInterface ui = nullptr 
)
virtualinherited

Allocates a user-specified output cube whose size matches the first input cube.

Returns
Cube*
Parameters
parameterUser specified output file. For example, "TO" is a popular user parameter. If the user specified TO=output.cub, then this routine would allocate the file output.cub with size specified by the first opened input cube. The output pixel type will be propagated from the first loaded input cube or will use the value in the application XML file for pixelType.
uiA user interface used to get the attributes needed for SetOutputCube.
Exceptions
Isis::iException::Message

Definition at line 193 of file Process.cpp.

◆ SetPdsFile() [1/2]

void Isis::ProcessImportPds::SetPdsFile ( const Pvl pdsLabelPvl,
const QString &  pdsDataFile,
PdsFileType  allowedTypes = All 
)

Set the input label PVL and data file and initialize a Pvl with the PDS labels.

This method was written to allow the calling application to intercept the PDS labels and make any modifications to them necessary (such as adding missing keywords like TARGET_NAME) before this class loads them. See the kaguyatc2isis program for an example.

Parameters
pdsLabelPvlThe PVL containing the PDS label.
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter cannot be empty.
Exceptions
Isis::iException::Message

Definition at line 1367 of file ProcessImportPds.cpp.

◆ SetPdsFile() [2/2]

void Isis::ProcessImportPds::SetPdsFile ( const QString &  pdsLabelFile,
const QString &  pdsDataFile,
Isis::Pvl pdsLabel,
PdsFileType  allowedTypes = All 
)

Set the input label file, data file and initialize a Pvl with the PDS labels.

Parameters
pdsLabelFileThe name of the PDS label file.This must be the file where the label is. It can be an attached or detached label.
pdsDataFileThe name of the PDS data file where the actual image/cube data is stored. This parameter can be an empty QString, in which case the label information will be searched to find the data file name or the data will be assumed to be after the label information.
pdsLabelThe label from the input PDS/Isis2 file
Exceptions
Isis::iException::Message

Definition at line 1395 of file ProcessImportPds.cpp.

References Isis::Pvl::read().

◆ SetPixelType()

void Isis::ProcessImport::SetPixelType ( const Isis::PixelType  type)
inherited

Sets the pixel type of the input file.

Parameters
typeThe enumerated pixel type Isis::Real, Isis::SignedWord, or Isis::UnsignedByte. This must be invoked prior to setOutputCube
Exceptions
Isis::iException::Message"Unsupported pixel type."

Definition at line 264 of file ProcessImport.cpp.

References Isis::ProcessImport::p_pixelType, Isis::PixelTypeName(), and Isis::IException::Programmer.

Referenced by Isis::ProcessImportFits::setProcessFileStructure().

◆ SetSpecialValues()

void Isis::ProcessImport::SetSpecialValues ( const double  null,
const double  lrs,
const double  lis,
const double  hrs,
const double  his 
)
inherited

Sets a mapping of input pixel values to output special pixel values.

Parameters
nullThe double precision value used to identify null pixels in the image being imported.
lrsThe double precisiion value used to identify low representation saturation LRS pixels in the image being imported.
lisThe double precision value used to identify low instrument saturation LIS pixels in the image being imported.
hrsThe double precision value used to identify high representation saturation HRS pixels in the image being imported.
hisThe double precision value used to identify high instrument saturation HIS pixels in the image being imported.

Definition at line 993 of file ProcessImport.cpp.

References Isis::ProcessImport::SetHIS(), Isis::ProcessImport::SetHRS(), Isis::ProcessImport::SetLIS(), Isis::ProcessImport::SetLRS(), and Isis::ProcessImport::SetNull().

◆ SetVAXConvert()

void Isis::ProcessImport::SetVAXConvert ( const bool  vax_convert)
inherited

Sets the VAX flag of the input cube.

If true, then the core pixel type of the input cube is VAX, and VAX conversion routines need to be run to convert the pixels to IEEE format.

Parameters
vax_convertFlag indicating whether or not to run VAX conersion methods

Definition at line 919 of file ProcessImport.cpp.

◆ StartProcess() [1/5]

void Isis::ProcessImport::StartProcess
virtual

Process the input file and write it to the output.

Reimplemented from Isis::ProcessImport.

Definition at line 176 of file ProcessImport.cpp.

◆ StartProcess() [2/5]

void Isis::ProcessImportPds::StartProcess ( )
virtual

This method will write the cube and table data to the output cube.

Reimplemented from Isis::ProcessImport.

Definition at line 1421 of file ProcessImportPds.cpp.

◆ StartProcess() [3/5]

virtual void Isis::Process::StartProcess ( void   funct())
inlinevirtualinherited

In the base class, this method will invoked a user-specified function exactly one time.

In derived classes such as ProcessByLine, the StartProcess will invoke a user-specified function for every line in a cube.

Parameters
funct()Name of your processing function

Definition at line 213 of file Process.h.

◆ StartProcess() [4/5]

void Isis::ProcessImport::StartProcess
virtual

Process the input file and send data to method.

Parameters
functMethod that accepts Isis::Buffer as an input parameter, processes the image, and has no return value.
Exceptions
Isis::iException::Message"File is not a supported organization."

Reimplemented from Isis::ProcessImport.

Definition at line 177 of file ProcessImport.cpp.

◆ StartProcess() [5/5]

void Isis::ProcessImportPds::StartProcess ( void   functIsis::Buffer &out)
virtual

Process the input file and send data to a method for specialized processing.

The method is expected to write the data after it has processed it if necessary.

Parameters
functMethod that accepts Isis::Buffer as an input parameter, processes the image, and has no return value.
Exceptions
Isis::iException::Message"File is not a supported organization."

Reimplemented from Isis::ProcessImport.

Definition at line 1440 of file ProcessImportPds.cpp.

◆ TestPixel()

double Isis::ProcessImport::TestPixel ( const double  pixel)
inherited

Tests the pixel.

If it is valid it will return the dn value, otherwise it will return the Isis special pixel value that corresponds to it

Parameters
pixelThe double precision value that represents a pixel.
Returns
double The double precision value representing the pixel will return as a valid dn or changed to an isis special pixel.

Definition at line 1167 of file ProcessImport.cpp.

References Isis::ProcessImport::p_his_min, Isis::ProcessImport::p_hrs_min, Isis::ProcessImport::p_lis_min, Isis::ProcessImport::p_lrs_min, and Isis::ProcessImport::p_null_min.

Referenced by Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), and Isis::ProcessImport::ProcessJp2().

◆ TranslateIsis2BandBin()

void Isis::ProcessImportPds::TranslateIsis2BandBin ( Isis::Pvl lab)
private

Fill as many of the Isis BandBin labels as possible.

Parameters
labThe label where the translated Isis2 keywords will be placed

Definition at line 1453 of file ProcessImportPds.cpp.

References Isis::PvlToPvlTranslationManager::Auto(), and Isis::FileName::expanded().

◆ TranslateIsis2Instrument()

void Isis::ProcessImportPds::TranslateIsis2Instrument ( Isis::Pvl lab)
private

Fill as many of the Isis instrument labels as possible.

Parameters
labThe label where the tramslated Isis2 keywords will be placed

Definition at line 1471 of file ProcessImportPds.cpp.

References Isis::PvlToPvlTranslationManager::Auto(), Isis::FileName::expanded(), Isis::PvlObject::findGroup(), and Isis::PvlContainer::hasKeyword().

◆ TranslateIsis2Labels()

void Isis::ProcessImportPds::TranslateIsis2Labels ( Isis::Pvl lab)

Translate as many of the ISIS2 labels as possible.

Parameters
labThe label where the translated Isis2 keywords will be placed

Definition at line 1500 of file ProcessImportPds.cpp.

◆ TranslatePdsArchive()

void Isis::ProcessImportPds::TranslatePdsArchive ( Isis::Pvl lab)
private

Fill as many of the Isis BandBin labels as possible.

Parameters
labThe lable where the translated PDS keywords will be placed

Definition at line 1512 of file ProcessImportPds.cpp.

References Isis::PvlToPvlTranslationManager::Auto(), and Isis::FileName::expanded().

◆ TranslatePdsBandBin()

void Isis::ProcessImportPds::TranslatePdsBandBin ( Isis::Pvl lab)
private

Fill as many of the Isis BandBin labels as possible.

Parameters
labThe lable where the translated PDS keywords will be placed

Definition at line 1528 of file ProcessImportPds.cpp.

References Isis::PvlToPvlTranslationManager::Auto(), and Isis::FileName::expanded().

◆ TranslatePdsLabels()

void Isis::ProcessImportPds::TranslatePdsLabels ( Isis::Pvl lab)

Translate as many of the PDS labels as possible.

Parameters
labThe label where the translated Isis2 keywords will be placed

Definition at line 1545 of file ProcessImportPds.cpp.

◆ TranslatePdsProjection()

void Isis::ProcessImportPds::TranslatePdsProjection ( Isis::Pvl lab)

Fills the passed in label with the projection information from the PDS label file.

The application must write add the projection parameters to the output cube if desired.

Parameters
labThe label where the projection parameters will be placed.
History:
2008-06-06 Tracie Sucharski - Added new InputGroup for PdsProjectionTypeImage to handle Magellan.

Definition at line 1562 of file ProcessImportPds.cpp.

References Isis::PvlObject::addGroup(), Isis::PvlToPvlTranslationManager::Auto(), Isis::FileName::expanded(), Isis::PvlObject::findGroup(), Isis::PvlToPvlTranslationManager::InputHasKeyword(), and Isis::toString().

◆ VAXConversion()

double Isis::ProcessImport::VAXConversion ( void *  ibuf)
inherited

Conversion routine which translates VAX_REAL to IEEE_REAL.

Parameters
ibufMemory buffer of input data to be converted
Returns
double the converted value

Definition at line 171 of file ProcessImport.cpp.

Referenced by Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), and Isis::ProcessImport::ProcessBsq().

◆ WriteHistory()

void Isis::Process::WriteHistory ( Cube cube)
inherited

Member Data Documentation

◆ InputCubes

◆ m_ownedCubes

QSet<Isis::Cube *>* Isis::Process::m_ownedCubes
protectedinherited

A list of cubes owned by this instant.

These cubes will be deleted on finalization. Process will not take ownership of cubes allocated outside of Process. It is the caller's responsibility to delete such cubes.

Definition at line 199 of file Process.h.

◆ OutputCubes

std::vector<Isis::Cube *> Isis::Process::OutputCubes
protectedinherited

◆ p_bandStats

std::vector< std::vector< Isis::Statistics * > > Isis::Process::p_bandStats
protectedinherited

Holds the calculated statistics for each band separately of every input cubei after the CalculateStatistics method is called.

Definition at line 172 of file Process.h.

Referenced by Isis::Process::BandStatistics().

◆ p_base

std::vector<double> Isis::ProcessImport::p_base
privateinherited

An array containing the core base for each band.

If there is only one value in the vector then that base applies to all bands.

Definition at line 391 of file ProcessImport.h.

Referenced by Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::ProcessImport(), Isis::ProcessImport::ProcessJp2(), Isis::ProcessImport::SetAttributes(), and Isis::ProcessImport::SetBase().

◆ p_byteOrder

◆ p_cubeStats

std::vector< Isis::Statistics * > Isis::Process::p_cubeStats
protectedinherited

Holds the calculated statistics for every band together of every input cubei after the CalculateStatistics method is called.

Definition at line 179 of file Process.h.

Referenced by Isis::Process::CubeStatistics().

◆ p_dataHeader

std::vector<char *> Isis::ProcessImport::p_dataHeader
privateinherited

◆ p_dataHeaderBytes

int Isis::ProcessImport::p_dataHeaderBytes
privateinherited

Number of bytes of non-image data after the file header and before the image data of each data block, such as band header data in a band sequential file.

Definition at line 349 of file ProcessImport.h.

Referenced by Isis::ProcessImport::DataHeaderBytes(), Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::ProcessImport(), Isis::ProcessImport::SaveDataHeader(), and Isis::ProcessImport::SetDataHeaderBytes().

◆ p_dataPost

std::vector<std::vector<char *> > Isis::ProcessImport::p_dataPost
privateinherited

◆ p_dataPostBytes

int Isis::ProcessImport::p_dataPostBytes
privateinherited

◆ p_dataPre

std::vector<std::vector<char *> > Isis::ProcessImport::p_dataPre
privateinherited

◆ p_dataPreBytes

int Isis::ProcessImport::p_dataPreBytes
privateinherited

◆ p_dataTrailer

std::vector<char *> Isis::ProcessImport::p_dataTrailer
privateinherited

◆ p_dataTrailerBytes

int Isis::ProcessImport::p_dataTrailerBytes
privateinherited

Number of bytes of non-image data after the image data of each data block, such as band trailer data in a band sequential file.

Definition at line 353 of file ProcessImport.h.

Referenced by Isis::ProcessImport::DataTrailerBytes(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::ProcessImport(), Isis::ProcessImport::SaveDataTrailer(), and Isis::ProcessImport::SetDataTrailerBytes().

◆ p_encodingType

EncodingType Isis::ProcessImportPds::p_encodingType
private

The encoding type of the image data.

The only encoding type currently supported is JP2 (JPEG2000).

Definition at line 296 of file ProcessImportPds.h.

◆ p_equatorialRadius

double Isis::ProcessImportPds::p_equatorialRadius
private

Equatorial radius found in the PDS projection labels.

Definition at line 312 of file ProcessImportPds.h.

◆ p_fileHeader

◆ p_fileHeaderBytes

int Isis::ProcessImport::p_fileHeaderBytes
privateinherited

The number of bytes of non-image data at the beginning of a file.

This does not include any section headers such as band headers.

Definition at line 341 of file ProcessImport.h.

Referenced by Isis::ProcessImport::FileHeaderBytes(), Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::ProcessImport(), Isis::ProcessImport::SaveFileHeader(), and Isis::ProcessImport::SetFileHeaderBytes().

◆ p_fileTrailer

◆ p_fileTrailerBytes

int Isis::ProcessImport::p_fileTrailerBytes
privateinherited

The number of bytes of non-image data at the end of a file.

This does not include any section trailers such as band trailers.

Definition at line 345 of file ProcessImport.h.

Referenced by Isis::ProcessImport::FileTrailerBytes(), Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::SaveFileTrailer(), and Isis::ProcessImport::SetFileTrailerBytes().

◆ p_his_max

double Isis::ProcessImport::p_his_max
privateinherited

The pixel value which is the upper bound of HIS data.

All pixels between this value and the min will be converted to the Isis HIS value.

Definition at line 420 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), and Isis::ProcessImport::SetHIS().

◆ p_his_min

double Isis::ProcessImport::p_his_min
privateinherited

The pixel value which is the lower bound of HIS data.

All pixels between this value and the max will be converted to the Isis HIS value.

Definition at line 416 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::SetHIS(), and Isis::ProcessImport::TestPixel().

◆ p_hrs_max

double Isis::ProcessImport::p_hrs_max
privateinherited

The pixel value which is the upper bound of HRS data.

All pixels between this value and the min will be converted to the Isis HRS value.

Definition at line 412 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), and Isis::ProcessImport::SetHRS().

◆ p_hrs_min

double Isis::ProcessImport::p_hrs_min
privateinherited

The pixel value which is the lower bound of HRS data.

All pixels between this value and the max will be converted to the Isis HRS value.

Definition at line 408 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::SetHRS(), and Isis::ProcessImport::TestPixel().

◆ p_inFile

◆ p_jp2File

QString Isis::ProcessImportPds::p_jp2File
private

The name of the file containing the encoded JP2 data.

Definition at line 299 of file ProcessImportPds.h.

◆ p_keepOriginalLabel

bool Isis::ProcessImportPds::p_keepOriginalLabel
private

determines whether or not to keep the OriginalLabel blob.

Definition at line 341 of file ProcessImportPds.h.

◆ p_labelFile

QString Isis::ProcessImportPds::p_labelFile
private

The filename where the PDS label came from.

Definition at line 291 of file ProcessImportPds.h.

◆ p_latitudeType

QString Isis::ProcessImportPds::p_latitudeType
private

The latitude type found in the PDS projection labels.

Definition at line 320 of file ProcessImportPds.h.

◆ p_lis_max

double Isis::ProcessImport::p_lis_max
privateinherited

The pixel value which is the upper bound of LIS data.

All pixels between this value and the min will be converted to the Isis LIS value.

Definition at line 436 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), and Isis::ProcessImport::SetLIS().

◆ p_lis_min

double Isis::ProcessImport::p_lis_min
privateinherited

The pixel value which is the lower bound of LIS data.

All pixels between this value and the max will be converted to the Isis LIS value.

Definition at line 432 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::SetLIS(), and Isis::ProcessImport::TestPixel().

◆ p_longitudeDirection

QString Isis::ProcessImportPds::p_longitudeDirection
private

Longitude direction found in the PDS projection labels.

Definition at line 316 of file ProcessImportPds.h.

◆ p_longitudeDomain

int Isis::ProcessImportPds::p_longitudeDomain
private

Longitude domain found in the PDS projection labels.

Definition at line 318 of file ProcessImportPds.h.

◆ p_lrs_max

double Isis::ProcessImport::p_lrs_max
privateinherited

The pixel value which is the upper bound of LRS data.

All pixels between this value and the min will be converted to the Isis LRS value.

Definition at line 428 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), and Isis::ProcessImport::SetLRS().

◆ p_lrs_min

double Isis::ProcessImport::p_lrs_min
privateinherited

The pixel value which is the lower bound of LRS data.

All pixels between this value and the max will be converted to the Isis LRS value.

Definition at line 424 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::SetLRS(), and Isis::ProcessImport::TestPixel().

◆ p_maximumLatitude

double Isis::ProcessImportPds::p_maximumLatitude
private

Maximum latitude found in the PDS projection labels.

Definition at line 324 of file ProcessImportPds.h.

◆ p_maximumLongitude

double Isis::ProcessImportPds::p_maximumLongitude
private

Maximum longitude found in the PDS projection labels.

Definition at line 328 of file ProcessImportPds.h.

◆ p_minimumLatitude

double Isis::ProcessImportPds::p_minimumLatitude
private

Minimum latitude found in the PDS projection labels.

Definition at line 322 of file ProcessImportPds.h.

◆ p_minimumLongitude

double Isis::ProcessImportPds::p_minimumLongitude
private

Minimum longitude found in the PDS projection labels.

Definition at line 326 of file ProcessImportPds.h.

◆ p_mult

std::vector<double> Isis::ProcessImport::p_mult
privateinherited

An array containing the core multiplier for each band.

If there is only one value in the vector then that multiplier applies to all bands.

Definition at line 395 of file ProcessImport.h.

Referenced by Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::ProcessImport(), Isis::ProcessImport::ProcessJp2(), Isis::ProcessImport::SetAttributes(), and Isis::ProcessImport::SetMultiplier().

◆ p_nb

◆ p_nl

◆ p_ns

◆ p_null_max

double Isis::ProcessImport::p_null_max
privateinherited

The pixel value which is the upper bound of NULL data.

All pixels between this value and the min will be converted to the Isis NULL value.

Definition at line 404 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), and Isis::ProcessImport::SetNull().

◆ p_null_min

double Isis::ProcessImport::p_null_min
privateinherited

The pixel value which is the lower bound of NULL data.

All pixels between this value and the max will be converted to the Isis NULL value.

Definition at line 400 of file ProcessImport.h.

Referenced by Isis::ProcessImport::CheckPixelRange(), Isis::ProcessImport::SetNull(), and Isis::ProcessImport::TestPixel().

◆ p_organization

ProcessImport::Interleave Isis::ProcessImport::p_organization
privateinherited

The format of the input file.

Possible values are BSQ for band sequential, BIL for band interleaved by line and BIP for band interleaved by pixel.

Definition at line 384 of file ProcessImport.h.

Referenced by Isis::ProcessImport::Organization(), Isis::ProcessImport::ProcessImport(), Isis::ProcessImport::SetOrganization(), and Isis::ProcessImport::StartProcess().

◆ p_pdsLabel

Pvl Isis::ProcessImportPds::p_pdsLabel
private

Internalized PDS label.

Definition at line 290 of file ProcessImportPds.h.

◆ p_pixelResolution

double Isis::ProcessImportPds::p_pixelResolution
private

Pixel resolution found in the PDS projection labels.

Definition at line 330 of file ProcessImportPds.h.

◆ p_pixelType

◆ p_polarRadius

double Isis::ProcessImportPds::p_polarRadius
private

The polar radius found in the PDS projection labels.

Definition at line 314 of file ProcessImportPds.h.

◆ p_progress

◆ p_projection

QString Isis::ProcessImportPds::p_projection
private

The name of the projection found in the PDS projection labels.

Definition at line 303 of file ProcessImportPds.h.

◆ p_projectionOffsetChange

bool Isis::ProcessImportPds::p_projectionOffsetChange
private

Whether the projection offsets were updated upon loading.

Definition at line 306 of file ProcessImportPds.h.

◆ p_projectionOffsetGroup

PvlGroup Isis::ProcessImportPds::p_projectionOffsetGroup
private

Log information for projection offsets.

Definition at line 309 of file ProcessImportPds.h.

◆ p_propagateHistory

bool Isis::Process::p_propagateHistory
protectedinherited

Flag indicating if history is to be propagated to output cubes.

Definition at line 161 of file Process.h.

◆ p_propagateLabels

bool Isis::Process::p_propagateLabels
protectedinherited

Flag indicating if labels are be propagated to output cubes.

Definition at line 149 of file Process.h.

◆ p_propagateOriginalLabel

bool Isis::Process::p_propagateOriginalLabel
protectedinherited

Flag indicating if original lable is to be propagated to output cubes.

Definition at line 165 of file Process.h.

◆ p_propagatePolygons

bool Isis::Process::p_propagatePolygons
protectedinherited

Flag indicating if blobs are be propagated to output cubes.

Definition at line 157 of file Process.h.

◆ p_propagateTables

bool Isis::Process::p_propagateTables
protectedinherited

Flag indicating if tables are be propagated to output cubes.

Definition at line 153 of file Process.h.

◆ p_rotation

double Isis::ProcessImportPds::p_rotation
private

The rotation found in the PDS labels.

Definition at line 334 of file ProcessImportPds.h.

◆ p_saveDataHeader

bool Isis::ProcessImport::p_saveDataHeader
privateinherited

Flag indicating whether to save the data header or not.

Definition at line 365 of file ProcessImport.h.

Referenced by Isis::ProcessImport::DataHeader(), Isis::ProcessImport::ProcessBsq(), Isis::ProcessImport::ProcessImport(), and Isis::ProcessImport::SaveDataHeader().

◆ p_saveDataPost

bool Isis::ProcessImport::p_saveDataPost
privateinherited

◆ p_saveDataPre

bool Isis::ProcessImport::p_saveDataPre
privateinherited

◆ p_saveDataTrailer

bool Isis::ProcessImport::p_saveDataTrailer
privateinherited

◆ p_saveFileHeader

bool Isis::ProcessImport::p_saveFileHeader
privateinherited

◆ p_saveFileTrailer

bool Isis::ProcessImport::p_saveFileTrailer
privateinherited

◆ p_scaleFactor

double Isis::ProcessImportPds::p_scaleFactor
private

The scale factor found in the PDS projection labels.

Definition at line 332 of file ProcessImportPds.h.

◆ p_suffixData

int Isis::ProcessImport::p_suffixData
privateinherited

The number of bytes past the file header bytes where the suffix data bands are stored.

Definition at line 337 of file ProcessImport.h.

Referenced by Isis::ProcessImport::ProcessBil(), Isis::ProcessImport::ProcessBip(), Isis::ProcessImport::ProcessBsq(), and Isis::ProcessImport::ProcessImport().

◆ p_suffixPixelType

Isis::PixelType Isis::ProcessImport::p_suffixPixelType
privateinherited

The pixel type of the suffix data.

Definition at line 331 of file ProcessImport.h.

Referenced by Isis::ProcessImport::ProcessImport().

◆ p_tables

std::vector<Table> Isis::ProcessImportPds::p_tables
private

Vector of Isis Table objects that were imported from PDS and need to be added to the imported cube file.

Definition at line 343 of file ProcessImportPds.h.

◆ p_transDir

QString Isis::ProcessImportPds::p_transDir
private

Base data directory.

Definition at line 293 of file ProcessImportPds.h.


The documentation for this class was generated from the following files: