1#ifndef ProcessExportPds_h
2#define ProcessExportPds_h
10#include "ProcessExport.h"
Process class for exporting cubes.
virtual void StartProcess(void funct(Isis::Buffer &in))
This method invokes the process operation over a single input cube.
Process class for exporting cubes to PDS standards.
void SetAttached()
Mutator method to set the output PDS file to attached.
bool m_forceOffset
Indicates whether to add the OFFSET keyword in the PDS labels.
void ForceCoreHrs(bool force)
Mutator method to set how the CORE_HIGH_REPR_SATURATION keyword will be handled.
bool m_detachedLabel
Indicates whether the PDS file will be detached.
PdsExportType m_exportType
Stream or Fixed.
std::vector< int > m_tableStartRecord
Record number where the added table data begins.
~ProcessExportPds()
Destructor.
void StandardAllMapping(Pvl &mainPvl)
Create the standard keywords for the IMAGE_MAP_PROJECTION group in a PDS label.
void FixedImageRoot(Pvl &mainPvl)
Create the fixed keywords for the ROOT object in a PDS IMAGE file.
void StreamJP2ImageRoot(Pvl &mainPvl)
Create the standard keywords for the ROOT object in a PDS JP2 IMAGE file.
void StartProcess(std::ofstream &fout)
This method fills the image data of the PDS file using the parent class ProcessExport::StartProcess,...
void ForceSampleBits(bool force)
Mutator method to set how the SAMPLE_BITS keyword will be handled.
ProcessExportPds()
Default Constructor - Set to default the data members.
bool Detached()
Accessor function returns true if the output PDS file is set to detached.
void SetDetached(QString detachedLabelFile)
Mutator method to set the output PDS file to detached.
std::vector< char * > m_tableBuffers
Vector containing the binary table data for each of the added tables.
void updateChecksumInLabel(std::ofstream &pdsFileStream)
Updates the CHECKSUM value on the label and rewrites to the output file.
void OutputDetachedLabel()
Write the PDS label to the a detached file.
void ForceScalingFactor(bool force)
Mutator method to set how the SCALING_FACTOR keyword will be handled.
PvlFormatPds * m_formatter
Used to determine how to format the keyword values in the PDS file.
virtual void CreateImageLabel()
Create a standard PDS label for type IMAGE.
bool m_forceBands
Indicates whether to keep the BANDS keyword in the PDS labels.
bool m_forceCoreHrs
Indicates whether to add the CORE_HIGH_REPR_SATURATION keyword in the PDS labels.
int LineBytes()
Return the line bytes (record size) for the input cube, at present this is based on the number of sam...
void StreamImageRoot(Pvl &mainPvl)
Create the standard keywords for the ROOT object in a PDS IMAGE file.
void CreateSpectralQubeLabel()
Create a standard PDS label for type SPECTRAL_QUBE.
void SetPdsResolution(PdsResolution resolutionUnits)
Mutator method to set the output PDS image resolution to meters per pixel or kilometers per pixel.
void CreateQubeLabel()
Create a standard PDS label for type QUBE.
void ExportTable(Isis::Table isisTable, QString detachedPdsTableFileName="")
This method will add a table to be exported to PDS.
void ForceCoreNull(bool force)
Mutator method to set how the CORE_NULL keyword will be handled.
void ForceCoreLrs(bool force)
Mutator method to set how the CORE_LOW_REPR_SATURATION keyword will be handled.
bool m_forceBandName
Indicates whether to keep the BAND_NAME keyword in the PDS labels.
std::vector< int > m_tableRecords
Number of records in each added table.
bool m_forceCenterFilterWavelength
Indicates whether to keep the CENTER_FILTER_WAVELENGTH keyword in the PDS labels.
QString ProjectionName(Pvl &inputLabel)
Return a projection name.
void ForceBandwidth(bool force)
Mutator method to set how the BANDWIDTH keyword will be handled.
bool m_forceSampleBitMask
Indicates whether to add the SAMPLE_BIT_MASK keyword in the PDS labels.
void ForceSampleType(bool force)
Mutator method to set how the SAMPLE_TYPE keyword will be handled.
void ForceCoreLis(bool force)
Mutator method to set how the CORE_LOW_INSTR_SATURATION keyword will be handled.
QString m_detachedPdsLabelFile
The name of the detached PDS label file.
PdsFileType m_pdsFileType
Image, Qube, Spectral Qube, or JP2 Image.
PdsResolution m_exportResolution
Meters or kilometers.
bool m_forceSampleBits
Indicates whether to add the SAMPLE_BITS keyword in the PDS labels.
int LabelSize()
Return the size of the output PDS label.
void ForceBandName(bool force)
Mutator method to set how the BAND_NAME keyword will be handled.
void StandardJP2Image(Pvl &mainPvl)
Create the standard keywords for an IMAGE object in a PDS JP2 IMAGE file.
void SetExportType(PdsExportType recordFormat)
Mutator method to set the output PDS image record type to stream or fixed.
void ForceSampleBitMask(bool force)
Mutator method to set how the SAMPLE_BIT_MASK keyword will be handled.
virtual Pvl & StandardPdsLabel(ProcessExportPds::PdsFileType type)
Create a standard PDS label of the type specified.
bool m_forceCoreLis
Indicates whether to add the CORE_LOW_INSTR_SATURATION keyword in the PDS labels.
void StandardImageImage(Pvl &mainPvl)
Create the standard keywords for an IMAGE object in a PDS IMAGE file.
bool m_forceCoreHis
Indicates whether to add the CORE_HIGH_INSTR_SATURATION keyword in the PDS labels.
void FixedJP2ImageRoot(Pvl &mainPvl)
Create the fixed keywords for the ROOT object in a PDS JP2 IMAGE file.
void OutputLabel(std::ofstream &pdsFileStream)
Write the PDS label to the supplied stream.
PdsResolution
Resolution units per pixel of the exported PDS file.
@ Kilometer
Kilometers per pixel.
PdsExportType
Record format type of exported PDS file.
@ Stream
Stream Records. This type is generally used for ASCII files.
@ Fixed
Fixed length records.
void ForceBandStorageType(bool force)
Mutator method to set how the BAND_STORAGE_TYPE keyword will be handled.
void ForceBands(bool force)
Mutator method to set how the the BANDS keyword will be handled.
bool m_forceBandwidth
Indicates whether to keep the BANDWIDTH keyword in the PDS labels.
bool m_forceSampleType
Indicates whether to add the SAMPLE_TYPE keyword in the PDS labels.
PdsFileType
File type to be exported.
@ Qube
Multi-dimensional array (1-3 dimensional) whose axes may be interpreted as line/sample/band.
@ Image
Two dimensional array of line/sample values.
@ JP2Image
Image coding system JPEG 2000 formatted image.
@ SpectralQube
Three dimensional objects with two spatial dimensions and one spectral dimension.
bool m_forceScalingFactor
Indicates whether to add the SCALING_FACTOR keyword in the PDS labels.
void ForceCoreHis(bool force)
Mutator method to set how the CORE_HIGH_INSTR_SATURATION keyword will be handled.
void ForceOffset(bool force)
Mutator method to set how the OFFSET keyword will be handled.
Pvl * m_label
Exported PDS label.
void ForceCenterFilterWavelength(bool force)
Mutator method to set how the CENTER_FILTER_WAVELENGTH keyword will be handled.
bool m_forceCoreNull
Indicates whether to add the CORE_NULL keyword in the PDS labels.
bool m_forceCoreLrs
Indicates whether to add the CORE_LOW_REPR_SATURATION keyword in the PDS labels.
bool m_forceBandStorageType
Indicates whether to add the BAND_STORAGE_TYPE keyword in the PDS labels.
bool Attached()
Accessor function returns true if the output PDS file is set to attached.
Container for cube-like labels.
Class for storing Table blobs information.
This is free and unencumbered software released into the public domain.