File failed to load: https://isis.astrogeology.usgs.gov/3.9.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Developer Reference
ProcessExportPds.h
Go to the documentation of this file.
1 #ifndef ProcessExportPds_h
2 #define ProcessExportPds_h
3 /*
4  * Unless noted otherwise, the portions of Isis written by the
5  * USGS are public domain. See individual third-party library
6  * and package descriptions for intellectual property
7  * information,user agreements, and related information.
8  *
9  * Although Isis has been used by the USGS, no warranty, expressed or implied,
10  * is made by the USGS as to the accuracy and functioning of such software
11  * and related material nor shall the fact of distribution constitute any such
12  * warranty, and no responsibility is assumed by the USGS in connection
13  * therewith.
14  *
15  * For additional information, launch
16  * $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see
17  * the Privacy & Disclaimers page on the Isis website,
18  * http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
19  * http://www.usgs.gov/privacy.html.
20  */
21 
22 #include "ProcessExport.h"
23 #include <vector>
24 
25 class QString;
26 
27 namespace Isis {
28  class PvlFormatPds;
29  class Table;
30 
91  public:
96  enum PdsFileType {
99  Qube,
107  };
108 
115  };
116 
126  };
127 
130 
131  // Work with PDS labels for all data set types
132  void StandardAllMapping(Pvl &mainPvl);
133 
134  // Work with PDS labels for data sets of type IMAGE
135  void StreamImageRoot(Pvl &mainPvl);
136  void FixedImageRoot(Pvl &mainPvl);
137  void StreamJP2ImageRoot(Pvl &mainPvl);
138  void FixedJP2ImageRoot(Pvl &mainPvl);
139  void StandardImageImage(Pvl &mainPvl);
140  void StandardJP2Image(Pvl &mainPvl);
141 
142  void SetPdsResolution(PdsResolution resolutionUnits);
143  void SetExportType(PdsExportType recordFormat);
144 
146 
147  void OutputLabel(std::ofstream &pdsFileStream);
148  void updateChecksumInLabel(std::ofstream &pdsFileStream);
149  void OutputDetachedLabel();
150 
151  void ExportTable(Isis::Table isisTable, QString detachedPdsTableFileName="");
152 
153  // include this using declaration to indicate that ProcessExportPds
154  // objects that call a StartProcess() method that has not been overridden
155  // here should use the corresponding base class definitions
157  void StartProcess(std::ofstream &fout);
158 
159  // Accessors
160  bool Detached();
161  bool Attached();
162 
163  // Mutators
164  void SetDetached(QString detachedLabelFile);
165  void SetAttached();
166  void ForceBands(bool force);
167  void ForceBandName(bool force);
168  void ForceCenterFilterWavelength(bool force);
169  void ForceBandwidth(bool force);
170  void ForceBandStorageType(bool force);
171  void ForceOffset(bool force);
172  void ForceScalingFactor(bool force);
173  void ForceSampleBits(bool force);
174  void ForceSampleBitMask(bool force);
175  void ForceSampleType(bool force);
176  void ForceCoreNull(bool force);
177  void ForceCoreLrs(bool force);
178  void ForceCoreLis(bool force);
179  void ForceCoreHrs(bool force);
180  void ForceCoreHis(bool force);
181 
182  protected:
183  int LineBytes();
184  int LabelSize();
185  virtual void CreateImageLabel();
186  void CreateQubeLabel();
188 
189  QString ProjectionName(Pvl &inputLabel);
190 
195 
196  private:
197  PdsResolution m_exportResolution;
198  bool m_forceBands;
200  bool m_forceBandName;
202  bool m_forceCenterFilterWavelength;
205  bool m_forceBandwidth;
207  bool m_forceBandStorageType;
210  bool m_forceOffset;
212  bool m_forceScalingFactor;
215  bool m_forceSampleBits;
217  bool m_forceSampleBitMask;
220  bool m_forceSampleType;
223  bool m_forceCoreNull;
225  bool m_forceCoreLrs;
228  bool m_forceCoreLis;
231  bool m_forceCoreHrs;
234  bool m_forceCoreHis;
237  bool m_detachedLabel;
239  QString m_detachedPdsLabelFile;
241  PdsFileType m_pdsFileType;
244  std::vector<int> m_tableStartRecord;
249  std::vector<int> m_tableRecords;
254  std::vector<char *> m_tableBuffers;
260  };
261 }
262 
263 #endif
void ForceCoreLis(bool force)
Mutator method to set how the CORE_LOW_INSTR_SATURATION keyword will be handled.
Definition: ProcessExportPds.cpp:1293
void ForceSampleBits(bool force)
Mutator method to set how the SAMPLE_BITS keyword will be handled.
Definition: ProcessExportPds.cpp:1227
~ProcessExportPds()
Destructor.
Definition: ProcessExportPds.cpp:80
void ForceScalingFactor(bool force)
Mutator method to set how the SCALING_FACTOR keyword will be handled.
Definition: ProcessExportPds.cpp:1214
void SetAttached()
Mutator method to set the output PDS file to attached.
Definition: ProcessExportPds.cpp:1084
void CreateSpectralQubeLabel()
Create a standard PDS label for type SPECTRAL_QUBE.
Definition: ProcessExportPds.cpp:194
int LabelSize()
Return the size of the output PDS label.
Definition: ProcessExportPds.cpp:862
void ForceBands(bool force)
Mutator method to set how the the BANDS keyword will be handled.
Definition: ProcessExportPds.cpp:1136
Process class for exporting cubes.
Definition: ProcessExport.h:125
void OutputLabel(std::ofstream &pdsFileStream)
Write the PDS label to the supplied stream.
Definition: ProcessExportPds.cpp:897
Fixed length records.
Definition: ProcessExportPds.h:124
virtual void CreateImageLabel()
Create a standard PDS label for type IMAGE.
Definition: ProcessExportPds.cpp:131
void ForceCoreHis(bool force)
Mutator method to set how the CORE_HIGH_INSTR_SATURATION keyword will be handled. ...
Definition: ProcessExportPds.cpp:1321
bool Attached()
Accessor function returns true if the output PDS file is set to attached.
Definition: ProcessExportPds.cpp:1103
void StandardAllMapping(Pvl &mainPvl)
Create the standard keywords for the IMAGE_MAP_PROJECTION group in a PDS label.
Definition: ProcessExportPds.cpp:686
PdsFileType
File type to be exported.
Definition: ProcessExportPds.h:96
void ForceOffset(bool force)
Mutator method to set how the OFFSET keyword will be handled.
Definition: ProcessExportPds.cpp:1201
void ExportTable(Isis::Table isisTable, QString detachedPdsTableFileName="")
This method will add a table to be exported to PDS.
Definition: ProcessExportPds.cpp:1008
bool Detached()
Accessor function returns true if the output PDS file is set to detached.
Definition: ProcessExportPds.cpp:1094
void StreamJP2ImageRoot(Pvl &mainPvl)
Create the standard keywords for the ROOT object in a PDS JP2 IMAGE file.
Definition: ProcessExportPds.cpp:251
Formats the value of a PvlKeyword into a PDS complient string.
Definition: PvlFormatPds.h:61
void ForceBandStorageType(bool force)
Mutator method to set how the BAND_STORAGE_TYPE keyword will be handled.
Definition: ProcessExportPds.cpp:1188
void ForceCoreHrs(bool force)
Mutator method to set how the CORE_HIGH_REPR_SATURATION keyword will be handled.
Definition: ProcessExportPds.cpp:1307
void ForceCoreNull(bool force)
Mutator method to set how the CORE_NULL keyword will be handled.
Definition: ProcessExportPds.cpp:1266
PvlFormatPds * m_formatter
Used to determine how to format the keyword values in the PDS file.
Definition: ProcessExportPds.h:191
void ForceSampleBitMask(bool force)
Mutator method to set how the SAMPLE_BIT_MASK keyword will be handled.
Definition: ProcessExportPds.cpp:1240
void ForceBandName(bool force)
Mutator method to set how the BAND_NAME keyword will be handled.
Definition: ProcessExportPds.cpp:1149
void SetExportType(PdsExportType recordFormat)
Mutator method to set the output PDS image record type to stream or fixed.
Definition: ProcessExportPds.cpp:1124
void StandardImageImage(Pvl &mainPvl)
Create the standard keywords for an IMAGE object in a PDS IMAGE file.
Definition: ProcessExportPds.cpp:402
virtual Pvl & StandardPdsLabel(ProcessExportPds::PdsFileType type)
Create a standard PDS label of the type specified.
Definition: ProcessExportPds.cpp:104
void StreamImageRoot(Pvl &mainPvl)
Create the standard keywords for the ROOT object in a PDS IMAGE file.
Definition: ProcessExportPds.cpp:217
PdsExportType
Record format type of exported PDS file.
Definition: ProcessExportPds.h:122
virtual void StartProcess(void funct(Isis::Buffer &in))
This method invokes the process operation over a single input cube.
Definition: ProcessExport.cpp:800
Pvl * m_label
Exported PDS label.
Definition: ProcessExportPds.h:193
void FixedImageRoot(Pvl &mainPvl)
Create the fixed keywords for the ROOT object in a PDS IMAGE file.
Definition: ProcessExportPds.cpp:307
void FixedJP2ImageRoot(Pvl &mainPvl)
Create the fixed keywords for the ROOT object in a PDS JP2 IMAGE file.
Definition: ProcessExportPds.cpp:342
Container for cube-like labels.
Definition: Pvl.h:135
void ForceCenterFilterWavelength(bool force)
Mutator method to set how the CENTER_FILTER_WAVELENGTH keyword will be handled.
Definition: ProcessExportPds.cpp:1162
void ForceCoreLrs(bool force)
Mutator method to set how the CORE_LOW_REPR_SATURATION keyword will be handled.
Definition: ProcessExportPds.cpp:1279
int LineBytes()
Return the line bytes (record size) for the input cube, at present this is based on the number of sam...
Definition: ProcessExportPds.cpp:849
void SetPdsResolution(PdsResolution resolutionUnits)
Mutator method to set the output PDS image resolution to meters per pixel or kilometers per pixel...
Definition: ProcessExportPds.cpp:1113
Class for storing Table blobs information.
Definition: Table.h:77
PdsResolution
Resolution units per pixel of the exported PDS file.
Definition: ProcessExportPds.h:112
Process class for exporting cubes to PDS standards.
Definition: ProcessExportPds.h:90
PdsExportType m_exportType
Stream or Fixed.
Definition: ProcessExportPds.h:194
ProcessExportPds()
Default Constructor - Set to default the data members.
Definition: ProcessExportPds.cpp:48
void CreateQubeLabel()
Create a standard PDS label for type QUBE.
Definition: ProcessExportPds.cpp:173
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
Three dimensional objects with two spatial dimensions and one spectral dimension. ...
Definition: ProcessExportPds.h:102
void StandardJP2Image(Pvl &mainPvl)
Create the standard keywords for an IMAGE object in a PDS JP2 IMAGE file.
Definition: ProcessExportPds.cpp:543
void SetDetached(QString detachedLabelFile)
Mutator method to set the output PDS file to detached.
Definition: ProcessExportPds.cpp:1073
Image coding system JPEG 2000 formatted image.
Definition: ProcessExportPds.h:105
Kilometers per pixel.
Definition: ProcessExportPds.h:114
void ForceSampleType(bool force)
Mutator method to set how the SAMPLE_TYPE keyword will be handled.
Definition: ProcessExportPds.cpp:1253
void StartProcess(std::ofstream &fout)
This method fills the image data of the PDS file using the parent class ProcessExport::StartProcess, then appends any attached tables.
Definition: ProcessExportPds.cpp:1332
void ForceBandwidth(bool force)
Mutator method to set how the BANDWIDTH keyword will be handled.
Definition: ProcessExportPds.cpp:1175
Multi-dimensional array (1-3 dimensional) whose axes may be interpreted as line/sample/band.
Definition: ProcessExportPds.h:99
Stream Records. This type is generally used for ASCII files.
Definition: ProcessExportPds.h:123
Meters per pixel.
Definition: ProcessExportPds.h:113
Two dimensional array of line/sample values.
Definition: ProcessExportPds.h:97
QString ProjectionName(Pvl &inputLabel)
Return a projection name.
Definition: ProcessExportPds.cpp:835
void OutputDetachedLabel()
Write the PDS label to the a detached file.
Definition: ProcessExportPds.cpp:878
void updateChecksumInLabel(std::ofstream &pdsFileStream)
Updates the CHECKSUM value on the label and rewrites to the output file.
Definition: ProcessExportPds.cpp:965

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/12/2023 23:26:58