Loading src/UsgsAstroPlugin.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ using json = nlohmann::json; // Declaration of static variables const std::string UsgsAstroPlugin::_PLUGIN_NAME = "UsgsAstroPluginCSM"; const std::string UsgsAstroPlugin::_MANUFACTURER_NAME = "UsgsAstrogeology"; const std::string UsgsAstroPlugin::_RELEASE_DATE = "20170425"; const std::string UsgsAstroPlugin::_RELEASE_DATE = "20190222"; const int UsgsAstroPlugin::_N_SENSOR_MODELS = 2; const std::string UsgsAstroPlugin::_ISD_KEYWORD[] = Loading tests/LineScanCameraTests.cpp +29 −54 Original line number Diff line number Diff line Loading @@ -46,35 +46,35 @@ TEST_F(ConstVelocityLineScanSensorModel, Inversion) { EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); } TEST_F(ConstVelocityLineScanSensorModel, OffBody1) { TEST_F(ConstVelocityLineScanSensorModel, OffBody) { csm::ImageCoord imagePt(4.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 0.063995905, 1e-8); EXPECT_NEAR(groundPt.y, -7.999488033, 1e-8); EXPECT_NEAR(groundPt.z, 8, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, OffBody2) { csm::ImageCoord imagePt(4.5, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, OffBody3) { csm::ImageCoord imagePt(12.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, 14.99325304, 1e-8); TEST_F(ConstVelocityLineScanSensorModel, ProximateImageLocus) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefCoord groundPt(5, 5, 5); csm::EcefLocus locus = sensorModel->imageToProximateImagingLocus(imagePt, groundPt); EXPECT_DOUBLE_EQ(locus.direction.x, -1.0); EXPECT_DOUBLE_EQ(locus.direction.y, 0.0); EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); EXPECT_DOUBLE_EQ(locus.point.x, 5.0); EXPECT_DOUBLE_EQ(locus.point.y, 0.0); EXPECT_DOUBLE_EQ(locus.point.z, 0.0); } TEST_F(ConstVelocityLineScanSensorModel, OffBody4) { csm::ImageCoord imagePt(12.0, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, -14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); TEST_F(ConstVelocityLineScanSensorModel, RemoteImageLocus) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefLocus locus = sensorModel->imageToRemoteImagingLocus(imagePt); EXPECT_DOUBLE_EQ(locus.direction.x, -1.0); EXPECT_DOUBLE_EQ(locus.direction.y, 0.0); EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); EXPECT_DOUBLE_EQ(locus.point.x, 10.0); EXPECT_DOUBLE_EQ(locus.point.y, 0.0); EXPECT_DOUBLE_EQ(locus.point.z, 0.0); } // Pan tests Loading @@ -82,11 +82,9 @@ TEST_F(ConstVelocityLineScanSensorModel, OffBody4) { TEST_F(ConstAngularVelocityLineScanSensorModel, Center) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_DOUBLE_EQ(groundPt.x, 10.0); // EXPECT_DOUBLE_EQ(groundPt.y, 0.0); // EXPECT_DOUBLE_EQ(groundPt.z, 0.0); std::cerr << sensorModel->getModelState() << std::endl; EXPECT_DOUBLE_EQ(groundPt.x, 10.0); EXPECT_DOUBLE_EQ(groundPt.y, 0.0); EXPECT_DOUBLE_EQ(groundPt.z, 0.0); } TEST_F(ConstAngularVelocityLineScanSensorModel, Inversion) { Loading @@ -94,39 +92,16 @@ TEST_F(ConstAngularVelocityLineScanSensorModel, Inversion) { csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); csm::ImageCoord imageReprojPt = sensorModel->groundToImage(groundPt); // EXPECT_DOUBLE_EQ(imagePt.line, imageReprojPt.line); // EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); EXPECT_DOUBLE_EQ(imagePt.line, imageReprojPt.line); EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody1) { TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody) { csm::ImageCoord imagePt(4.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.063995905, 1e-8); // EXPECT_NEAR(groundPt.y, -7.999488033, 1e-8); // EXPECT_NEAR(groundPt.z, 8, 1e-8); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody2) { csm::ImageCoord imagePt(4.5, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody3) { csm::ImageCoord imagePt(12.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, 14.99325304, 1e-8); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody4) { csm::ImageCoord imagePt(12.0, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, -14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); EXPECT_NEAR(groundPt.x, 4.15414478, 1e-8); EXPECT_NEAR(groundPt.y, -7.98311067, 1e-8); EXPECT_NEAR(groundPt.z, 63.82129588, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, calculateAttitudeCorrection) { Loading tests/PluginTests.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ TEST(PluginTests, ManufacturerName) { TEST(PluginTests, ReleaseDate) { UsgsAstroPlugin testPlugin; EXPECT_EQ("20170425", testPlugin.getReleaseDate()); EXPECT_EQ("20190222", testPlugin.getReleaseDate()); } TEST(PluginTests, NumModels) { Loading tests/data/constAngularVelocityLineScan.json +9 −9 Original line number Diff line number Diff line Loading @@ -54,15 +54,15 @@ [1000.0, 0.0, 0.0] ], "velocities": [ [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0] [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0] ] }, "sensor_orientation": { Loading Loading
src/UsgsAstroPlugin.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ using json = nlohmann::json; // Declaration of static variables const std::string UsgsAstroPlugin::_PLUGIN_NAME = "UsgsAstroPluginCSM"; const std::string UsgsAstroPlugin::_MANUFACTURER_NAME = "UsgsAstrogeology"; const std::string UsgsAstroPlugin::_RELEASE_DATE = "20170425"; const std::string UsgsAstroPlugin::_RELEASE_DATE = "20190222"; const int UsgsAstroPlugin::_N_SENSOR_MODELS = 2; const std::string UsgsAstroPlugin::_ISD_KEYWORD[] = Loading
tests/LineScanCameraTests.cpp +29 −54 Original line number Diff line number Diff line Loading @@ -46,35 +46,35 @@ TEST_F(ConstVelocityLineScanSensorModel, Inversion) { EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); } TEST_F(ConstVelocityLineScanSensorModel, OffBody1) { TEST_F(ConstVelocityLineScanSensorModel, OffBody) { csm::ImageCoord imagePt(4.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 0.063995905, 1e-8); EXPECT_NEAR(groundPt.y, -7.999488033, 1e-8); EXPECT_NEAR(groundPt.z, 8, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, OffBody2) { csm::ImageCoord imagePt(4.5, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, OffBody3) { csm::ImageCoord imagePt(12.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, 14.99325304, 1e-8); TEST_F(ConstVelocityLineScanSensorModel, ProximateImageLocus) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefCoord groundPt(5, 5, 5); csm::EcefLocus locus = sensorModel->imageToProximateImagingLocus(imagePt, groundPt); EXPECT_DOUBLE_EQ(locus.direction.x, -1.0); EXPECT_DOUBLE_EQ(locus.direction.y, 0.0); EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); EXPECT_DOUBLE_EQ(locus.point.x, 5.0); EXPECT_DOUBLE_EQ(locus.point.y, 0.0); EXPECT_DOUBLE_EQ(locus.point.z, 0.0); } TEST_F(ConstVelocityLineScanSensorModel, OffBody4) { csm::ImageCoord imagePt(12.0, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, -14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); TEST_F(ConstVelocityLineScanSensorModel, RemoteImageLocus) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefLocus locus = sensorModel->imageToRemoteImagingLocus(imagePt); EXPECT_DOUBLE_EQ(locus.direction.x, -1.0); EXPECT_DOUBLE_EQ(locus.direction.y, 0.0); EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); EXPECT_DOUBLE_EQ(locus.point.x, 10.0); EXPECT_DOUBLE_EQ(locus.point.y, 0.0); EXPECT_DOUBLE_EQ(locus.point.z, 0.0); } // Pan tests Loading @@ -82,11 +82,9 @@ TEST_F(ConstVelocityLineScanSensorModel, OffBody4) { TEST_F(ConstAngularVelocityLineScanSensorModel, Center) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_DOUBLE_EQ(groundPt.x, 10.0); // EXPECT_DOUBLE_EQ(groundPt.y, 0.0); // EXPECT_DOUBLE_EQ(groundPt.z, 0.0); std::cerr << sensorModel->getModelState() << std::endl; EXPECT_DOUBLE_EQ(groundPt.x, 10.0); EXPECT_DOUBLE_EQ(groundPt.y, 0.0); EXPECT_DOUBLE_EQ(groundPt.z, 0.0); } TEST_F(ConstAngularVelocityLineScanSensorModel, Inversion) { Loading @@ -94,39 +92,16 @@ TEST_F(ConstAngularVelocityLineScanSensorModel, Inversion) { csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); csm::ImageCoord imageReprojPt = sensorModel->groundToImage(groundPt); // EXPECT_DOUBLE_EQ(imagePt.line, imageReprojPt.line); // EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); EXPECT_DOUBLE_EQ(imagePt.line, imageReprojPt.line); EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody1) { TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody) { csm::ImageCoord imagePt(4.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.063995905, 1e-8); // EXPECT_NEAR(groundPt.y, -7.999488033, 1e-8); // EXPECT_NEAR(groundPt.z, 8, 1e-8); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody2) { csm::ImageCoord imagePt(4.5, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody3) { csm::ImageCoord imagePt(12.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, 14.99325304, 1e-8); } TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody4) { csm::ImageCoord imagePt(12.0, 12.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); // EXPECT_NEAR(groundPt.y, -14.99325304, 1e-8); // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); EXPECT_NEAR(groundPt.x, 4.15414478, 1e-8); EXPECT_NEAR(groundPt.y, -7.98311067, 1e-8); EXPECT_NEAR(groundPt.z, 63.82129588, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, calculateAttitudeCorrection) { Loading
tests/PluginTests.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ TEST(PluginTests, ManufacturerName) { TEST(PluginTests, ReleaseDate) { UsgsAstroPlugin testPlugin; EXPECT_EQ("20170425", testPlugin.getReleaseDate()); EXPECT_EQ("20190222", testPlugin.getReleaseDate()); } TEST(PluginTests, NumModels) { Loading
tests/data/constAngularVelocityLineScan.json +9 −9 Original line number Diff line number Diff line Loading @@ -54,15 +54,15 @@ [1000.0, 0.0, 0.0] ], "velocities": [ [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0] [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0], [0.0, 10.0, 0.0] ] }, "sensor_orientation": { Loading