diff --git a/src/UsgsAstroFrameSensorModel.cpp b/src/UsgsAstroFrameSensorModel.cpp index bb93473a7e523a595fe8dcb60bba562eabab21d8..6116a18dbb58bb9e28483c43bba7dfa2228210da 100644 --- a/src/UsgsAstroFrameSensorModel.cpp +++ b/src/UsgsAstroFrameSensorModel.cpp @@ -206,8 +206,8 @@ csm::ImageCoord UsgsAstroFrameSensorModel::groundToImage( //Convert distorted mm into line/sample double sample, line; - sample = m_iTransS[0] + m_iTransS[1] * distortedx + m_iTransS[2] * distortedx + m_ccdCenter[0] - 0.5; - line = m_iTransL[0] + m_iTransL[1] * distortedy + m_iTransL[2] * distortedy + m_ccdCenter[0] - 0.5; + sample = m_iTransS[0] + m_iTransS[1] * distortedx + m_iTransS[2] * distortedx + m_ccdCenter[0]; + line = m_iTransL[0] + m_iTransL[1] * distortedy + m_iTransL[2] * distortedy + m_ccdCenter[0]; return csm::ImageCoord(line, sample); } @@ -244,8 +244,8 @@ csm::EcefCoord UsgsAstroFrameSensorModel::imageToGround(const csm::ImageCoord &i //Convert from the pixel space into the metric space double optical_center_x, optical_center_y, x_camera, y_camera; - optical_center_x = m_ccdCenter[0] - 0.5; - optical_center_y = m_ccdCenter[1] - 0.5; + optical_center_x = m_ccdCenter[0]; + optical_center_y = m_ccdCenter[1]; y_camera = m_transY[0] + m_transY[1] * (lo - optical_center_y) + m_transY[2] * (lo - optical_center_y); x_camera = m_transX[0] + m_transX[1] * (so - optical_center_x) + m_transX[2] * (so - optical_center_x); @@ -301,8 +301,8 @@ csm::EcefLocus UsgsAstroFrameSensorModel::imageToRemoteImagingLocus(const csm::I csm::WarningList *warnings) const { // Find the line,sample on the focal plane (mm) // CSM center = 0.5, MDIS IK center = 1.0 - double col = imagePt.samp - (m_ccdCenter[0] - 0.5); - double row = imagePt.line - (m_ccdCenter[1] - 0.5); + double col = imagePt.samp - (m_ccdCenter[0]); + double row = imagePt.line - (m_ccdCenter[1]); double focalPlaneX = m_transX[0] + m_transX[1] * col + m_transX[2] * col; double focalPlaneY = m_transY[0] + m_transY[1] * row + m_transY[2] * row; diff --git a/tests/FrameCameraTests.cpp b/tests/FrameCameraTests.cpp index e5bddd4d2296e7d7550fdc88f7e599a95ba53797..edfb857d8b4d38b51decddd1258b9acddcd91ce1 100644 --- a/tests/FrameCameraTests.cpp +++ b/tests/FrameCameraTests.cpp @@ -57,14 +57,14 @@ class FrameSensorModel : public ::testing::Test { //centered and slightly off-center: TEST_F(FrameSensorModel, Center) { - csm::ImageCoord imagePt(7.0, 7.0); + csm::ImageCoord imagePt(7.5, 7.5); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 10.0, 1e-8); EXPECT_NEAR(groundPt.y, 0, 1e-8); EXPECT_NEAR(groundPt.z, 0, 1e-8); } TEST_F(FrameSensorModel, SlightlyOffCenter) { - csm::ImageCoord imagePt(7.0, 6.0); + csm::ImageCoord imagePt(7.5, 6.5); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 9.80194018, 1e-8); EXPECT_NEAR(groundPt.y, 0, 1e-8); @@ -73,28 +73,28 @@ TEST_F(FrameSensorModel, SlightlyOffCenter) { //Test all four corners: TEST_F(FrameSensorModel, OffBody1) { - csm::ImageCoord imagePt(14.5, -0.5); + csm::ImageCoord imagePt(15.0, 0.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(FrameSensorModel, OffBody2) { - csm::ImageCoord imagePt(-0.5, 14.5); + csm::ImageCoord imagePt(0.0, 15.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(FrameSensorModel, OffBody3) { - csm::ImageCoord imagePt(-0.5, -0.5); + csm::ImageCoord imagePt(0.0, 0.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(FrameSensorModel, OffBody4) { - csm::ImageCoord imagePt(14.5, 14.5); + csm::ImageCoord imagePt(15.0, 15.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);