Unverified Commit 3053c2ec authored by gsn9's avatar gsn9 Committed by GitHub
Browse files

Osiris ik update (#4680)



* handel new IK codes

* updated to handle new IK codes

Co-authored-by: default avatarGavin Nelson <gnelson@prog28.wr.usgs.gov>
parent aafa3031
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ namespace Isis {
      m_instrumentNameLong = "Sampling Camera";
      m_instrumentNameShort = "SamCam";
    } // IK values for polycam: -64360 (general) and -64616 to -64500 (focus specific)
    else if (frameCode == -64360) {
    else if ((frameCode == -64360) || (frameCode >= -64616 && frameCode <= -64500)) {
      m_instrumentNameLong = "PolyMath Camera";
      m_instrumentNameShort = "PolyCam";
    }
+38 −0
Original line number Diff line number Diff line
@@ -95,3 +95,41 @@ TEST_F(OsirisRexCube, SamplingCam) {
  EXPECT_NEAR(cam->Line(), 5, 0.01);
  EXPECT_NEAR(cam->Sample(), 5, 0.01);
}

TEST_F(OsirisRexCube, PolyCamUpdatedIkCodes){
setInstrument("-64500", "PolyCam");

  OsirisRexOcamsCamera *cam = (OsirisRexOcamsCamera *)testCube->camera();

  EXPECT_EQ(cam->instrumentRotation()->Frame(), -27002);

  // Test kernel IDs
  EXPECT_EQ(cam->CkFrameId(), -64000);
  EXPECT_EQ(cam->CkReferenceId(), 1);
  EXPECT_EQ(cam->SpkTargetId(), -64);
  EXPECT_EQ(cam->SpkReferenceId(), 1);

  // Test name methods
  EXPECT_PRED_FORMAT2(AssertQStringsEqual, cam->spacecraftNameLong(), "OSIRIS-REx");
  EXPECT_PRED_FORMAT2(AssertQStringsEqual, cam->spacecraftNameShort(), "OSIRIS-REx");
  EXPECT_PRED_FORMAT2(AssertQStringsEqual, cam->instrumentNameLong(), "PolyMath Camera");
  EXPECT_PRED_FORMAT2(AssertQStringsEqual, cam->instrumentNameShort(), "PolyCam");
  EXPECT_PRED_FORMAT2(AssertQStringsEqual, cam->instrumentId(), "PolyCam");

  const PvlGroup &inst = testCube->label()->findGroup("Instrument", Pvl::Traverse);
  double exposureDuration = ((double) inst["ExposureDuration"])/1000;
  QString stime = inst["StartTime"];
  double et; // StartTime keyword is the center exposure time
  str2et_c(stime.toLatin1().data(), &et);
  pair <iTime, iTime> shuttertimes = cam->ShutterOpenCloseTimes(et, exposureDuration);
  EXPECT_NEAR(shuttertimes.first.Et(), 600694634.18428946, 6E-14);
  EXPECT_NEAR(shuttertimes.second.Et(), 600694634.28428948, 6E-14);

  EXPECT_TRUE(cam->SetImage(5, 5));
  EXPECT_NEAR(cam->UniversalLatitude(), 9.26486, 0.0001);
  EXPECT_NEAR(cam->UniversalLongitude(), 276.167, 0.0001);

  EXPECT_TRUE(cam->SetUniversalGround(cam->UniversalLatitude(), cam->UniversalLongitude()));
  EXPECT_NEAR(cam->Line(), 5, 0.01);
  EXPECT_NEAR(cam->Sample(), 5, 0.01);
}