diff --git a/isis/src/base/apps/cam2map/cam2map.cpp b/isis/src/base/apps/cam2map/cam2map.cpp index ec27703d9e3d3d121af4c845534fd43dab0a664d..a52b4da424cc7c21bcd0e5e8a563250b26ef60bc 100644 --- a/isis/src/base/apps/cam2map/cam2map.cpp +++ b/isis/src/base/apps/cam2map/cam2map.cpp @@ -432,7 +432,9 @@ namespace Isis { p.EndProcess(); // add mapping to print.prt - log->addGroup(cleanMapping); + if(log) { + log->addGroup(cleanMapping); + } // Cleanup delete outmap; diff --git a/isis/src/tgo/tsts/singleFrameletProjection/Makefile b/isis/src/tgo/tsts/singleFrameletProjection/Makefile deleted file mode 100644 index 5804855b316e4a83b56961b7da29d6acb2d27f46..0000000000000000000000000000000000000000 --- a/isis/src/tgo/tsts/singleFrameletProjection/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -INGEST = tgocassis2isis -SPICE = spiceinit -MAP = mosrange -PROJECT = cam2map -EXPORT = tgocassisrdrgen - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(LS) $(INPUT)/*.xml > $(OUTPUT)/inputs.lis; - $(SED) 's/^.*input\///g' $(OUTPUT)/inputs.lis > $(OUTPUT)/relative.lis; - $(SED) 's/\.xml//g' $(OUTPUT)/relative.lis > $(OUTPUT)/basenames.lis; - $(INGEST) $(TSTARGS) from=$(INPUT)/$\$$\1.xml \ - to=$(OUTPUT)/$\$$\1.cub -batchlist=$(OUTPUT)/basenames.lis > /dev/null; - $(SPICE) $(TSTARGS) from=$(OUTPUT)/$\$$\1.cub \ - SPKPREDICTED=true CKPREDICTED=true -batchlist=$(OUTPUT)/basenames.lis > /dev/null; - $(LS) $(OUTPUT)/*.cub > $(OUTPUT)/cubes.lis; - $(MAP) $(TSTARGS) fromlist=$(OUTPUT)/cubes.lis to=$(OUTPUT)/equi.map > /dev/null; - $(PROJECT) $(TSTARGS) from=$(OUTPUT)/$\$$\1.cub to=$(OUTPUT)/$\$$\1_equi.cub \ - map=$(OUTPUT)/equi.map \ - pixres=mpp resolution=200 -batchlist=$(OUTPUT)/basenames.lis > /dev/null; - $(EXPORT) $(TSTARGS) from=$(OUTPUT)/$\$$\1_equi.cub \ - to=$(OUTPUT)/$\$$\1_equi.img -batchlist=$(OUTPUT)/basenames.lis > /dev/null; - for label in `ls $(OUTPUT)/*.xml`; do \ - $(SED) 's+\Product_Observational.*>+\Product_Observational>+' \ - $$label > $${label%.xml}1.txt; \ - $(SED) 's+\description.*>+\description>+' \ - $${label%.xml}1.txt > $${label%.xml}2.txt; \ - $(SED) 's+\modification_date.*>+\modification_date>+' \ - $${label%.xml}2.txt > $${label%.xml}3.txt; \ - $(SED) 's+\FSW_HEADER.*>+\FSW_HEADER>+' \ - $${label%.xml}3.txt > $${label%.xml}4.txt; \ - $(SED) 's+\PEHK_HEADER.*>+\PEHK_HEADER>+' \ - $${label%.xml}4.txt > $${label%.xml}5.txt; \ - $(SED) 's+\Modification_Detail.*>+\Modification_Detail>+' \ - $${label%.xml}5.txt > $${label%.xml}.txt; \ - $(RM) $$label; \ - $(RM) $${label%.xml}1.txt; \ - $(RM) $${label%.xml}2.txt; \ - $(RM) $${label%.xml}3.txt; \ - $(RM) $${label%.xml}4.txt; \ - $(RM) $${label%.xml}5.txt; \ - done; - $(MV) $(OUTPUT)/equi.map $(OUTPUT)/equi.pvl - $(RM) $(OUTPUT)/inputs.lis - $(RM) $(OUTPUT)/relative.lis - $(RM) $(OUTPUT)/basenames.lis - $(RM) $(OUTPUT)/cubes.lis diff --git a/isis/tests/TgoCassisModuleTests.cpp b/isis/tests/TgoCassisModuleTests.cpp index 66805dc7530cb6239acd09e8bcd0ba1c641b2e0b..7a44223ed6cb7f8aaea488915ca271b21faef156 100644 --- a/isis/tests/TgoCassisModuleTests.cpp +++ b/isis/tests/TgoCassisModuleTests.cpp @@ -10,6 +10,8 @@ #include "spiceinit.h" #include "tgocassisstitch.h" #include "tgocassisunstitch.h" +#include "mosrange.h" +#include "cam2map.h" #include "gtest/gtest.h" @@ -17,8 +19,10 @@ using namespace Isis; static QString TGOCASSIS2ISIS_XML = FileName("$ISISROOT/bin/xml/tgocassis2isis.xml").expanded(); static QString SPICEINIT_XML = FileName("$ISISROOT/bin/xml/spiceinit.xml").expanded(); -static QString TGOCASSISSTITCH_XML = FileName("$ISISROOT/bin/xml/tgocassisstitch.xml").expanded(); -static QString TGOCASSISUNSTITCH_XML = FileName("$ISISROOT/bin/xml/tgocassisunstitch.xml").expanded(); +static QString STITCH_XML = FileName("$ISISROOT/bin/xml/tgocassisstitch.xml").expanded(); +static QString UNSTITCH_XML = FileName("$ISISROOT/bin/xml/tgocassisunstitch.xml").expanded(); +static QString MOSRANGE_XML = FileName("$ISISROOT/bin/xml/mosrange.xml").expanded(); +static QString CAM2MAP_XML = FileName("$ISISROOT/bin/xml/cam2map.xml").expanded(); TEST(TgoCassisModuleTests, TgoCassisStitchUnstitch) { QTemporaryDir prefix; @@ -120,7 +124,7 @@ TEST(TgoCassisModuleTests, TgoCassisStitchUnstitch) { QVector stitchArgs = {"fromlist=" + cubeListFile, "outputprefix=" + prefix.path() + "/stitched"}; - UserInterface stitchOptions(TGOCASSISSTITCH_XML, stitchArgs); + UserInterface stitchOptions(STITCH_XML, stitchArgs); try { tgocassisstitch(stitchOptions); @@ -131,7 +135,7 @@ TEST(TgoCassisModuleTests, TgoCassisStitchUnstitch) { QVector unstitchArgs = {"from=" + prefix.path() + "/stitched-2016-11-26T22:50:27.381.cub", "outputprefix=" + prefix.path() + "/unstitched"}; - UserInterface unstitchOptions(TGOCASSISUNSTITCH_XML, unstitchArgs); + UserInterface unstitchOptions(UNSTITCH_XML, unstitchArgs); try { tgocassisunstitch(unstitchOptions); @@ -537,4 +541,526 @@ TEST(TgoCassisModuleTests, TgoCassisStitchUnstitch) { EXPECT_EQ(nirUnstitchHist->Sum(), nirOrigHist->Sum()); EXPECT_EQ(nirUnstitchHist->ValidPixels(), nirOrigHist->ValidPixels()); EXPECT_EQ(nirUnstitchHist->StandardDeviation(), nirOrigHist->StandardDeviation()); +} + + +TEST(TgoCassisModuleTests, TgoCassisSingleFrameletProjection) { + QTemporaryDir prefix; + + // run tgocassis2isis and spiceinit on pan framelet. + QString panFileName = prefix.path() + "/panframelet.cub"; + QVector tgocassis2isisArgs = {"from=data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.xml", + "to=" + panFileName}; + + UserInterface tgocassis2isisPan(TGOCASSIS2ISIS_XML, tgocassis2isisArgs); + try { + tgocassis2isis(tgocassis2isisPan); + } + catch (IException &e) { + FAIL() << "Unable to run tgocassis2isis on pan image: " << e.what() << std::endl; + } + + QVector spiceinitArgs = {"from=" + panFileName, "ckp=t", "spkp=t"}; + UserInterface spiceinitPan(SPICEINIT_XML, spiceinitArgs); + try { + spiceinit(spiceinitPan); + } + catch (IException &e) { + FAIL() << "Unable to run spiceinit on pan image: " << e.what() << std::endl; + } + + // run tgocassis2isis and spiceinit on red framelet. + QString redFileName = prefix.path() + "/redframelet.cub"; + tgocassis2isisArgs = {"from=data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.xml", + "to=" + redFileName}; + UserInterface tgocassis2isisRed(TGOCASSIS2ISIS_XML, tgocassis2isisArgs); + try { + tgocassis2isis(tgocassis2isisRed); + } + catch (IException &e) { + FAIL() << "Unable to run tgocassis2isis on pan image: " << e.what() << std::endl; + } + + spiceinitArgs = {"from=" + redFileName, "ckp=t", "spkp=t"}; + UserInterface spiceinitRed(SPICEINIT_XML, spiceinitArgs); + try { + spiceinit(spiceinitRed); + } + catch (IException &e) { + FAIL() << "Unable to run spiceinit on pan image: " << e.what() << std::endl; + } + + // run tgocassis2isis and spiceinit on blu framelet. + QString bluFileName = prefix.path() + "/bluframelet.cub"; + tgocassis2isisArgs = {"from=data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.xml", + "to=" + bluFileName}; + UserInterface tgocassis2isisBlu(TGOCASSIS2ISIS_XML, tgocassis2isisArgs); + try { + tgocassis2isis(tgocassis2isisBlu); + } + catch (IException &e) { + FAIL() << "Unable to run tgocassis2isis on blu image: " << e.what() << std::endl; + } + + spiceinitArgs = {"from=" + bluFileName, "ckp=t", "spkp=t"}; + UserInterface spiceinitBlu(SPICEINIT_XML, spiceinitArgs); + try { + spiceinit(spiceinitBlu); + } + catch (IException &e) { + FAIL() << "Unable to run spiceinit on blu image: " << e.what() << std::endl; + } + + // run tgocassis2isis and spiceinit on nir framelet. + QString nirFileName = prefix.path() + "/nirframelet.cub"; + tgocassis2isisArgs = {"from=data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.xml", + "to=" + nirFileName}; + UserInterface tgocassis2isisNir(TGOCASSIS2ISIS_XML, tgocassis2isisArgs); + try { + tgocassis2isis(tgocassis2isisNir); + } + catch (IException &e) { + FAIL() << "Unable to run tgocassis2isis on nir image: " << e.what() << std::endl; + } + + spiceinitArgs = {"from=" + nirFileName, "ckp=t", "spkp=t"}; + UserInterface spiceinitNir(SPICEINIT_XML, spiceinitArgs); + try { + spiceinit(spiceinitNir); + } + catch (IException &e) { + FAIL() << "Unable to run spiceinit on nir image: " << e.what() << std::endl; + } + + // run mosrange on cube list + FileList *cubeList = new FileList(); + cubeList->append(panFileName); + cubeList->append(redFileName); + cubeList->append(bluFileName); + cubeList->append(nirFileName); + + QString cubeListFile = prefix.path() + "/cubelist.lis"; + cubeList->write(cubeListFile); + + QString mapFile = prefix.path() + "/equi.map"; + QVector mosrangeArgs = {"fromlist=" + cubeListFile, "to=" + mapFile}; + UserInterface mosrangeOptions(MOSRANGE_XML, mosrangeArgs); + + try { + mosrange(mosrangeOptions); + } + catch (IException &e) { + FAIL() << "Unable to run mosrange with cube list: " << e.what() << std::endl; + } + + // run cam2map on pan cube + QString panEquiFile = prefix.path() + "/pan_equi.cub"; + QVector cam2mapArgs = {"from=" + panFileName, + "to=" + panEquiFile, + "map=" + mapFile}; + UserInterface cam2mapPan(CAM2MAP_XML, cam2mapArgs); + try { + cam2map(cam2mapPan); + } + catch (IException &e) { + FAIL() << "Unable to run cam2map on pan image: " << e.what() << std::endl; + } + + // run cam2map on nir cube + QString nirEquiFile = prefix.path() + "/nir_equi.cub"; + cam2mapArgs = {"from=" + nirFileName, "to=" + nirEquiFile, "map=" + mapFile}; + UserInterface cam2mapNir(CAM2MAP_XML, cam2mapArgs); + try { + cam2map(cam2mapNir); + } + catch (IException &e) { + FAIL() << "Unable to run cam2map on nir image: " << e.what() << std::endl; + } + + // run cam2map on blu cube + QString bluEquiFile = prefix.path() + "/blu_equi.cub"; + cam2mapArgs = {"from=" + bluFileName, "to=" + bluEquiFile, "map=" + mapFile}; + UserInterface cam2mapBlu(CAM2MAP_XML, cam2mapArgs); + try { + cam2map(cam2mapBlu); + } + catch (IException &e) { + FAIL() << "Unable to run cam2map on blu image: " << e.what() << std::endl; + } + + // run cam2map on red cube + QString redEquiFile = prefix.path() + "/red_equi.cub"; + cam2mapArgs = {"from=" + redFileName, "to=" + redEquiFile, "map=" + mapFile}; + UserInterface cam2mapRed(CAM2MAP_XML, cam2mapArgs); + try { + cam2map(cam2mapRed); + } + catch (IException &e) { + FAIL() << "Unable to run cam2map on red image: " << e.what() << std::endl; + } + + // PAN Cube + Cube panCube(panEquiFile); + Pvl *panLabel = panCube.label(); + + // Instrument Group + PvlGroup &inst = panLabel->findGroup("Instrument", Pvl::Traverse); + EXPECT_EQ(inst["SpacecraftName"][0].toStdString(), "TRACE GAS ORBITER"); + EXPECT_EQ(inst["InstrumentId"][0].toStdString(), "CaSSIS"); + EXPECT_EQ(inst["TargetName"][0].toStdString(), "Mars" ); + EXPECT_EQ(inst["StartTime"][0].toStdString(), "2016-11-26T22:58:02.583"); + EXPECT_EQ(inst["SpacecraftClockStartCount"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_EQ(inst["ExposureDuration"][0].toStdString(), "1.920e-003"); + EXPECT_EQ(int(inst["SummingMode"]), 0); + EXPECT_EQ(inst["Filter"][0].toStdString(), "PAN"); + + // Archive Group + PvlGroup &archive = panLabel->findGroup("Archive", Pvl::Traverse); + EXPECT_EQ(archive["DataSetId"][0].toStdString(), "TBD"); + EXPECT_EQ(archive["ProductVersionId"][0].toStdString(), "UNK"); + EXPECT_EQ(archive["ProductCreationTime"][0].toStdString(), "2017-10-03T10:50:26"); + EXPECT_DOUBLE_EQ(double(archive["ScalingFactor"]), 1.0); + EXPECT_DOUBLE_EQ(double(archive["Offset"]), 0.0); + EXPECT_DOUBLE_EQ(double(archive["PredictMaximumExposureTime"]), 3.4317); + EXPECT_DOUBLE_EQ(double(archive["CassisOffNadirAngle"]), 32.2820); + EXPECT_DOUBLE_EQ(double(archive["PredictedRepetitionFrequency"]), 790.7); + EXPECT_DOUBLE_EQ(double(archive["GroundTrackVelocity"]), 2.3616); + EXPECT_DOUBLE_EQ(double(archive["ForwardRotationAngle"]), 47.93); + EXPECT_DOUBLE_EQ(double(archive["SpiceMisalignment"]), 174.295); + EXPECT_DOUBLE_EQ(double(archive["FocalLength"]), 0.8770); + EXPECT_DOUBLE_EQ(double(archive["FNumber"]), 6.50); + EXPECT_EQ(int(archive["ExposureTimeCommand"]), 200); + EXPECT_EQ(int(archive["FrameletNumber"]), 20); + EXPECT_EQ(int(archive["NumberOfFramelets"]), 40); + EXPECT_EQ(int(archive["ImageFrequency"]), 1200000); + EXPECT_EQ(int(archive["NumberOfWindows"]), 6); + EXPECT_EQ(int(archive["UniqueIdentifier"]), 100799468); + EXPECT_EQ(archive["ExposureTimestamp"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_DOUBLE_EQ(double(archive["ExposureTimePEHK"]), 0.00192); + EXPECT_DOUBLE_EQ(double(archive["PixelsPossiblySaturated"]), 0.00); + EXPECT_EQ(int(archive["WindowCount"]), 0); + EXPECT_EQ(int(archive["Window1Binning"]), 0); + EXPECT_EQ(int(archive["Window1StartSample"]), 0); + EXPECT_EQ(int(archive["Window1EndSample"]), 2047); + EXPECT_EQ(int(archive["Window1StartLine"]), 354); + EXPECT_EQ(int(archive["Window1EndLine"]), 633); + EXPECT_EQ(int(archive["Window2Binning"]), 0); + EXPECT_EQ(int(archive["Window2StartSample"]), 0); + EXPECT_EQ(int(archive["Window2EndSample"]), 2047); + EXPECT_EQ(int(archive["Window2StartLine"]), 712); + EXPECT_EQ(int(archive["Window2EndLine"]), 966); + EXPECT_EQ(int(archive["Window3Binning"]), 0); + EXPECT_EQ(int(archive["Window3StartSample"]), 0); + EXPECT_EQ(int(archive["Window3EndSample"]), 2047); + EXPECT_EQ(int(archive["Window3StartLine"]), 1048); + EXPECT_EQ(int(archive["Window3EndLine"]), 1302); + EXPECT_EQ(int(archive["Window4Binning"]), 0); + EXPECT_EQ(int(archive["Window4StartSample"]), 0); + EXPECT_EQ(int(archive["Window4EndSample"]), 2047); + EXPECT_EQ(int(archive["Window4StartLine"]), 1409); + EXPECT_EQ(int(archive["Window4EndLine"]), 1662); + EXPECT_EQ(int(archive["Window5Binning"]), 0); + EXPECT_EQ(int(archive["Window5StartSample"]), 640); + EXPECT_EQ(int(archive["Window5EndSample"]), 767); + EXPECT_EQ(int(archive["Window5StartLine"]), 200); + EXPECT_EQ(int(archive["Window5EndLine"]), 208); + EXPECT_EQ(int(archive["Window6Binning"]), 0); + EXPECT_EQ(int(archive["Window6StartSample"]), 1280); + EXPECT_EQ(int(archive["Window6EndSample"]), 1407); + EXPECT_EQ(int(archive["Window6StartLine"]), 1850); + EXPECT_EQ(int(archive["Window6EndLine"]), 1858); + EXPECT_EQ(int(archive["YearDoy"]), 2016331); + EXPECT_EQ(archive["ObservationId"][0].toStdString(), "CRUS_049218_251_0"); + + // BandBin Group + PvlGroup &bandbin = panLabel->findGroup("BandBin", Pvl::Traverse); + EXPECT_EQ(bandbin["FilterName"][0].toStdString(), "PAN"); + EXPECT_DOUBLE_EQ(double(bandbin["Center"]), 677.40); + EXPECT_DOUBLE_EQ(double(bandbin["Width"]), 231.5); + EXPECT_EQ(bandbin["NaifIkCode"][0].toStdString(), "-143421"); + + // Kernels Group + PvlGroup &kernels = panLabel->findGroup("Kernels", Pvl::Traverse); + EXPECT_EQ(int(kernels["NaifFrameCode"]), -143400); + + Histogram *hist = panCube.histogram(); + + EXPECT_NEAR(hist->Average(), 0.082351300138231429, 0.0001); + EXPECT_NEAR(hist->Sum(), 70857.19977273792, 0.0001); + EXPECT_EQ(hist->ValidPixels(), 860426); + EXPECT_NEAR(hist->StandardDeviation(), 0.0010547865346787659, 0.0001); + + // NIR Cube + Cube nirCube(nirEquiFile); + Pvl *nirLabel = nirCube.label(); + + // Instrument Group + inst = nirLabel->findGroup("Instrument", Pvl::Traverse); + EXPECT_EQ(inst["SpacecraftName"][0].toStdString(), "TRACE GAS ORBITER"); + EXPECT_EQ(inst["InstrumentId"][0].toStdString(), "CaSSIS"); + EXPECT_EQ(inst["TargetName"][0].toStdString(), "Mars" ); + EXPECT_EQ(inst["StartTime"][0].toStdString(), "2016-11-26T22:58:02.583"); + EXPECT_EQ(inst["SpacecraftClockStartCount"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_EQ(inst["ExposureDuration"][0].toStdString(), "1.920e-003"); + EXPECT_EQ(int(inst["SummingMode"]), 0); + EXPECT_EQ(inst["Filter"][0].toStdString(), "NIR"); + + // Archive Group + archive = nirLabel->findGroup("Archive", Pvl::Traverse); + EXPECT_EQ(archive["DataSetId"][0].toStdString(), "TBD"); + EXPECT_EQ(archive["ProductVersionId"][0].toStdString(), "UNK"); + EXPECT_EQ(archive["ProductCreationTime"][0].toStdString(), "2017-10-03T10:50:26"); + EXPECT_DOUBLE_EQ(double(archive["ScalingFactor"]), 1.0); + EXPECT_DOUBLE_EQ(double(archive["Offset"]), 0.0); + EXPECT_DOUBLE_EQ(double(archive["PredictMaximumExposureTime"]), 3.4317); + EXPECT_DOUBLE_EQ(double(archive["CassisOffNadirAngle"]), 32.2820); + EXPECT_DOUBLE_EQ(double(archive["PredictedRepetitionFrequency"]), 790.7); + EXPECT_DOUBLE_EQ(double(archive["GroundTrackVelocity"]), 2.3616); + EXPECT_DOUBLE_EQ(double(archive["ForwardRotationAngle"]), 47.93); + EXPECT_DOUBLE_EQ(double(archive["SpiceMisalignment"]), 174.295); + EXPECT_DOUBLE_EQ(double(archive["FocalLength"]), 0.8770); + EXPECT_DOUBLE_EQ(double(archive["FNumber"]), 6.50); + EXPECT_EQ(int(archive["ExposureTimeCommand"]), 200); + EXPECT_EQ(int(archive["FrameletNumber"]), 20); + EXPECT_EQ(int(archive["NumberOfFramelets"]), 40); + EXPECT_EQ(int(archive["ImageFrequency"]), 1200000); + EXPECT_EQ(int(archive["NumberOfWindows"]), 6); + EXPECT_EQ(int(archive["UniqueIdentifier"]), 100799468); + EXPECT_EQ(archive["ExposureTimestamp"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_DOUBLE_EQ(double(archive["ExposureTimePEHK"]), 0.00192); + EXPECT_DOUBLE_EQ(double(archive["PixelsPossiblySaturated"]), 0.00); + EXPECT_EQ(int(archive["WindowCount"]), 2); + EXPECT_EQ(int(archive["Window1Binning"]), 0); + EXPECT_EQ(int(archive["Window1StartSample"]), 0); + EXPECT_EQ(int(archive["Window1EndSample"]), 2047); + EXPECT_EQ(int(archive["Window1StartLine"]), 354); + EXPECT_EQ(int(archive["Window1EndLine"]), 632); + EXPECT_EQ(int(archive["Window2Binning"]), 0); + EXPECT_EQ(int(archive["Window2StartSample"]), 0); + EXPECT_EQ(int(archive["Window2EndSample"]), 2047); + EXPECT_EQ(int(archive["Window2StartLine"]), 712); + EXPECT_EQ(int(archive["Window2EndLine"]), 966); + EXPECT_EQ(int(archive["Window3Binning"]), 0); + EXPECT_EQ(int(archive["Window3StartSample"]), 0); + EXPECT_EQ(int(archive["Window3EndSample"]), 2047); + EXPECT_EQ(int(archive["Window3StartLine"]), 1048); + EXPECT_EQ(int(archive["Window3EndLine"]), 1303); + EXPECT_EQ(int(archive["Window4Binning"]), 0); + EXPECT_EQ(int(archive["Window4StartSample"]), 0); + EXPECT_EQ(int(archive["Window4EndSample"]), 2047); + EXPECT_EQ(int(archive["Window4StartLine"]), 1409); + EXPECT_EQ(int(archive["Window4EndLine"]), 1662); + EXPECT_EQ(int(archive["Window5Binning"]), 0); + EXPECT_EQ(int(archive["Window5StartSample"]), 640); + EXPECT_EQ(int(archive["Window5EndSample"]), 767); + EXPECT_EQ(int(archive["Window5StartLine"]), 200); + EXPECT_EQ(int(archive["Window5EndLine"]), 208); + EXPECT_EQ(int(archive["Window6Binning"]), 0); + EXPECT_EQ(int(archive["Window6StartSample"]), 1280); + EXPECT_EQ(int(archive["Window6EndSample"]), 1407); + EXPECT_EQ(int(archive["Window6StartLine"]), 1850); + EXPECT_EQ(int(archive["Window6EndLine"]), 1858); + EXPECT_EQ(int(archive["YearDoy"]), 2016331); + EXPECT_EQ(archive["ObservationId"][0].toStdString(), "CRUS_049218_251_0"); + + // BandBin Group + bandbin = nirLabel->findGroup("BandBin", Pvl::Traverse); + EXPECT_EQ(bandbin["FilterName"][0].toStdString(), "NIR"); + EXPECT_DOUBLE_EQ(double(bandbin["Center"]), 940.2); + EXPECT_DOUBLE_EQ(double(bandbin["Width"]), 120.60); + EXPECT_EQ(bandbin["NaifIkCode"][0].toStdString(), "-143423"); + + // Kernels Group + kernels = nirLabel->findGroup("Kernels", Pvl::Traverse); + EXPECT_EQ(int(kernels["NaifFrameCode"]), -143400); + + hist = nirCube.histogram(); + + EXPECT_NEAR(hist->Average(), 0.096215370187754598, 0.0001); + EXPECT_NEAR(hist->Sum(), 78150.645788893104, 0.0001); + EXPECT_EQ(hist->ValidPixels(), 812247); + EXPECT_NEAR(hist->StandardDeviation(), 0.0015024999314775509, 0.0001); + + // RED Cube + Cube redCube(redEquiFile); + Pvl *redLabel = redCube.label(); + + // Instrument Group + inst = redLabel->findGroup("Instrument", Pvl::Traverse); + EXPECT_EQ(inst["SpacecraftName"][0].toStdString(), "TRACE GAS ORBITER"); + EXPECT_EQ(inst["InstrumentId"][0].toStdString(), "CaSSIS"); + EXPECT_EQ(inst["TargetName"][0].toStdString(), "Mars" ); + EXPECT_EQ(inst["StartTime"][0].toStdString(), "2016-11-26T22:58:02.583"); + EXPECT_EQ(inst["SpacecraftClockStartCount"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_EQ(inst["ExposureDuration"][0].toStdString(), "1.920e-003"); + EXPECT_EQ(int(inst["SummingMode"]), 0); + EXPECT_EQ(inst["Filter"][0].toStdString(), "RED"); + + // Archive Group + archive = redLabel->findGroup("Archive", Pvl::Traverse); + EXPECT_EQ(archive["DataSetId"][0].toStdString(), "TBD"); + EXPECT_EQ(archive["ProductVersionId"][0].toStdString(), "UNK"); + EXPECT_EQ(archive["ProductCreationTime"][0].toStdString(), "2017-10-03T10:50:26"); + EXPECT_DOUBLE_EQ(double(archive["ScalingFactor"]), 1.0); + EXPECT_DOUBLE_EQ(double(archive["Offset"]), 0.0); + EXPECT_DOUBLE_EQ(double(archive["PredictMaximumExposureTime"]), 3.4317); + EXPECT_DOUBLE_EQ(double(archive["CassisOffNadirAngle"]), 32.2820); + EXPECT_DOUBLE_EQ(double(archive["PredictedRepetitionFrequency"]), 790.7); + EXPECT_DOUBLE_EQ(double(archive["GroundTrackVelocity"]), 2.3616); + EXPECT_DOUBLE_EQ(double(archive["ForwardRotationAngle"]), 47.93); + EXPECT_DOUBLE_EQ(double(archive["SpiceMisalignment"]), 174.295); + EXPECT_DOUBLE_EQ(double(archive["FocalLength"]), 0.8770); + EXPECT_DOUBLE_EQ(double(archive["FNumber"]), 6.50); + EXPECT_EQ(int(archive["ExposureTimeCommand"]), 200); + EXPECT_EQ(int(archive["FrameletNumber"]), 20); + EXPECT_EQ(int(archive["NumberOfFramelets"]), 40); + EXPECT_EQ(int(archive["ImageFrequency"]), 1200000); + EXPECT_EQ(int(archive["NumberOfWindows"]), 6); + EXPECT_EQ(int(archive["UniqueIdentifier"]), 100799468); + EXPECT_EQ(archive["ExposureTimestamp"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_DOUBLE_EQ(double(archive["ExposureTimePEHK"]), 0.00192); + EXPECT_DOUBLE_EQ(double(archive["PixelsPossiblySaturated"]), 0.00); + EXPECT_EQ(int(archive["WindowCount"]), 1); + EXPECT_EQ(int(archive["Window1Binning"]), 0); + EXPECT_EQ(int(archive["Window1StartSample"]), 0); + EXPECT_EQ(int(archive["Window1EndSample"]), 2047); + EXPECT_EQ(int(archive["Window1StartLine"]), 354); + EXPECT_EQ(int(archive["Window1EndLine"]), 632); + EXPECT_EQ(int(archive["Window2Binning"]), 0); + EXPECT_EQ(int(archive["Window2StartSample"]), 0); + EXPECT_EQ(int(archive["Window2EndSample"]), 2047); + EXPECT_EQ(int(archive["Window2StartLine"]), 712); + EXPECT_EQ(int(archive["Window2EndLine"]), 967); + EXPECT_EQ(int(archive["Window3Binning"]), 0); + EXPECT_EQ(int(archive["Window3StartSample"]), 0); + EXPECT_EQ(int(archive["Window3EndSample"]), 2047); + EXPECT_EQ(int(archive["Window3StartLine"]), 1048); + EXPECT_EQ(int(archive["Window3EndLine"]), 1302); + EXPECT_EQ(int(archive["Window4Binning"]), 0); + EXPECT_EQ(int(archive["Window4StartSample"]), 0); + EXPECT_EQ(int(archive["Window4EndSample"]), 2047); + EXPECT_EQ(int(archive["Window4StartLine"]), 1409); + EXPECT_EQ(int(archive["Window4EndLine"]), 1662); + EXPECT_EQ(int(archive["Window5Binning"]), 0); + EXPECT_EQ(int(archive["Window5StartSample"]), 640); + EXPECT_EQ(int(archive["Window5EndSample"]), 767); + EXPECT_EQ(int(archive["Window5StartLine"]), 200); + EXPECT_EQ(int(archive["Window5EndLine"]), 208); + EXPECT_EQ(int(archive["Window6Binning"]), 0); + EXPECT_EQ(int(archive["Window6StartSample"]), 1280); + EXPECT_EQ(int(archive["Window6EndSample"]), 1407); + EXPECT_EQ(int(archive["Window6StartLine"]), 1850); + EXPECT_EQ(int(archive["Window6EndLine"]), 1858); + EXPECT_EQ(int(archive["YearDoy"]), 2016331); + EXPECT_EQ(archive["ObservationId"][0].toStdString(), "CRUS_049218_251_0"); + + // BandBin Group + bandbin = redLabel->findGroup("BandBin", Pvl::Traverse); + EXPECT_EQ(bandbin["FilterName"][0].toStdString(), "RED"); + EXPECT_DOUBLE_EQ(double(bandbin["Center"]), 835.40); + EXPECT_DOUBLE_EQ(double(bandbin["Width"]), 98); + EXPECT_EQ(bandbin["NaifIkCode"][0].toStdString(), "-143422"); + + // Kernels Group + kernels = redLabel->findGroup("Kernels", Pvl::Traverse); + EXPECT_EQ(int(kernels["NaifFrameCode"]), -143400); + + hist = redCube.histogram(); + + EXPECT_NEAR(hist->Average(), 0.098812884362865061, 0.0001); + EXPECT_NEAR(hist->Sum(), 78810.883871480823, 0.0001); + EXPECT_EQ(hist->ValidPixels(), 797577); + EXPECT_NEAR(hist->StandardDeviation(), 0.0020888136703382234, 0.0001); + + + // BLU Cube + Cube bluCube(bluEquiFile); + Pvl *bluLabel = bluCube.label(); + + // Instrument Group + inst = bluLabel->findGroup("Instrument", Pvl::Traverse); + EXPECT_EQ(inst["SpacecraftName"][0].toStdString(), "TRACE GAS ORBITER"); + EXPECT_EQ(inst["InstrumentId"][0].toStdString(), "CaSSIS"); + EXPECT_EQ(inst["TargetName"][0].toStdString(), "Mars" ); + EXPECT_EQ(inst["StartTime"][0].toStdString(), "2016-11-26T22:58:02.583"); + EXPECT_EQ(inst["SpacecraftClockStartCount"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_EQ(inst["ExposureDuration"][0].toStdString(), "1.920e-003"); + EXPECT_EQ(int(inst["SummingMode"]), 0); + EXPECT_EQ(inst["Filter"][0].toStdString(), "BLU"); + + // Archive Group + archive = bluLabel->findGroup("Archive", Pvl::Traverse); + EXPECT_EQ(archive["DataSetId"][0].toStdString(), "TBD"); + EXPECT_EQ(archive["ProductVersionId"][0].toStdString(), "UNK"); + EXPECT_EQ(archive["ProductCreationTime"][0].toStdString(), "2017-10-03T10:50:26"); + EXPECT_DOUBLE_EQ(double(archive["ScalingFactor"]), 1.0); + EXPECT_DOUBLE_EQ(double(archive["Offset"]), 0.0); + EXPECT_DOUBLE_EQ(double(archive["PredictMaximumExposureTime"]), 3.4317); + EXPECT_DOUBLE_EQ(double(archive["CassisOffNadirAngle"]), 32.2820); + EXPECT_DOUBLE_EQ(double(archive["PredictedRepetitionFrequency"]), 790.7); + EXPECT_DOUBLE_EQ(double(archive["GroundTrackVelocity"]), 2.3616); + EXPECT_DOUBLE_EQ(double(archive["ForwardRotationAngle"]), 47.93); + EXPECT_DOUBLE_EQ(double(archive["SpiceMisalignment"]), 174.295); + EXPECT_DOUBLE_EQ(double(archive["FocalLength"]), 0.8770); + EXPECT_DOUBLE_EQ(double(archive["FNumber"]), 6.50); + EXPECT_EQ(int(archive["ExposureTimeCommand"]), 200); + EXPECT_EQ(int(archive["FrameletNumber"]), 20); + EXPECT_EQ(int(archive["NumberOfFramelets"]), 40); + EXPECT_EQ(int(archive["ImageFrequency"]), 1200000); + EXPECT_EQ(int(archive["NumberOfWindows"]), 6); + EXPECT_EQ(int(archive["UniqueIdentifier"]), 100799468); + EXPECT_EQ(archive["ExposureTimestamp"][0].toStdString(), "2f0154373db1aa13"); + EXPECT_DOUBLE_EQ(double(archive["ExposureTimePEHK"]), 0.00192); + EXPECT_DOUBLE_EQ(double(archive["PixelsPossiblySaturated"]), 0.00); + EXPECT_EQ(int(archive["WindowCount"]), 3); + EXPECT_EQ(int(archive["Window1Binning"]), 0); + EXPECT_EQ(int(archive["Window1StartSample"]), 0); + EXPECT_EQ(int(archive["Window1EndSample"]), 2047); + EXPECT_EQ(int(archive["Window1StartLine"]), 354); + EXPECT_EQ(int(archive["Window1EndLine"]), 632); + EXPECT_EQ(int(archive["Window2Binning"]), 0); + EXPECT_EQ(int(archive["Window2StartSample"]), 0); + EXPECT_EQ(int(archive["Window2EndSample"]), 2047); + EXPECT_EQ(int(archive["Window2StartLine"]), 712); + EXPECT_EQ(int(archive["Window2EndLine"]), 966); + EXPECT_EQ(int(archive["Window3Binning"]), 0); + EXPECT_EQ(int(archive["Window3StartSample"]), 0); + EXPECT_EQ(int(archive["Window3EndSample"]), 2047); + EXPECT_EQ(int(archive["Window3StartLine"]), 1048); + EXPECT_EQ(int(archive["Window3EndLine"]), 1302); + EXPECT_EQ(int(archive["Window4Binning"]), 0); + EXPECT_EQ(int(archive["Window4StartSample"]), 0); + EXPECT_EQ(int(archive["Window4EndSample"]), 2047); + EXPECT_EQ(int(archive["Window4StartLine"]), 1409); + EXPECT_EQ(int(archive["Window4EndLine"]), 1660); + EXPECT_EQ(int(archive["Window5Binning"]), 0); + EXPECT_EQ(int(archive["Window5StartSample"]), 640); + EXPECT_EQ(int(archive["Window5EndSample"]), 767); + EXPECT_EQ(int(archive["Window5StartLine"]), 200); + EXPECT_EQ(int(archive["Window5EndLine"]), 208); + EXPECT_EQ(int(archive["Window6Binning"]), 0); + EXPECT_EQ(int(archive["Window6StartSample"]), 1280); + EXPECT_EQ(int(archive["Window6EndSample"]), 1407); + EXPECT_EQ(int(archive["Window6StartLine"]), 1850); + EXPECT_EQ(int(archive["Window6EndLine"]), 1858); + EXPECT_EQ(int(archive["YearDoy"]), 2016331); + EXPECT_EQ(archive["ObservationId"][0].toStdString(), "CRUS_049218_251_0"); + + // BandBin Group + bandbin = bluLabel->findGroup("BandBin", Pvl::Traverse); + EXPECT_EQ(bandbin["FilterName"][0].toStdString(), "BLU"); + EXPECT_DOUBLE_EQ(double(bandbin["Center"]), 497.40); + EXPECT_DOUBLE_EQ(double(bandbin["Width"]), 134.3); + EXPECT_EQ(bandbin["NaifIkCode"][0].toStdString(), "-143424"); + + // Kernels Group + kernels = bluLabel->findGroup("Kernels", Pvl::Traverse); + EXPECT_EQ(int(kernels["NaifFrameCode"]), -143400); + + hist = bluCube.histogram(); + + EXPECT_NEAR(hist->Average(), 0.051942847688226532, 0.0001); + EXPECT_NEAR(hist->Sum(), 42226.834142448381, 0.0001); + EXPECT_EQ(hist->ValidPixels(), 812948); + EXPECT_NEAR(hist->StandardDeviation(), 0.00085567958401590197, 0.0001); } \ No newline at end of file diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.dat b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.dat new file mode 100644 index 0000000000000000000000000000000000000000..b7381e801649956c903b2a8de89e15616b29cb3d Binary files /dev/null and b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.dat differ diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.xml b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.xml new file mode 100644 index 0000000000000000000000000000000000000000..d45f595072292acbeb4e35fd9db52b92108feba8 --- /dev/null +++ b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1.xml @@ -0,0 +1,237 @@ + + + + + TBD + UNK + CaSSIS Data Record + TBD + Product_Observational + + + 2017-02-02T07:59:29 + Header_Creation: c_new_header + V3.1 + + + 2017-02-02T07:59:29 + SC TM Conversion: c_sc_file_resolution + V1.3 + 07-Jan-2017 + + + 2017-02-02T07:59:29 + SC TM Conversion: c_batch_sc_tm_packets + V1.11 + 01-Feb-2017 + + + 2017-08-25T09:32:57 + Dataset reconstruction to correct line shift: cassis_reconstruct_shift + V1.0 + 25-Aug-2017 + + + 2017-10-03T10:30:16 + Bias Subtraction: c_remove_bias + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:30:16 + Flat field removal (flat_field_170710.dat): c_remove_flat + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:30:17 + Expansion: c_expand + V1.1 + + + 2017-10-03T10:30:17 + Absolute_Calibration: c_absolute_calibration + V1.1 + + + 2017-10-03T10:30:17 + SC TM Conversion: c_top_batch_level0tolevel1 + V1.5 + 02-Mar-2017 + + + 2017-10-03T10:50:26 + Command_Verification: c_top_batch_level1tolevel1b + V1.3 + + + + Nicolas Thomas + UBE + Physikalisches Inst., Universitaet Bern + Thomas, N., Cremonese, G., Banaszkiewicz, M., Bridges, J., Byrne, S., da Deppo, V., Debei, S., El-Maarry, M. R., et al. The Colour and Stereo Surface Imaging System (CaSSIS) for ESAs Trace Gas Orbiter. 8th Mars International Conference, 2014. Abstract #1067. + + + + + + + TGO + TRACE GAS ORBITER + TRACE GAS ORBITER + EXOMARS TRACE GAS ORBITER + + + Colour and Stereo Surface Imaging System on Exomars Trace Gas Orbiter + The scientific imaging system of Exomars TGO + + TGO + Spacecraft + Instrument Host + + + CaSSIS + Instrument + PUSH-FRAME CMOS VISIBLE REFLECTING TELESCOPE + + + + + + + 1.140e-005 + 0.8770 + 6.50 + Three-mirror anastigmat with powered fold mirror + 2D Array + 10.0 + 10.0 + SI CMOS HYBRID (OSPREY 2K) + 61.0 + BLU RED NIR PAN + + + + + 2016-11-26T22:58:02.583 + MCO + BLU + 0.00 + 1 + 2.66306e-005 + + Mars + 38.2592 + -22.1203 + 1.3870385 + 4758.9 + 1.4120971 + 65.678 + 20.19 + 114.321 + 72.9235 + 6.5988 + 41.638 + 32.282 + ( 56.891016, 56.667294, 56.796975, 57.018327) + ( 3.384629, 2.660405, 2.659621, 3.381452) + 45.280 + 78.014 + 49.009 + 2.3616 + 2.2347, 0.7189, 0.2576 + 3.4317 + 790.7 + 57.105584 + 3.019360 + 47.930 + 174.295 + 5.8822 + 4.9384, 3.1804, -0.3116 + -0.0672, 0.6730, 0.7366 + 1770.273 + 30.4267 + em16_tgo_cassis_scp_tel_20160314_20161019_s20160414_v01.bc,cassis_ck_p_160312_161127_170201.bc,em16_tgo_sc_fpp_009_01_20160314_20170207_s20170116_v01.bc,em16_tgo_v10.tf,em16_tgo_ops_v02.tf,rssd0002.tf,em16_tgo_cassis_v04.ti,naif0012.tls,PCK00010.TPC,de-403-masses.TPC,em16_tgo_step_20170116.tsc,em16_tgo_fpp_009_01_20160314_20170315_v01.bsp,em16_tgo_flp_001_01_20170314_20180402_v01.bsp,DE432s.BSP,mar097.BSP + + + 5 + 200 + 40 + 1200000 + 0 + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 2C4 + FFE4F2 + 590 + FFE78E + 830 + FFEA2E + B02 + FFECFE + 500190 + 5FE1A2 + A00E74 + AFEE86 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 65116 + 100799468 + 0 + 0 + 5 + 16895 + 060213ec + + + + + Listing + + + + + + + + + CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1 + 2017-10-03T10:50:26 + CaSSIS specific XML header + D:\CaSSIS\data\MCO\161126_periapsis_orbit10\level1b\CAS-MCO-2016-11-26T22.58.02.583-BLU-03020-B1 + + + 2 + + Sample + 1 + 2048 + + + Line + 2 + 252 + + + IEEE754LSBSingle + 4 + First_Index_Fastest + DN + 1.00 + 0.00 + + + + + diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.dat b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.dat new file mode 100644 index 0000000000000000000000000000000000000000..9fe9aefa4de924dd523070aec4ca84f803a8108b Binary files /dev/null and b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.dat differ diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.xml b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a50f33df2c55326b0720d573baf4d934235b7e8 --- /dev/null +++ b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1.xml @@ -0,0 +1,237 @@ + + + + + TBD + UNK + CaSSIS Data Record + TBD + Product_Observational + + + 2017-02-02T07:59:28 + Header_Creation: c_new_header + V3.1 + + + 2017-02-02T07:59:28 + SC TM Conversion: c_sc_file_resolution + V1.3 + 07-Jan-2017 + + + 2017-02-02T07:59:28 + SC TM Conversion: c_batch_sc_tm_packets + V1.11 + 01-Feb-2017 + + + 2017-08-25T09:32:57 + Dataset reconstruction to correct line shift: cassis_reconstruct_shift + V1.0 + 25-Aug-2017 + + + 2017-10-03T10:28:48 + Bias Subtraction: c_remove_bias + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:28:48 + Flat field removal (flat_field_170710.dat): c_remove_flat + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:28:48 + Expansion: c_expand + V1.1 + + + 2017-10-03T10:28:48 + Absolute_Calibration: c_absolute_calibration + V1.1 + + + 2017-10-03T10:28:48 + SC TM Conversion: c_top_batch_level0tolevel1 + V1.5 + 02-Mar-2017 + + + 2017-10-03T10:50:26 + Command_Verification: c_top_batch_level1tolevel1b + V1.3 + + + + Nicolas Thomas + UBE + Physikalisches Inst., Universitaet Bern + Thomas, N., Cremonese, G., Banaszkiewicz, M., Bridges, J., Byrne, S., da Deppo, V., Debei, S., El-Maarry, M. R., et al. The Colour and Stereo Surface Imaging System (CaSSIS) for ESAs Trace Gas Orbiter. 8th Mars International Conference, 2014. Abstract #1067. + + + + + + + TGO + TRACE GAS ORBITER + TRACE GAS ORBITER + EXOMARS TRACE GAS ORBITER + + + Colour and Stereo Surface Imaging System on Exomars Trace Gas Orbiter + The scientific imaging system of Exomars TGO + + TGO + Spacecraft + Instrument Host + + + CaSSIS + Instrument + PUSH-FRAME CMOS VISIBLE REFLECTING TELESCOPE + + + + + + + 1.140e-005 + 0.8770 + 6.50 + Three-mirror anastigmat with powered fold mirror + 2D Array + 10.0 + 10.0 + SI CMOS HYBRID (OSPREY 2K) + 61.0 + BLU RED NIR PAN + + + + + 2016-11-26T22:58:02.583 + MCO + NIR + 0.00 + 1 + 3.65250e-005 + + Mars + 38.2592 + -22.1203 + 1.3870385 + 4758.9 + 1.4120971 + 65.678 + 20.19 + 114.321 + 72.9235 + 6.5988 + 41.638 + 32.282 + ( 57.058380, 56.837769, 56.965957, 57.184260) + ( 3.380434, 2.659352, 2.658442, 3.377179) + 45.446 + 77.863 + 48.641 + 2.3616 + 2.2347, 0.7189, 0.2576 + 3.4317 + 790.7 + 57.105584 + 3.019360 + 47.930 + 174.295 + 5.8822 + 4.9384, 3.1804, -0.3116 + -0.0672, 0.6730, 0.7366 + 1770.273 + 30.4267 + em16_tgo_cassis_scp_tel_20160314_20161019_s20160414_v01.bc,cassis_ck_p_160312_161127_170201.bc,em16_tgo_sc_fpp_009_01_20160314_20170207_s20170116_v01.bc,em16_tgo_v10.tf,em16_tgo_ops_v02.tf,rssd0002.tf,em16_tgo_cassis_v04.ti,naif0012.tls,PCK00010.TPC,de-403-masses.TPC,em16_tgo_step_20170116.tsc,em16_tgo_fpp_009_01_20160314_20170315_v01.bsp,em16_tgo_flp_001_01_20170314_20180402_v01.bsp,DE432s.BSP,mar097.BSP + + + 5 + 200 + 40 + 1200000 + 0 + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 2C4 + FFE4F2 + 590 + FFE78E + 830 + FFEA2E + B02 + FFECFE + 500190 + 5FE1A2 + A00E74 + AFEE86 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 65116 + 100799468 + 0 + 0 + 5 + 16895 + 060213ec + + + + + Listing + + + + + + + + + CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1 + 2017-10-03T10:50:26 + CaSSIS specific XML header + D:\CaSSIS\data\MCO\161126_periapsis_orbit10\level1b\CAS-MCO-2016-11-26T22.58.02.583-NIR-02020-B1 + + + 2 + + Sample + 1 + 2048 + + + Line + 2 + 256 + + + IEEE754LSBSingle + 4 + First_Index_Fastest + DN + 1.00 + 0.00 + + + + + diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.dat b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.dat new file mode 100644 index 0000000000000000000000000000000000000000..ea0b529957933c94a11b9bfc57dea5c4bd9d4a34 Binary files /dev/null and b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.dat differ diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.xml b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.xml new file mode 100644 index 0000000000000000000000000000000000000000..d521d5e445813a52ca2e3fe4c0c8dcd4732e2434 --- /dev/null +++ b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1.xml @@ -0,0 +1,237 @@ + + + + + TBD + UNK + CaSSIS Data Record + TBD + Product_Observational + + + 2017-02-02T07:59:28 + Header_Creation: c_new_header + V3.1 + + + 2017-02-02T07:59:28 + SC TM Conversion: c_sc_file_resolution + V1.3 + 07-Jan-2017 + + + 2017-02-02T07:59:28 + SC TM Conversion: c_batch_sc_tm_packets + V1.11 + 01-Feb-2017 + + + 2017-08-25T09:32:57 + Dataset reconstruction to correct line shift: cassis_reconstruct_shift + V1.0 + 25-Aug-2017 + + + 2017-10-03T10:25:46 + Bias Subtraction: c_remove_bias + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:25:46 + Flat field removal (flat_field_170710.dat): c_remove_flat + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:25:46 + Expansion: c_expand + V1.1 + + + 2017-10-03T10:25:46 + Absolute_Calibration: c_absolute_calibration + V1.1 + + + 2017-10-03T10:25:46 + SC TM Conversion: c_top_batch_level0tolevel1 + V1.5 + 02-Mar-2017 + + + 2017-10-03T10:50:26 + Command_Verification: c_top_batch_level1tolevel1b + V1.3 + + + + Nicolas Thomas + UBE + Physikalisches Inst., Universitaet Bern + Thomas, N., Cremonese, G., Banaszkiewicz, M., Bridges, J., Byrne, S., da Deppo, V., Debei, S., El-Maarry, M. R., et al. The Colour and Stereo Surface Imaging System (CaSSIS) for ESAs Trace Gas Orbiter. 8th Mars International Conference, 2014. Abstract #1067. + + + + + + + TGO + TRACE GAS ORBITER + TRACE GAS ORBITER + EXOMARS TRACE GAS ORBITER + + + Colour and Stereo Surface Imaging System on Exomars Trace Gas Orbiter + The scientific imaging system of Exomars TGO + + TGO + Spacecraft + Instrument Host + + + CaSSIS + Instrument + PUSH-FRAME CMOS VISIBLE REFLECTING TELESCOPE + + + + + + + 1.140e-005 + 0.8770 + 6.50 + Three-mirror anastigmat with powered fold mirror + 2D Array + 10.0 + 10.0 + SI CMOS HYBRID (OSPREY 2K) + 61.0 + BLU RED NIR PAN + + + + + 2016-11-26T22:58:02.583 + MCO + PAN + 0.00 + 1 + 1.34368e-005 + + Mars + 38.2592 + -22.1203 + 1.3870385 + 4758.9 + 1.4120971 + 65.678 + 20.19 + 114.321 + 72.9235 + 6.5988 + 41.638 + 32.282 + ( 57.383664, 57.168963, 57.306020, 57.518326) + ( 3.371844, 2.656794, 2.655538, 3.368119) + 45.782 + 77.564 + 47.908 + 2.3616 + 2.2347, 0.7189, 0.2576 + 3.4317 + 790.7 + 57.105584 + 3.019360 + 47.930 + 174.295 + 5.8822 + 4.9384, 3.1804, -0.3116 + -0.0672, 0.6730, 0.7366 + 1770.273 + 30.4267 + em16_tgo_cassis_scp_tel_20160314_20161019_s20160414_v01.bc,cassis_ck_p_160312_161127_170201.bc,em16_tgo_sc_fpp_009_01_20160314_20170207_s20170116_v01.bc,em16_tgo_v10.tf,em16_tgo_ops_v02.tf,rssd0002.tf,em16_tgo_cassis_v04.ti,naif0012.tls,PCK00010.TPC,de-403-masses.TPC,em16_tgo_step_20170116.tsc,em16_tgo_fpp_009_01_20160314_20170315_v01.bsp,em16_tgo_flp_001_01_20170314_20180402_v01.bsp,DE432s.BSP,mar097.BSP + + + 5 + 200 + 40 + 1200000 + 0 + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 2C4 + FFE4F2 + 590 + FFE78E + 830 + FFEA2E + B02 + FFECFE + 500190 + 5FE1A2 + A00E74 + AFEE86 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 65116 + 100799468 + 0 + 0 + 5 + 16895 + 060213ec + + + + + Listing + + + + + + + + + CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1 + 2017-10-03T10:50:26 + CaSSIS specific XML header + D:\CaSSIS\data\MCO\161126_periapsis_orbit10\level1b\CAS-MCO-2016-11-26T22.58.02.583-PAN-00020-B1 + + + 2 + + Sample + 1 + 2048 + + + Line + 2 + 280 + + + IEEE754LSBSingle + 4 + First_Index_Fastest + DN + 1.00 + 0.00 + + + + + diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.dat b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.dat new file mode 100644 index 0000000000000000000000000000000000000000..71d8ba389caec63a56596642da942548fb0cc707 Binary files /dev/null and b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.dat differ diff --git a/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.xml b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.xml new file mode 100644 index 0000000000000000000000000000000000000000..8dcaf9b1fb33345b44a8eaea87582bcab72e1da5 --- /dev/null +++ b/isis/tests/data/tgoCassis/singleFrameletProj/CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1.xml @@ -0,0 +1,237 @@ + + + + + TBD + UNK + CaSSIS Data Record + TBD + Product_Observational + + + 2017-02-02T07:59:29 + Header_Creation: c_new_header + V3.1 + + + 2017-02-02T07:59:29 + SC TM Conversion: c_sc_file_resolution + V1.3 + 07-Jan-2017 + + + 2017-02-02T07:59:29 + SC TM Conversion: c_batch_sc_tm_packets + V1.11 + 01-Feb-2017 + + + 2017-08-25T09:32:57 + Dataset reconstruction to correct line shift: cassis_reconstruct_shift + V1.0 + 25-Aug-2017 + + + 2017-10-03T10:27:14 + Bias Subtraction: c_remove_bias + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:27:14 + Flat field removal (flat_field_170710.dat): c_remove_flat + V1.3 + 28-Aug-2017 + + + 2017-10-03T10:27:14 + Expansion: c_expand + V1.1 + + + 2017-10-03T10:27:14 + Absolute_Calibration: c_absolute_calibration + V1.1 + + + 2017-10-03T10:27:14 + SC TM Conversion: c_top_batch_level0tolevel1 + V1.5 + 02-Mar-2017 + + + 2017-10-03T10:50:26 + Command_Verification: c_top_batch_level1tolevel1b + V1.3 + + + + Nicolas Thomas + UBE + Physikalisches Inst., Universitaet Bern + Thomas, N., Cremonese, G., Banaszkiewicz, M., Bridges, J., Byrne, S., da Deppo, V., Debei, S., El-Maarry, M. R., et al. The Colour and Stereo Surface Imaging System (CaSSIS) for ESAs Trace Gas Orbiter. 8th Mars International Conference, 2014. Abstract #1067. + + + + + + + TGO + TRACE GAS ORBITER + TRACE GAS ORBITER + EXOMARS TRACE GAS ORBITER + + + Colour and Stereo Surface Imaging System on Exomars Trace Gas Orbiter + The scientific imaging system of Exomars TGO + + TGO + Spacecraft + Instrument Host + + + CaSSIS + Instrument + PUSH-FRAME CMOS VISIBLE REFLECTING TELESCOPE + + + + + + + 1.140e-005 + 0.8770 + 6.50 + Three-mirror anastigmat with powered fold mirror + 2D Array + 10.0 + 10.0 + SI CMOS HYBRID (OSPREY 2K) + 61.0 + BLU RED NIR PAN + + + + + 2016-11-26T22:58:02.583 + MCO + RED + 0.00 + 1 + 3.50402e-005 + + Mars + 38.2592 + -22.1203 + 1.3870385 + 4758.9 + 1.4120971 + 65.678 + 20.19 + 114.321 + 72.9235 + 6.5988 + 41.638 + 32.282 + ( 57.223867, 57.006285, 57.133022, 57.348356) + ( 3.376136, 2.658135, 2.657104, 3.372805) + 45.613 + 77.713 + 48.276 + 2.3616 + 2.2347, 0.7189, 0.2576 + 3.4317 + 790.7 + 57.105584 + 3.019360 + 47.930 + 174.295 + 5.8822 + 4.9384, 3.1804, -0.3116 + -0.0672, 0.6730, 0.7366 + 1770.273 + 30.4267 + em16_tgo_cassis_scp_tel_20160314_20161019_s20160414_v01.bc,cassis_ck_p_160312_161127_170201.bc,em16_tgo_sc_fpp_009_01_20160314_20170207_s20170116_v01.bc,em16_tgo_v10.tf,em16_tgo_ops_v02.tf,rssd0002.tf,em16_tgo_cassis_v04.ti,naif0012.tls,PCK00010.TPC,de-403-masses.TPC,em16_tgo_step_20170116.tsc,em16_tgo_fpp_009_01_20160314_20170315_v01.bsp,em16_tgo_flp_001_01_20170314_20180402_v01.bsp,DE432s.BSP,mar097.BSP + + + 5 + 200 + 40 + 1200000 + 0 + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 2C4 + FFE4F2 + 590 + FFE78E + 830 + FFEA2E + B02 + FFECFE + 500190 + 5FE1A2 + A00E74 + AFEE86 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 65116 + 100799468 + 0 + 0 + 5 + 16895 + 060213ec + + + + + Listing + + + + + + + + + CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1 + 2017-10-03T10:50:26 + CaSSIS specific XML header + D:\CaSSIS\data\MCO\161126_periapsis_orbit10\level1b\CAS-MCO-2016-11-26T22.58.02.583-RED-01020-B1 + + + 2 + + Sample + 1 + 2048 + + + Line + 2 + 256 + + + IEEE754LSBSingle + 4 + First_Index_Fastest + DN + 1.00 + 0.00 + + + + +