Isis 3.0
Back | Home
ProcessImportPds.h
Go to the documentation of this file.
1 #ifndef ProcessImportPds_h
2 #define ProcessImportPds_h
3 
25 #include "ProcessImport.h"
26 
27 #include <vector>
28 
29 #include "Pvl.h"
30 #include <QString>
31 
32 namespace Isis {
33  class PvlTranslationManager;
34  class Table;
218 
219  public:
220  enum PdsFileType {
221  Image = 1,
222  Qube = 2,
224  L0 = 8,
225  Rdn = 16,
226  Loc = 32,
227  Obs = 64,
230  };
232  virtual ~ProcessImportPds();
233  void SetPdsFile(const QString &pdsLabelFile, const QString &pdsDataFile,
234  Pvl &pdsLabel, PdsFileType allowedTypes = All);
235  void SetPdsFile(const Pvl &pdsLabelPvl, const QString &pdsDataFile,
236  PdsFileType allowedTypes = All);
237  void ProcessLabel(const QString &pdsDataFile, PdsFileType allowedTypes);
238 
239  void TranslatePdsProjection(Pvl &lab);
240  void TranslateIsis2Labels(Pvl &lab);
241  void TranslatePdsLabels(Pvl &lab);
242 
243  bool IsIsis2();
244 
245  void OmitOriginalLabel();
246 
247  Table &ImportTable(QString pdsTableName);
248  // since we are overriding StartProcess(), we must specify for other
249  // overloaded calls to StartProcess(), the ProcessImport class method
250  // definitions should be used.
252  void StartProcess();
253  void StartProcess(void funct(Isis::Buffer &out));
254  void EndProcess();
255  void Finalize();
256  private:
257 
258 
259  enum Source {
260  NOSOURCE,
261  PDS,
262  ISIS2
263  };
264 
265  enum EncodingType {
266  NONE,
267  JP2
268  };
269 
270  void ProcessDataFilePointer(PvlTranslationManager & pdsXlater,
271  const bool & calcOffsetOnly);
272  void ProcessPixelBitandType(PvlTranslationManager & pdsXlater);
273  void ProcessSpecialPixels(PvlTranslationManager & pdsXlater, const bool & isQube);
274 
275  void ProcessPdsImageLabel(const QString &pdsDataFile);
276  void ProcessPdsQubeLabel(const QString &pdsDataFile, const QString &transFile);
277  void ProcessPdsM3Label(const QString &pdsDataFile, PdsFileType fileType);
278  void ProcessPdsCombinedSpectrumLabel(const QString &pdsDataFile);
279 
280  void ExtractPdsProjection(PvlTranslationManager &pdsXlater);
281  void GetProjectionOffsetMults(double &xoff, double &yoff,
282  double &xmult, double &ymult);
283 
284  void IdentifySource(Pvl &lab);
285 
286  void TranslateIsis2BandBin(Pvl &lab);
287  void TranslateIsis2Instrument(Pvl &lab);
288  void TranslatePdsBandBin(Pvl &lab);
289  void TranslatePdsArchive(Pvl &lab);
290 
291  Pvl p_pdsLabel;
292  QString p_labelFile;
293 
294  QString p_transDir;
295 
296  // Encoding info
297  EncodingType p_encodingType;
300  QString p_jp2File;
303  // Projection info
304  QString p_projection;
306  QString p_targetName;
307  double p_equatorialRadius;
309  double p_polarRadius;
311  QString p_longitudeDirection;
313  int p_longitudeDomain;
315  QString p_latitudeType;
317  double p_minimumLatitude;
319  double p_maximumLatitude;
321  double p_minimumLongitude;
323  double p_maximumLongitude;
325  double p_pixelResolution;
327  double p_scaleFactor;
329  double p_rotation;
331  double p_sampleProjectionOffset;
332  double p_lineProjectionOffset;
333  double p_upperLeftX;
334  double p_upperLeftY;
335 
336  bool p_keepOriginalLabel;
338  std::vector<Table> p_tables;
342  Source p_source;
343  };
344 };
345 
346 #endif
347 
348 
Buffer for reading and writing cube data.
Definition: Buffer.h:68
Definition: ProcessImportPds.h:229
void TranslatePdsProjection(Pvl &lab)
Fills the passed in label with the projection information from the PDS label file.
Definition: ProcessImportPds.cpp:1027
PdsFileType
Definition: ProcessImportPds.h:220
Definition: ProcessImportPds.h:225
virtual ~ProcessImportPds()
Definition: ProcessImportPds.cpp:66
Definition: ProcessImportPds.h:227
Definition: ProcessImportPds.h:226
Definition: ProcessImportPds.h:228
void StartProcess()
This method will write the cube and table data to the output cube.
Definition: ProcessImportPds.cpp:1654
Table & ImportTable(QString pdsTableName)
This method will import the PDS table with the given name into an Isis Table object.
Definition: ProcessImportPds.cpp:1632
Definition: ProcessImportPds.h:222
void TranslateIsis2Labels(Pvl &lab)
Translate as many of the ISIS2 labels as possible.
Definition: ProcessImportPds.cpp:1483
virtual void StartProcess()
Process the input file and write it to the output.
Definition: ProcessImport.cpp:1286
This represents a cube in a project-based GUI interface.
Definition: Image.h:91
void TranslatePdsLabels(Pvl &lab)
Translate as many of the PDS labels as possible.
Definition: ProcessImportPds.cpp:1496
Definition: ProcessImportPds.h:223
Container for cube-like labels.
Definition: Pvl.h:135
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.
Definition: ProcessImportPds.cpp:112
void ProcessLabel(const QString &pdsDataFile, PdsFileType allowedTypes)
Load the PDS labels after determining what type of data file was provided.
Definition: ProcessImportPds.cpp:150
Convert PDS archive files to Isis format.
Definition: ProcessImportPds.h:217
Class for storing Table blobs information.
Definition: Table.h:74
Byte swapper.
Definition: ProcessImport.h:155
void Finalize()
End the processing sequence and cleans up by closing cubes, freeing memory, etc.
Definition: ProcessImportPds.cpp:1398
void EndProcess()
Definition: ProcessImportPds.cpp:1388
void OmitOriginalLabel()
Prevents the Original Label blob from being written out to the end of the cube.
Definition: ProcessImportPds.cpp:1413
bool IsIsis2()
Return true if ISIS2 cube, else return false.
Definition: ProcessImportPds.cpp:1462
Definition: ProcessImportPds.h:224
ProcessImportPds()
Constructor.
Definition: ProcessImportPds.cpp:55

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 ISIS Support Center
File Modified: 07/12/2023 23:26:11