Loading isis/src/kaguya/objs/KaguyaTcCamera/Camera.plugin 0 → 100644 +0 −0 Empty file added. isis/src/kaguya/objs/KaguyaTcCamera/KaguyaTcCamera.cpp 0 → 100644 +113 −0 Original line number Diff line number Diff line /** * @file * * Unless noted otherwise, the portions of Isis written by the USGS are public * domain. See individual third-party library and package descriptions for * intellectual property information,user agreements, and related information. * * Although Isis has been used by the USGS, no warranty, expressed or implied, * is made by the USGS as to the accuracy and functioning of such software * and related material nor shall the fact of distribution constitute any such * warranty, and no responsibility is assumed by the USGS in connection * therewith. * * For additional information, launch * $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see * the Privacy & Disclaimers page on the Isis website, * http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on * http://www.usgs.gov/privacy.html. */ #include "KaguyaTcCamera.h" #include "CameraDetectorMap.h" #include "CameraDistortionMap.h" #include "CameraFocalPlaneMap.h" #include "CameraGroundMap.h" #include "CameraSkyMap.h" #include <QString> #include "IException.h" #include "IString.h" #include "iTime.h" #include "NaifStatus.h" using namespace std; namespace Isis { /** * Constructor for the Kaguya MI Camera Model * * @param lab Pvl Label to create the camera model from * * @internal * @history 2012-06-14 Orrin Thomas - original version */ KaguyaTcCamera::KaguyaTcCamera(Cube &cube) : FramingCamera(cube) { m_instrumentNameLong = " "; m_instrumentNameShort = " "; m_spacecraftNameLong = "Kaguya"; m_spacecraftNameShort = "Kaguya"; NaifStatus::CheckErrors(); // Get the camera characteristics SetFocalLength(); SetPixelPitch(); // Get the start time in et Pvl &lab = *cube.label(); PvlGroup inst = lab.findGroup("Instrument", Pvl::Traverse); // set variables startTime and exposureDuration double time = iTime((QString)inst["StartTime"]).Et(); // divide exposure duration keyword value by 1000 to convert to seconds double exposureDuration = ((double) inst["ExposureDuration"]) / 1000.0; pair<iTime, iTime> shuttertimes = ShutterOpenCloseTimes(time, exposureDuration); // Add half exposure duration to get time at center of image iTime centerTime = shuttertimes.first.Et() + exposureDuration / 2.0; // Setup detector map new CameraDetectorMap(this); // Setup focal plane map CameraFocalPlaneMap *focalMap = new CameraFocalPlaneMap(this, naifIkCode()); focalMap->SetDetectorOrigin( Spice::getDouble("INS" + toString(naifIkCode()) + "_BORESIGHT_SAMPLE"), Spice::getDouble("INS" + toString(naifIkCode()) + "_BORESIGHT_LINE")); // Setup distortion map new CameraDistortionMap(this); // Setup the ground and sky map new CameraGroundMap(this); new CameraSkyMap(this); setTime(centerTime); LoadCache(); NaifStatus::CheckErrors(); } /** * @author 2018-10-02 Adam Goins & Jeannie Backer * @internal * @history 2018-10-02 Adam Goins & Jeannie Backer - Original version. */ pair<iTime, iTime> UvvisCamera::ShutterOpenCloseTimes(double time, double exposureDuration) { return FramingCamera::ShutterOpenCloseTimes(time, exposureDuration); } } /** * This is the function that is called in order to instantiate a UvvisCamera * object. * * @param lab Cube labels * * @return Isis::Camera* Kaguya */ extern "C" Isis::Camera *KaguyaCameraPlugin(Isis::Cube &cube) { return new Isis::KaguyaTcCamera(cube); } isis/src/kaguya/objs/KaguyaTcCamera/KaguyaTcCamera.h 0 → 100644 +0 −0 Empty file added. isis/src/kaguya/objs/KaguyaTcCamera/KaguyaTcCamera.truth 0 → 100644 +0 −0 Empty file added. isis/src/kaguya/objs/KaguyaTcCamera/Makefile 0 → 100644 +2 −0 Original line number Diff line number Diff line include $(ISISROOT)/make/isismake.cat Loading
isis/src/kaguya/objs/KaguyaTcCamera/KaguyaTcCamera.cpp 0 → 100644 +113 −0 Original line number Diff line number Diff line /** * @file * * Unless noted otherwise, the portions of Isis written by the USGS are public * domain. See individual third-party library and package descriptions for * intellectual property information,user agreements, and related information. * * Although Isis has been used by the USGS, no warranty, expressed or implied, * is made by the USGS as to the accuracy and functioning of such software * and related material nor shall the fact of distribution constitute any such * warranty, and no responsibility is assumed by the USGS in connection * therewith. * * For additional information, launch * $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see * the Privacy & Disclaimers page on the Isis website, * http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on * http://www.usgs.gov/privacy.html. */ #include "KaguyaTcCamera.h" #include "CameraDetectorMap.h" #include "CameraDistortionMap.h" #include "CameraFocalPlaneMap.h" #include "CameraGroundMap.h" #include "CameraSkyMap.h" #include <QString> #include "IException.h" #include "IString.h" #include "iTime.h" #include "NaifStatus.h" using namespace std; namespace Isis { /** * Constructor for the Kaguya MI Camera Model * * @param lab Pvl Label to create the camera model from * * @internal * @history 2012-06-14 Orrin Thomas - original version */ KaguyaTcCamera::KaguyaTcCamera(Cube &cube) : FramingCamera(cube) { m_instrumentNameLong = " "; m_instrumentNameShort = " "; m_spacecraftNameLong = "Kaguya"; m_spacecraftNameShort = "Kaguya"; NaifStatus::CheckErrors(); // Get the camera characteristics SetFocalLength(); SetPixelPitch(); // Get the start time in et Pvl &lab = *cube.label(); PvlGroup inst = lab.findGroup("Instrument", Pvl::Traverse); // set variables startTime and exposureDuration double time = iTime((QString)inst["StartTime"]).Et(); // divide exposure duration keyword value by 1000 to convert to seconds double exposureDuration = ((double) inst["ExposureDuration"]) / 1000.0; pair<iTime, iTime> shuttertimes = ShutterOpenCloseTimes(time, exposureDuration); // Add half exposure duration to get time at center of image iTime centerTime = shuttertimes.first.Et() + exposureDuration / 2.0; // Setup detector map new CameraDetectorMap(this); // Setup focal plane map CameraFocalPlaneMap *focalMap = new CameraFocalPlaneMap(this, naifIkCode()); focalMap->SetDetectorOrigin( Spice::getDouble("INS" + toString(naifIkCode()) + "_BORESIGHT_SAMPLE"), Spice::getDouble("INS" + toString(naifIkCode()) + "_BORESIGHT_LINE")); // Setup distortion map new CameraDistortionMap(this); // Setup the ground and sky map new CameraGroundMap(this); new CameraSkyMap(this); setTime(centerTime); LoadCache(); NaifStatus::CheckErrors(); } /** * @author 2018-10-02 Adam Goins & Jeannie Backer * @internal * @history 2018-10-02 Adam Goins & Jeannie Backer - Original version. */ pair<iTime, iTime> UvvisCamera::ShutterOpenCloseTimes(double time, double exposureDuration) { return FramingCamera::ShutterOpenCloseTimes(time, exposureDuration); } } /** * This is the function that is called in order to instantiate a UvvisCamera * object. * * @param lab Cube labels * * @return Isis::Camera* Kaguya */ extern "C" Isis::Camera *KaguyaCameraPlugin(Isis::Cube &cube) { return new Isis::KaguyaTcCamera(cube); }
isis/src/kaguya/objs/KaguyaTcCamera/Makefile 0 → 100644 +2 −0 Original line number Diff line number Diff line include $(ISISROOT)/make/isismake.cat