Unverified Commit e31f4bef authored by Amy Stamile's avatar Amy Stamile Committed by GitHub
Browse files

Converted TGO IngestReingest Category Test. (#4789)

parent 904956da
Loading
Loading
Loading
Loading
+0 −57
Original line number Diff line number Diff line
INGEST = tgocassis2isis
SPICE = spiceinit
RDRGEN = tgocassisrdrgen
CDIFF = cubediff

include $(ISISROOT)/make/isismake.tsts

commands:

	$(ECHO) "TESTS DISABLED, SEE ISSUE #4666" > $(OUTPUT)/message.txt

# 	$(INGEST) $(TSTARGS) \
# 	    from=$(INPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.xml \
# 	    to=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.cub > /dev/null;
# 
# 	$(RDRGEN) $(TSTARGS) \
# 	    from=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.cub \
# 	    to=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.img > /dev/null;
# 
# 	$(SED) 's+\Product_Observational.*>+\Product_Observational>+' \
#                $(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.xml \
# 	       > $(OUTPUT)/tempLabel1.txt;
# 	$(SED) 's+\FSW_HEADER.*>+\FSW_HEADER>+' \
# 	       $(OUTPUT)/tempLabel1.txt \
# 	       > $(OUTPUT)/tempLabel2.txt;
# 	$(SED) 's+\PEHK_HEADER.*>+\PEHK_HEADER>+' \
# 	       $(OUTPUT)/tempLabel2.txt \
# 	       > $(OUTPUT)/tempLabel3.txt;
# 	$(SED) 's+\modification_date.*>+\modification_date>+' \
# 	       $(OUTPUT)/tempLabel3.txt \
# 	       > $(OUTPUT)/tempLabel4.txt
# 	$(SED) 's+\ISIS version.*<+\ISIS version.<+' \
# 	       $(OUTPUT)/tempLabel4.txt \
#                > $(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.xmlLabel.txt;
# 
# 	$(INGEST) $(TSTARGS) \
# 	    from=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.xml \
# 	    to=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.reingested.cub > /dev/null;
# 
# 	$(CDIFF) $(TSTARGS) \
# 	    from=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.cub \
# 	    from2=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.reingested.cub > /dev/null;
# 
# 	catlab $(TSTARGS) \
# 	    from=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.cub \
# 	    to=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.pvl > /dev/null;
# 
# 	catlab $(TSTARGS) \
# 	    from=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.reingested.cub \
# 	    to=$(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.reingested.pvl > /dev/null;
# 
# 	$(RM) $(OUTPUT)/tempLabel1.txt;
# 	$(RM) $(OUTPUT)/tempLabel2.txt;
# 	$(RM) $(OUTPUT)/tempLabel3.txt;
# 	$(RM) $(OUTPUT)/tempLabel4.txt;
# 	$(RM) $(OUTPUT)/CAS-M01-2018-05-05T23.11.48.767-RED-01029-B1.xml;
# 
+182 −100
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include "Histogram.h"

#include "tgocassis2isis.h"
#include "tgocassisrdrgen.h"
#include "spiceinit.h"
#include "tgocassisstitch.h"
#include "tgocassisunstitch.h"
@@ -18,6 +19,7 @@
using namespace Isis;

static QString TGOCASSIS2ISIS_XML = FileName("$ISISROOT/bin/xml/tgocassis2isis.xml").expanded();
static QString RDRGEN_XML = FileName("$ISISROOT/bin/xml/tgocassisrdrgen.xml").expanded();
static QString SPICEINIT_XML = FileName("$ISISROOT/bin/xml/spiceinit.xml").expanded();
static QString STITCH_XML = FileName("$ISISROOT/bin/xml/tgocassisstitch.xml").expanded();
static QString UNSTITCH_XML = FileName("$ISISROOT/bin/xml/tgocassisunstitch.xml").expanded();
@@ -1064,3 +1066,83 @@ TEST(TgoCassisModuleTests, TgoCassisSingleFrameletProjection) {
  EXPECT_EQ(hist->ValidPixels(), 812948);
  EXPECT_NEAR(hist->StandardDeviation(), 0.00085567958401590197, 0.0001);
}


TEST(TgoCassisModuleTests, TgoCassisIngestReingest) {
  QTemporaryDir prefix;

  // run tgocassis2isis on red framelet.
  QString redFileName = prefix.path() + "/redframelet.cub";
  QString digestedFile = prefix.path() + "/redframelet.img";
  QVector<QString> 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 red image: " << e.what() << std::endl;
  }

  // run tgocassisrdrgen on red framelet.
  QVector<QString> rdrgenArgs = {"from=" + redFileName,  "to=" + digestedFile};
  UserInterface rdrgenRed(RDRGEN_XML, rdrgenArgs);
  try {
    tgocassisrdrgen(rdrgenRed);
  }
  catch (IException &e) {
    FAIL() << "Unable to run tgocassisrdrgen on red image: " << e.what() << std::endl;
  }

  // run tgocassis2isis on digested red framelet.
  QString reingestedFile = prefix.path() + "/redframelet.reingest.cub";
  QString digestedXML = prefix.path() + "/redframelet.xml";
  tgocassis2isisArgs = {"from=" + digestedXML, "to=" + reingestedFile};
  UserInterface tgocassis2isisReingest(TGOCASSIS2ISIS_XML, tgocassis2isisArgs);
  try {
    tgocassis2isis(tgocassis2isisReingest);
  }
  catch (IException &e) {
    FAIL() << "Unable to run tgocassis2isis on red image: " << e.what() << std::endl;
  }

  // RED Cube
  Cube redCube(reingestedFile);
  Pvl *redLabel = redCube.label();

  // Instrument Group
  PvlGroup &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["ExposureDuration"][0].toStdString(), "1.920e-003");
  EXPECT_EQ(int(inst["SummingMode"]), 0);
  EXPECT_EQ(inst["Filter"][0].toStdString(), "RED");

  // Archive Group
  PvlGroup &archive = redLabel->findGroup("Archive", Pvl::Traverse);
  EXPECT_DOUBLE_EQ(double(archive["ProductVersionId"]), 1.0);
  EXPECT_DOUBLE_EQ(double(archive["ScalingFactor"]), 1.0);
  EXPECT_EQ(int(archive["YearDoy"]), 2016331);
  EXPECT_EQ(archive["ObservationId"][0].toStdString(), "CRUS_049218_251_0");

  // BandBin Group
  PvlGroup &bandbin = redLabel->findGroup("BandBin", Pvl::Traverse);
  EXPECT_EQ(bandbin["FilterName"][0].toStdString(), "RED");
  EXPECT_DOUBLE_EQ(double(bandbin["Center"]), 840);
  EXPECT_DOUBLE_EQ(double(bandbin["Width"]), 100);
  EXPECT_EQ(bandbin["NaifIkCode"][0].toStdString(), "-143422");

  // Kernels Group
  PvlGroup &kernels = redLabel->findGroup("Kernels", Pvl::Traverse);
  EXPECT_EQ(int(kernels["NaifFrameCode"]), -143400);

  Histogram *hist = redCube.histogram();

  EXPECT_NEAR(hist->Average(), 0.098812884362865061, 0.0001);
  EXPECT_NEAR(hist->Sum(), 51800.457383409142, 0.0001);
  EXPECT_EQ(hist->ValidPixels(), 524288);
  EXPECT_NEAR(hist->StandardDeviation(), 0.0020888136703382234, 0.0001);
}