Loading src/UsgsAstroLsSensorModel.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -1994,7 +1994,8 @@ void UsgsAstroLsSensorModel::losToEcf( // Define imaging ray (look vector) in camera space double cameraLook[3]; createCameraLookVector(undistortedFocalPlaneX, undistortedFocalPlaneY, m_zDirection, m_focalLength, cameraLook); createCameraLookVector(undistortedFocalPlaneX, undistortedFocalPlaneY, m_zDirection, m_focalLength + getValue(15, adj), cameraLook); MESSAGE_LOG(m_logger, "losToEcf: uncorrected camera look vector {} {} {}", cameraLook[0], cameraLook[1], cameraLook[2]) Loading Loading @@ -2501,7 +2502,7 @@ csm::ImageCoord UsgsAstroLsSensorModel::computeViewingPixel( adjustedLookX, adjustedLookY, adjustedLookZ) // Convert to focal plane coordinate double lookScale = m_focalLength / adjustedLookZ; double lookScale = (m_focalLength + getValue(15, adj)) / adjustedLookZ; double focalX = adjustedLookX * lookScale; double focalY = adjustedLookY * lookScale; double distortedFocalX, distortedFocalY; Loading tests/LineScanCameraTests.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -252,3 +252,12 @@ TEST_F(OrbitalLineScanSensorModel, ReferenceDateTime) { std::string date = sensorModel->getReferenceDateAndTime(); EXPECT_EQ(date, "20000101T001639"); } TEST_F(ConstVelocityLineScanSensorModel, FocalLengthAdjustment) { csm::ImageCoord imagePt(8.5, 4.0); sensorModel->setParameterValue(15, -45); csm::EcefLocus locus = sensorModel->imageToRemoteImagingLocus(imagePt); EXPECT_DOUBLE_EQ(locus.direction.x, -5.0 / sqrt(5 * 5 + 0.4 * 0.4)); EXPECT_DOUBLE_EQ(locus.direction.y, -0.4 / sqrt(5 * 5 + 0.4 * 0.4)); EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); } Loading
src/UsgsAstroLsSensorModel.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -1994,7 +1994,8 @@ void UsgsAstroLsSensorModel::losToEcf( // Define imaging ray (look vector) in camera space double cameraLook[3]; createCameraLookVector(undistortedFocalPlaneX, undistortedFocalPlaneY, m_zDirection, m_focalLength, cameraLook); createCameraLookVector(undistortedFocalPlaneX, undistortedFocalPlaneY, m_zDirection, m_focalLength + getValue(15, adj), cameraLook); MESSAGE_LOG(m_logger, "losToEcf: uncorrected camera look vector {} {} {}", cameraLook[0], cameraLook[1], cameraLook[2]) Loading Loading @@ -2501,7 +2502,7 @@ csm::ImageCoord UsgsAstroLsSensorModel::computeViewingPixel( adjustedLookX, adjustedLookY, adjustedLookZ) // Convert to focal plane coordinate double lookScale = m_focalLength / adjustedLookZ; double lookScale = (m_focalLength + getValue(15, adj)) / adjustedLookZ; double focalX = adjustedLookX * lookScale; double focalY = adjustedLookY * lookScale; double distortedFocalX, distortedFocalY; Loading
tests/LineScanCameraTests.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -252,3 +252,12 @@ TEST_F(OrbitalLineScanSensorModel, ReferenceDateTime) { std::string date = sensorModel->getReferenceDateAndTime(); EXPECT_EQ(date, "20000101T001639"); } TEST_F(ConstVelocityLineScanSensorModel, FocalLengthAdjustment) { csm::ImageCoord imagePt(8.5, 4.0); sensorModel->setParameterValue(15, -45); csm::EcefLocus locus = sensorModel->imageToRemoteImagingLocus(imagePt); EXPECT_DOUBLE_EQ(locus.direction.x, -5.0 / sqrt(5 * 5 + 0.4 * 0.4)); EXPECT_DOUBLE_EQ(locus.direction.y, -0.4 / sqrt(5 * 5 + 0.4 * 0.4)); EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); }