diff --git a/include/usgscsm/Utilities.h b/include/usgscsm/Utilities.h index 3a94c73a3a7551720291114fc37987cc62fc7596..374d68c8442361a9f821bb3600e73082d9e9a660 100644 --- a/include/usgscsm/Utilities.h +++ b/include/usgscsm/Utilities.h @@ -53,6 +53,16 @@ void lagrangeInterp ( const int& i_order, double* valueVector); +double pixelResolution( + const csm::EcefCoord& groundPt, + const csm::EcefCoord& sensorPos, + const double& sampleOrigin, + const double& lineOrigin, + const double& sampleSumming, + const double& startingSample, + const double iTransS[], + const double iTransL[]); + // Methods for checking/accessing the ISD double metric_conversion(double val, std::string from, std::string to="m"); diff --git a/src/Utilities.cpp b/src/Utilities.cpp index 5d5efb39697cbbac30d5f3d54bd52d40aea19c71..a46b1e154d4c7bcbb4f38d6545f3d794f32e3bde 100644 --- a/src/Utilities.cpp +++ b/src/Utilities.cpp @@ -235,6 +235,26 @@ void lagrangeInterp( } } +// Compute the pixel reolution at a ground point +double pixelResolution( + const csm::EcefCoord& groundPt, + const csm::EcefCoord& sensorPos, + const double& sampleOrigin, + const double& lineOrigin, + const double& sampleSumming, + const double& startingSample, + const double iTransS[], + const double iTransL[]) { + double x1, y1, x2, y2; + computeDistortedFocalPlaneCoordinates( + 0.0, 0.0, + sampleOrigin, + lineOrigin, + sampleSumming, + + ); +} + // convert a measurement double metric_conversion(double val, std::string from, std::string to) { json typemap = {