Loading isis/src/galileo/apps/gllssi2isis/gllssi2isis.cpp +80 −12 Original line number Diff line number Diff line #include "Isis.h" #include <cstdio> #include <QString> #include "ProcessImportPds.h" #include "UserInterface.h" #include "CubeAttribute.h" #include "FileName.h" #include "IException.h" #include "iTime.h" #include "ProcessImportPds.h" #include "UserInterface.h" #include <cstdio> #include <QString> #include <QByteArray> #include <QFileInfo> #include <QFile> using namespace std; using namespace Isis; Loading @@ -17,8 +23,9 @@ bool summed; Cube *summedOutput; void TranslateData(Buffer &inData); void TranslateLabels(Pvl &pdsLabel, Cube *ocube); void translateData(Buffer &inData); void translateLabels(Pvl &pdsLabel, Cube *ocube); void fixPvl(QString fileName); void IsisMain() { Loading @@ -31,7 +38,15 @@ void IsisMain() { FileName inFile = ui.GetFileName("FROM"); FileName out = ui.GetFileName("TO"); fixPvl(inFile.toString()); // Make sure it is a Galileo SSI image Pvl lab(inFile.expanded()); //Checks if in file is rdr Loading Loading @@ -99,11 +114,11 @@ void IsisMain() { summedOutput->setDimensions(p.Samples() / 2, p.Lines() / 2, p.Bands()); summedOutput->setPixelType(p.PixelType()); summedOutput->create(ui.GetFileName("TO")); p.StartProcess(TranslateData); p.StartProcess(translateData); ocube = summedOutput; } TranslateLabels(pdsLabel, ocube); translateLabels(pdsLabel, ocube); p.EndProcess(); if (summed) { Loading @@ -114,11 +129,64 @@ void IsisMain() { return; } void TranslateData(Buffer &inData) { /** * This fixes a problem with some of the Pvl files where a comment * was left open. If the file has this error, the comment is closed * and the file is saved. If the file does not, it's closed without * changing anything. * * @param fileName The full path + file name of the Pvl file * being checked * */ void fixPvl(QString fileName){ QFile pvlFile; pvlFile.setFileName(fileName); pvlFile.open(QFile::ReadWrite | QFile::Text); //Read the Pvl file into a byte array QByteArray fileData = pvlFile.readAll(); //Is this one of the messed up files? if (!fileData.contains(QByteArray("/* Image Object /") ) ){ pvlFile.close(); //No - so return without doing anything return; } //Otherwise, edit the file in place fileData.replace(QByteArray("/* Image Object /"),QByteArray("/* Image Object */")); pvlFile.seek(0); pvlFile.write(fileData); pvlFile.close(); } void translateData(Buffer &inData) { summedOutput->write(inData); } void TranslateLabels(Pvl &pdsLabel, Cube *ocube) { void translateLabels(Pvl &pdsLabel, Cube *ocube) { // Get the directory where the MOC translation tables are. PvlGroup &dataDir = Preference::Preferences().findGroup("DataDirectory"); Loading isis/src/galileo/apps/gllssi2isis/gllssi2isis.xml +6 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,12 @@ contains "SSI-4-REDR-V1.0"). Modified code to set as FULL summing mode if FRAMEMODE=AUTO and the image is reconstructed. </change> <change name="Tyler Wilson" date="2015-10-02"> Added the fixPvl function that fixes Pvl files from orbit I24 which have a comment tag that is not closed off. #Ref 2344 </change> </history> <category> Loading isis/src/galileo/apps/gllssi2isis/tsts/pvlFix/Makefile 0 → 100644 +8 −0 Original line number Diff line number Diff line APPNAME = gllssi2isis include $(ISISROOT)/make/isismake.tsts commands: $(APPNAME) FROM=$(INPUT)/4911s.lbl \ TO=$(OUTPUT)/4911s.cub > /dev/null; catlab FROM=$(OUTPUT)/4911s.cub to=$(OUTPUT)/4911s.txt > /dev/null; isis/src/galileo/apps/gllssi2isis/tsts/pvlFix/input/4911s.lbl 0 → 100644 +151 −0 Original line number Diff line number Diff line CCSD3ZF0000100000001NJPL3IF0PDS200000001 = SFDU_LABEL /* File Format and Length */ RECORD_TYPE = FIXED_LENGTH RECORD_BYTES = 800 FILE_RECORDS = 803 /* Pointers to Data Objects */ ^IMAGE_HEADER = ("4911S.IMG",1) ^IMAGE = ("4911S.IMG",4) /* Description/Catalog Keywords */ DATA_SET_ID = "GO-J/JSA-SSI-4-REDR-V1.0" SPACECRAFT_NAME = "GALILEO ORBITER" INSTRUMENT_NAME = "SOLID STATE IMAGING SYSTEM" /* Time tags and observation descriptors */ SPACECRAFT_CLOCK_CNT_PARTITION = 1 SPACECRAFT_CLOCK_START_COUNT = "05207949.11" IMAGE_TIME = 1999-10-11T04:51:12.894Z IMAGE_ID = "24I0068" ORBIT_NUMBER = 24 OBSERVATION_ID = "24ISCOLCHS02" TARGET_NAME = "IO" NTV_TIME_FROM_CLOSEST_APPROACH = "000T02:49:11Z" NTV_SAT_TIME_FROM_CLOSEST_APRH = "000T00:19:07Z" NOTE = "RECONSTRUCTED IMAGE, NOT IN PDS-COMPLIANT REDR FORMAT" /* Camera and spacecraft state parameters */ FILTER_NAME = "CLEAR" FILTER_NUMBER = 0 EXPOSURE_DURATION = 6.25 GAIN_MODE_ID = "400K" FRAME_DURATION = 2.333 LIGHT_FLOOD_STATE_FLAG = "OFF" EXPOSURE_TYPE = "NORMAL" BLEMISH_PROTECTION_FLAG = "OFF" INVERTED_CLOCK_STATE_FLAG = "NOT INVERTED" ON_CHIP_MOSAIC_FLAG = "N" COMPRESSION_TYPE = "HUFFMAN" ENTROPY = 0.000 TELEMETRY_FORMAT_ID = "AI8" OBSTRUCTION_ID = "NOT POSSIBLE" INSTRUMENT_MODE_ID = "N/A" /* Viewing Geometry */ /* Note: These viewing geometry parameters are best estimates */ /* at the time this picture label was generated. */ POSITIVE_LONGITUDE_DIRECTION = WEST /* Spacecraft Geometry */ TARGET_CENTER_DISTANCE = 8.965335e+03 CENTRAL_BODY_DISTANCE = 4.294315e+05 SUB_SPACECRAFT_LATITUDE = 1.281 SUB_SPACECRAFT_LONGITUDE = 150.758 SUB_SPACECRAFT_LINE = -1101.302 SUB_SPACECRAFT_LINE_SAMPLE = 10012.448 SUB_SPACECRAFT_AZIMUTH = 352.490 /* Camera and Lighting Geometry */ /* Resolution of HORIZONTAL_PIXEL_SCALE, */ /* VERTICAL_PIXEL_SCALE, and SLANT_DISTANCE */ /* is calculated from the light source values in */ /* INTERCEPT_POINT_LATITUDE, INTERCEPT_POINT_LONGITUDE,*/ /* INTERCEPT_POINT_LINE and INTERCEPT_POINT_LINE_SAMPLE keywords */ /* If the target is a Ring keyword RING_RADIUS */ /* is substituted for INTERCEPT_POINT_LATITUDE */ /* If the TARGET_NAME = J RINGS, viewing geometry was */ /* calculated using Jupiter as the target. */ TWIST_ANGLE = 295.478 CONE_ANGLE = 157.529 RIGHT_ASCENSION = 49.905 DECLINATION = 19.751 NORTH_AZIMUTH = 259.903 SMEAR_AZIMUTH = "UNK" SMEAR_MAGNITUDE = "UNK" HORIZONTAL_PIXEL_SCALE = 6.414920e+02 VERTICAL_PIXEL_SCALE = 1.874650e+02 SLANT_DISTANCE = 8.312450e+03 SOLAR_DISTANCE = 7.410850e+08 SUB_SOLAR_LATITUDE = 2.991 SUB_SOLAR_LONGITUDE = 163.341 SUB_SOLAR_AZIMUTH = 346.384 INCIDENCE_ANGLE = 51.333 EMISSION_ANGLE = 75.343 PHASE_ANGLE = 24.049 LOCAL_HOUR_ANGLE = 128.608 INTERCEPT_POINT_LATITUDE = 2.661 INTERCEPT_POINT_LONGITUDE = 214.741 INTERCEPT_POINT_LINE = 200.0 INTERCEPT_POINT_LINE_SAMPLE = 200.0 /* Target radii */ A_AXIS_RADIUS = 1.830000e+03 B_AXIS_RADIUS = 1.818700e+03 C_AXIS_RADIUS = 1.815300e+03 /* Processing parameters */ MEAN_RADIANCE = "N/A" MEAN_REFLECTANCE = "N/A" REFLECTANCE_SCALING_FACTOR = "N/A" RADIANCE_SCALING_FACTOR = "N/A" UNEVEN_BIT_WEIGHT_CORR_FLAG = "N/A" DARK_CURRENT_FILE_NAME = "N/A" SLOPE_FILE_NAME = "N/A" BLEMISH_FILE_NAME = "N/A" SHUTTER_OFFSET_FILE_NAME = "N/A" DATA_TYPE = LSB_UNSIGNED_INTEGER SOURCE_PRODUCT_ID = {"S000105A.BSP","S000105A.BSP","N/A","CKI24AGE.PLT","NULL" } PROCESSING_HISTORY_TEXT = "VICAR programs run: " PRODUCT_TYPE = "REDR" /* HUFFMAN Lossless compression */ ENCODING_COMPRESSION_RATIO = 1.591 ENCODING_MIN_COMPRESSION_RATIO = 1.393 ENCODING_MAX_COMPRESSION_RATIO = 1.631 HUFFMAN_TABLE_TYPE = "UNIFORM" CUT_OUT_WINDOW = {1,1,800,800} PRODUCT_VERSION_ID = 0 /* VICAR IMAGE HEADER Object */ OBJECT = IMAGE_HEADER INTERCHANGE_FORMAT = BINARY HEADER_TYPE = VICAR2 BYTES = 2400 RECORDS = 3 ^DESCRIPTION = "VICAR2.TXT" END_OBJECT /* Image Object */ OBJECT = IMAGE LINES = 800 LINE_SAMPLES = 800 SAMPLE_BITS = 8 SAMPLE_TYPE = UNSIGNED_INTEGER INVALID_CONSTANT = "N/A" LINE_PREFIX_BYTES = 0 ^LINE_PREFIX_STRUCTURE = "" END_OBJECT END END END END isis/src/galileo/apps/gllssi2isis/tsts/pvlFix/truth/4911s.txt 0 → 100644 +76 −0 Original line number Diff line number Diff line Object = IsisCube Object = Core StartByte = 65537 Format = Tile TileSamples = 800 TileLines = 800 Group = Dimensions Samples = 800 Lines = 800 Bands = 1 End_Group Group = Pixels Type = UnsignedByte ByteOrder = Lsb Base = 0.0 Multiplier = 1.0 End_Group End_Object Group = Instrument SpacecraftName = "Galileo Orbiter" InstrumentId = "SOLID STATE IMAGING SYSTEM" TargetName = IO SpacecraftClockStartCount = 05207949.11 StartTime = 1999-10-11T04:51:12.894 ExposureDuration = 0.00625 <seconds> GainModeId = 400000 TelemetryFormat = AI8 LightFloodStateFlag = OFF InvertedClockStateFlag = "NOT INVERTED" BlemishProtectionFlag = OFF ExposureType = NORMAL ReadoutMode = Contiguous FrameDuration = 2.333 <seconds> Summing = 1 FrameModeId = FULL End_Group Group = Archive DataSetId = GO-J/JSA-SSI-4-REDR-V1.0 ProductId = 24I0068 ObservationId = 24ISCOLCHS02 DataType = RADIANCE CalTargetCode = 24 End_Group Group = BandBin FilterName = CLEAR FilterNumber = 0 Center = 0.611 <micrometers> Width = .44 <micrometers> End_Group Group = Kernels NaifFrameCode = -77001 End_Group End_Object Object = Label Bytes = 65536 End_Object Object = History Name = IsisCube StartByte = 705537 Bytes = 588 End_Object Object = OriginalLabel Name = IsisCube StartByte = 706125 Bytes = 6302 End_Object End Loading
isis/src/galileo/apps/gllssi2isis/gllssi2isis.cpp +80 −12 Original line number Diff line number Diff line #include "Isis.h" #include <cstdio> #include <QString> #include "ProcessImportPds.h" #include "UserInterface.h" #include "CubeAttribute.h" #include "FileName.h" #include "IException.h" #include "iTime.h" #include "ProcessImportPds.h" #include "UserInterface.h" #include <cstdio> #include <QString> #include <QByteArray> #include <QFileInfo> #include <QFile> using namespace std; using namespace Isis; Loading @@ -17,8 +23,9 @@ bool summed; Cube *summedOutput; void TranslateData(Buffer &inData); void TranslateLabels(Pvl &pdsLabel, Cube *ocube); void translateData(Buffer &inData); void translateLabels(Pvl &pdsLabel, Cube *ocube); void fixPvl(QString fileName); void IsisMain() { Loading @@ -31,7 +38,15 @@ void IsisMain() { FileName inFile = ui.GetFileName("FROM"); FileName out = ui.GetFileName("TO"); fixPvl(inFile.toString()); // Make sure it is a Galileo SSI image Pvl lab(inFile.expanded()); //Checks if in file is rdr Loading Loading @@ -99,11 +114,11 @@ void IsisMain() { summedOutput->setDimensions(p.Samples() / 2, p.Lines() / 2, p.Bands()); summedOutput->setPixelType(p.PixelType()); summedOutput->create(ui.GetFileName("TO")); p.StartProcess(TranslateData); p.StartProcess(translateData); ocube = summedOutput; } TranslateLabels(pdsLabel, ocube); translateLabels(pdsLabel, ocube); p.EndProcess(); if (summed) { Loading @@ -114,11 +129,64 @@ void IsisMain() { return; } void TranslateData(Buffer &inData) { /** * This fixes a problem with some of the Pvl files where a comment * was left open. If the file has this error, the comment is closed * and the file is saved. If the file does not, it's closed without * changing anything. * * @param fileName The full path + file name of the Pvl file * being checked * */ void fixPvl(QString fileName){ QFile pvlFile; pvlFile.setFileName(fileName); pvlFile.open(QFile::ReadWrite | QFile::Text); //Read the Pvl file into a byte array QByteArray fileData = pvlFile.readAll(); //Is this one of the messed up files? if (!fileData.contains(QByteArray("/* Image Object /") ) ){ pvlFile.close(); //No - so return without doing anything return; } //Otherwise, edit the file in place fileData.replace(QByteArray("/* Image Object /"),QByteArray("/* Image Object */")); pvlFile.seek(0); pvlFile.write(fileData); pvlFile.close(); } void translateData(Buffer &inData) { summedOutput->write(inData); } void TranslateLabels(Pvl &pdsLabel, Cube *ocube) { void translateLabels(Pvl &pdsLabel, Cube *ocube) { // Get the directory where the MOC translation tables are. PvlGroup &dataDir = Preference::Preferences().findGroup("DataDirectory"); Loading
isis/src/galileo/apps/gllssi2isis/gllssi2isis.xml +6 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,12 @@ contains "SSI-4-REDR-V1.0"). Modified code to set as FULL summing mode if FRAMEMODE=AUTO and the image is reconstructed. </change> <change name="Tyler Wilson" date="2015-10-02"> Added the fixPvl function that fixes Pvl files from orbit I24 which have a comment tag that is not closed off. #Ref 2344 </change> </history> <category> Loading
isis/src/galileo/apps/gllssi2isis/tsts/pvlFix/Makefile 0 → 100644 +8 −0 Original line number Diff line number Diff line APPNAME = gllssi2isis include $(ISISROOT)/make/isismake.tsts commands: $(APPNAME) FROM=$(INPUT)/4911s.lbl \ TO=$(OUTPUT)/4911s.cub > /dev/null; catlab FROM=$(OUTPUT)/4911s.cub to=$(OUTPUT)/4911s.txt > /dev/null;
isis/src/galileo/apps/gllssi2isis/tsts/pvlFix/input/4911s.lbl 0 → 100644 +151 −0 Original line number Diff line number Diff line CCSD3ZF0000100000001NJPL3IF0PDS200000001 = SFDU_LABEL /* File Format and Length */ RECORD_TYPE = FIXED_LENGTH RECORD_BYTES = 800 FILE_RECORDS = 803 /* Pointers to Data Objects */ ^IMAGE_HEADER = ("4911S.IMG",1) ^IMAGE = ("4911S.IMG",4) /* Description/Catalog Keywords */ DATA_SET_ID = "GO-J/JSA-SSI-4-REDR-V1.0" SPACECRAFT_NAME = "GALILEO ORBITER" INSTRUMENT_NAME = "SOLID STATE IMAGING SYSTEM" /* Time tags and observation descriptors */ SPACECRAFT_CLOCK_CNT_PARTITION = 1 SPACECRAFT_CLOCK_START_COUNT = "05207949.11" IMAGE_TIME = 1999-10-11T04:51:12.894Z IMAGE_ID = "24I0068" ORBIT_NUMBER = 24 OBSERVATION_ID = "24ISCOLCHS02" TARGET_NAME = "IO" NTV_TIME_FROM_CLOSEST_APPROACH = "000T02:49:11Z" NTV_SAT_TIME_FROM_CLOSEST_APRH = "000T00:19:07Z" NOTE = "RECONSTRUCTED IMAGE, NOT IN PDS-COMPLIANT REDR FORMAT" /* Camera and spacecraft state parameters */ FILTER_NAME = "CLEAR" FILTER_NUMBER = 0 EXPOSURE_DURATION = 6.25 GAIN_MODE_ID = "400K" FRAME_DURATION = 2.333 LIGHT_FLOOD_STATE_FLAG = "OFF" EXPOSURE_TYPE = "NORMAL" BLEMISH_PROTECTION_FLAG = "OFF" INVERTED_CLOCK_STATE_FLAG = "NOT INVERTED" ON_CHIP_MOSAIC_FLAG = "N" COMPRESSION_TYPE = "HUFFMAN" ENTROPY = 0.000 TELEMETRY_FORMAT_ID = "AI8" OBSTRUCTION_ID = "NOT POSSIBLE" INSTRUMENT_MODE_ID = "N/A" /* Viewing Geometry */ /* Note: These viewing geometry parameters are best estimates */ /* at the time this picture label was generated. */ POSITIVE_LONGITUDE_DIRECTION = WEST /* Spacecraft Geometry */ TARGET_CENTER_DISTANCE = 8.965335e+03 CENTRAL_BODY_DISTANCE = 4.294315e+05 SUB_SPACECRAFT_LATITUDE = 1.281 SUB_SPACECRAFT_LONGITUDE = 150.758 SUB_SPACECRAFT_LINE = -1101.302 SUB_SPACECRAFT_LINE_SAMPLE = 10012.448 SUB_SPACECRAFT_AZIMUTH = 352.490 /* Camera and Lighting Geometry */ /* Resolution of HORIZONTAL_PIXEL_SCALE, */ /* VERTICAL_PIXEL_SCALE, and SLANT_DISTANCE */ /* is calculated from the light source values in */ /* INTERCEPT_POINT_LATITUDE, INTERCEPT_POINT_LONGITUDE,*/ /* INTERCEPT_POINT_LINE and INTERCEPT_POINT_LINE_SAMPLE keywords */ /* If the target is a Ring keyword RING_RADIUS */ /* is substituted for INTERCEPT_POINT_LATITUDE */ /* If the TARGET_NAME = J RINGS, viewing geometry was */ /* calculated using Jupiter as the target. */ TWIST_ANGLE = 295.478 CONE_ANGLE = 157.529 RIGHT_ASCENSION = 49.905 DECLINATION = 19.751 NORTH_AZIMUTH = 259.903 SMEAR_AZIMUTH = "UNK" SMEAR_MAGNITUDE = "UNK" HORIZONTAL_PIXEL_SCALE = 6.414920e+02 VERTICAL_PIXEL_SCALE = 1.874650e+02 SLANT_DISTANCE = 8.312450e+03 SOLAR_DISTANCE = 7.410850e+08 SUB_SOLAR_LATITUDE = 2.991 SUB_SOLAR_LONGITUDE = 163.341 SUB_SOLAR_AZIMUTH = 346.384 INCIDENCE_ANGLE = 51.333 EMISSION_ANGLE = 75.343 PHASE_ANGLE = 24.049 LOCAL_HOUR_ANGLE = 128.608 INTERCEPT_POINT_LATITUDE = 2.661 INTERCEPT_POINT_LONGITUDE = 214.741 INTERCEPT_POINT_LINE = 200.0 INTERCEPT_POINT_LINE_SAMPLE = 200.0 /* Target radii */ A_AXIS_RADIUS = 1.830000e+03 B_AXIS_RADIUS = 1.818700e+03 C_AXIS_RADIUS = 1.815300e+03 /* Processing parameters */ MEAN_RADIANCE = "N/A" MEAN_REFLECTANCE = "N/A" REFLECTANCE_SCALING_FACTOR = "N/A" RADIANCE_SCALING_FACTOR = "N/A" UNEVEN_BIT_WEIGHT_CORR_FLAG = "N/A" DARK_CURRENT_FILE_NAME = "N/A" SLOPE_FILE_NAME = "N/A" BLEMISH_FILE_NAME = "N/A" SHUTTER_OFFSET_FILE_NAME = "N/A" DATA_TYPE = LSB_UNSIGNED_INTEGER SOURCE_PRODUCT_ID = {"S000105A.BSP","S000105A.BSP","N/A","CKI24AGE.PLT","NULL" } PROCESSING_HISTORY_TEXT = "VICAR programs run: " PRODUCT_TYPE = "REDR" /* HUFFMAN Lossless compression */ ENCODING_COMPRESSION_RATIO = 1.591 ENCODING_MIN_COMPRESSION_RATIO = 1.393 ENCODING_MAX_COMPRESSION_RATIO = 1.631 HUFFMAN_TABLE_TYPE = "UNIFORM" CUT_OUT_WINDOW = {1,1,800,800} PRODUCT_VERSION_ID = 0 /* VICAR IMAGE HEADER Object */ OBJECT = IMAGE_HEADER INTERCHANGE_FORMAT = BINARY HEADER_TYPE = VICAR2 BYTES = 2400 RECORDS = 3 ^DESCRIPTION = "VICAR2.TXT" END_OBJECT /* Image Object */ OBJECT = IMAGE LINES = 800 LINE_SAMPLES = 800 SAMPLE_BITS = 8 SAMPLE_TYPE = UNSIGNED_INTEGER INVALID_CONSTANT = "N/A" LINE_PREFIX_BYTES = 0 ^LINE_PREFIX_STRUCTURE = "" END_OBJECT END END END END
isis/src/galileo/apps/gllssi2isis/tsts/pvlFix/truth/4911s.txt 0 → 100644 +76 −0 Original line number Diff line number Diff line Object = IsisCube Object = Core StartByte = 65537 Format = Tile TileSamples = 800 TileLines = 800 Group = Dimensions Samples = 800 Lines = 800 Bands = 1 End_Group Group = Pixels Type = UnsignedByte ByteOrder = Lsb Base = 0.0 Multiplier = 1.0 End_Group End_Object Group = Instrument SpacecraftName = "Galileo Orbiter" InstrumentId = "SOLID STATE IMAGING SYSTEM" TargetName = IO SpacecraftClockStartCount = 05207949.11 StartTime = 1999-10-11T04:51:12.894 ExposureDuration = 0.00625 <seconds> GainModeId = 400000 TelemetryFormat = AI8 LightFloodStateFlag = OFF InvertedClockStateFlag = "NOT INVERTED" BlemishProtectionFlag = OFF ExposureType = NORMAL ReadoutMode = Contiguous FrameDuration = 2.333 <seconds> Summing = 1 FrameModeId = FULL End_Group Group = Archive DataSetId = GO-J/JSA-SSI-4-REDR-V1.0 ProductId = 24I0068 ObservationId = 24ISCOLCHS02 DataType = RADIANCE CalTargetCode = 24 End_Group Group = BandBin FilterName = CLEAR FilterNumber = 0 Center = 0.611 <micrometers> Width = .44 <micrometers> End_Group Group = Kernels NaifFrameCode = -77001 End_Group End_Object Object = Label Bytes = 65536 End_Object Object = History Name = IsisCube StartByte = 705537 Bytes = 588 End_Object Object = OriginalLabel Name = IsisCube StartByte = 706125 Bytes = 6302 End_Object End