Isis Developer Reference
ProcessImportPds.h
Go to the documentation of this file.
1#ifndef ProcessImportPds_h
2#define ProcessImportPds_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include "ProcessImport.h"
10
11#include <vector>
12
13#include "Pvl.h"
14#include "PvlGroup.h"
15#include <QString>
16
17namespace Isis {
18 class PvlToPvlTranslationManager;
19 class Table;
215
216 public:
229 virtual ~ProcessImportPds();
232 void SetPdsFile(const QString &pdsLabelFile, const QString &pdsDataFile,
233 Pvl &pdsLabel, PdsFileType allowedTypes = All);
234 void SetPdsFile(const Pvl &pdsLabelPvl, const QString &pdsDataFile,
235 PdsFileType allowedTypes = All);
236 void ProcessLabel(const QString &pdsDataFile, PdsFileType allowedTypes);
237
238 void TranslatePdsProjection(Pvl &lab);
239 void TranslateIsis2Labels(Pvl &lab);
240 void TranslatePdsLabels(Pvl &lab);
241
242 bool IsIsis2();
243
244 void OmitOriginalLabel();
245
246 Table &ImportTable(QString pdsTableName);
247 // since we are overriding StartProcess(), we must specify for other
248 // overloaded calls to StartProcess(), the ProcessImport class method
249 // definitions should be used.
251 void StartProcess();
252 void StartProcess(void funct(Isis::Buffer &out));
253 void EndProcess();
254 void Finalize();
255 private:
256
257
258 enum Source {
259 NOSOURCE,
260 PDS,
261 ISIS2
262 };
263
264 enum EncodingType {
265 NONE,
266 JP2
267 };
268
269 void ProcessDataFilePointer(PvlToPvlTranslationManager & pdsXlater,
270 const bool & calcOffsetOnly);
271 void ProcessPixelBitandType(PvlToPvlTranslationManager & pdsXlater);
272 void ProcessSpecialPixels(PvlToPvlTranslationManager & pdsXlater, const bool & isQube);
273
274 void ProcessPdsImageLabel(const QString &pdsDataFile);
275 void ProcessPdsQubeLabel(const QString &pdsDataFile, const QString &transFile);
276 void ProcessPdsM3Label(const QString &pdsDataFile, PdsFileType fileType);
277 void ProcessPdsCombinedSpectrumLabel(const QString &pdsDataFile);
278
279 void ExtractPdsProjection(PvlToPvlTranslationManager &pdsXlater);
280 void GetProjectionOffsetMults(double &xoff, double &yoff,
281 double &xmult, double &ymult);
282
283 void IdentifySource(Pvl &lab);
284
285 void TranslateIsis2BandBin(Pvl &lab);
286 void TranslateIsis2Instrument(Pvl &lab);
287 void TranslatePdsBandBin(Pvl &lab);
288 void TranslatePdsArchive(Pvl &lab);
289
290 Pvl p_pdsLabel;
291 QString p_labelFile;
292
293 QString p_transDir;
294
295 // Encoding info
296 EncodingType p_encodingType;
299 QString p_jp2File;
302 // Projection info
303 QString p_projection;
306 bool p_projectionOffsetChange;
309 PvlGroup p_projectionOffsetGroup;
311 QString p_targetName;
312 double p_equatorialRadius;
314 double p_polarRadius;
316 QString p_longitudeDirection;
318 int p_longitudeDomain;
320 QString p_latitudeType;
322 double p_minimumLatitude;
324 double p_maximumLatitude;
326 double p_minimumLongitude;
328 double p_maximumLongitude;
330 double p_pixelResolution;
332 double p_scaleFactor;
334 double p_rotation;
336 double p_sampleProjectionOffset;
337 double p_lineProjectionOffset;
338 double p_upperLeftX;
339 double p_upperLeftY;
340
341 bool p_keepOriginalLabel;
343 std::vector<Table> p_tables;
347 Source p_source;
348 };
349};
350
351#endif
Buffer for reading and writing cube data.
Definition Buffer.h:53
This represents a cube in a project-based GUI interface.
Definition Image.h:107
Byte swapper.
Definition ProcessImport.h:155
virtual void StartProcess()
Process the input file and write it to the output.
Definition ProcessImport.cpp:1302
Convert PDS archive files to Isis format.
Definition ProcessImportPds.h:214
void TranslateIsis2Labels(Pvl &lab)
Translate as many of the ISIS2 labels as possible.
Definition ProcessImportPds.cpp:1500
virtual ~ProcessImportPds()
Definition ProcessImportPds.cpp:52
void EndProcess()
Definition ProcessImportPds.cpp:59
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:1395
ProcessImportPds()
Constructor.
Definition ProcessImportPds.cpp:40
void StartProcess()
This method will write the cube and table data to the output cube.
Definition ProcessImportPds.cpp:1421
void OmitOriginalLabel()
Prevents the Original Label blob from being written out to the end of the cube.
Definition ProcessImportPds.cpp:472
void TranslatePdsProjection(Pvl &lab)
Fills the passed in label with the projection information from the PDS label file.
Definition ProcessImportPds.cpp:1562
bool GetProjectionOffsetChange()
Return whether the projection offsets have changed.
Definition ProcessImportPds.cpp:326
bool IsIsis2()
Return true if ISIS2 cube, else return false.
Definition ProcessImportPds.cpp:455
Table & ImportTable(QString pdsTableName)
This method will import the PDS table with the given name into an Isis Table object.
Definition ProcessImportPds.cpp:428
void TranslatePdsLabels(Pvl &lab)
Translate as many of the PDS labels as possible.
Definition ProcessImportPds.cpp:1545
PvlGroup GetProjectionOffsetGroup()
Return the projection offsets.
Definition ProcessImportPds.cpp:334
void ProcessLabel(const QString &pdsDataFile, PdsFileType allowedTypes)
Load the PDS labels after determining what type of data file was provided.
Definition ProcessImportPds.cpp:595
PdsFileType
Definition ProcessImportPds.h:217
@ Loc
Definition ProcessImportPds.h:223
@ Obs
Definition ProcessImportPds.h:224
@ SpectralQube
Definition ProcessImportPds.h:220
@ Qube
Definition ProcessImportPds.h:219
@ L0
Definition ProcessImportPds.h:221
@ CombinedSpectrum
Definition ProcessImportPds.h:225
@ All
Definition ProcessImportPds.h:226
@ Rdn
Definition ProcessImportPds.h:222
void Finalize()
End the processing sequence and cleans up by closing cubes, freeing memory, etc.
Definition ProcessImportPds.cpp:312
Contains multiple PvlContainers.
Definition PvlGroup.h:41
Container for cube-like labels.
Definition Pvl.h:119
Class for storing Table blobs information.
Definition Table.h:61
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16