|  | Isis 3 Programmer Reference
    | 
Convert between undistorted focal plane and ground coordinates. More...
#include <PushFrameCameraGroundMap.h>


| Public Types | |
| enum | PartialType { WRT_Latitude , WRT_Longitude , WRT_Radius , WRT_MajorAxis , WRT_MinorAxis , WRT_PolarAxis } | 
| Radius axes types to use when computing partials.  More... | |
| Public Member Functions | |
| PushFrameCameraGroundMap (Camera *cam, bool evenFramelets) | |
| This is the constructor for the push frame ground map. | |
| virtual | ~PushFrameCameraGroundMap () | 
| Destructor. | |
| virtual bool | SetGround (const Latitude &lat, const Longitude &lon) | 
| Compute undistorted focal plane coordinate from ground position. | |
| virtual bool | SetGround (const SurfacePoint &surfacePt) | 
| Compute undistorted focal plane coordinate from ground position that includes a local radius. | |
| virtual bool | SetFocalPlane (const double ux, const double uy, const double uz) | 
| Compute ground position from focal plane coordinate. | |
| virtual bool | GetXY (const SurfacePoint &spoint, double *cudx, double *cudy, bool test=true) | 
| Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call. | |
| virtual bool | GetXY (const double lat, const double lon, const double radius, double *cudx, double *cudy) | 
| Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call. | |
| virtual bool | GetdXYdPosition (const SpicePosition::PartialType varType, int coefIndex, double *cudx, double *cudy) | 
| Compute derivative w/r to position of focal plane coordinate from ground position using current Spice from SetImage call. | |
| virtual bool | GetdXYdOrientation (const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy) | 
| Compute derivative of focal plane coordinate w/r to instrument using current state from SetImage call. | |
| virtual bool | GetdXYdTOrientation (const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy) | 
| Compute derivative of focal plane coordinate w/r to target body using current state. | |
| virtual bool | GetdXYdPoint (std::vector< double > d_pB, double *dx, double *dy) | 
| Compute derivative of focal plane coordinate w/r to ground point using current state. | |
| std::vector< double > | PointPartial (SurfacePoint spoint, PartialType wrt) | 
| Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord. | |
| std::vector< double > | EllipsoidPartial (SurfacePoint spoint, PartialType raxis) | 
| Compute derivative of focal plane coordinate w/r to one of the ellipsoidal radii (a, b, or c) | |
| std::vector< double > | MeanRadiusPartial (SurfacePoint spoint, Distance meanRadius) | 
| Compute derivative of focal plane coordinate w/r to mean of the ellipsoidal radii (a, b, c) | |
| double | DQuotient (std::vector< double > &look, std::vector< double > &dlook, int index) | 
| Convenience method for quotient rule applied to look vector. | |
| double | FocalPlaneX () const | 
| double | FocalPlaneY () const | 
| Protected Member Functions | |
| void | LookCtoFocalPlaneXY () | 
| Calculate focalplane x/y from lookvector in camera. | |
| Protected Attributes | |
| Camera * | p_camera | 
| Camera. | |
| double | p_focalPlaneX | 
| Camera's x focal plane coordinate. | |
| double | p_focalPlaneY | 
| Camera's y focal plane coordinate. | |
| std::vector< double > | m_pB | 
| Surface point calculated from ground coordinates in GetXY and used for partials. | |
| std::vector< double > | m_lookJ | 
| Look vector in J2000 calculated from ground coordinates in GetXY and used for partials. | |
| Private Member Functions | |
| double | FindDistance (int framelet, const SurfacePoint &surfacePoint) | 
| This method finds the distance from the center of the framelet to the lat,lon. | |
| double | FindSpacecraftDistance (int framelet, const SurfacePoint &surfacePoint) | 
| This method finds the distance from the point on the ground to the spacecraft at the time the specified framelet was taken. | |
| Private Attributes | |
| bool | p_evenFramelets | 
| True if the file contains even framelets. | |
Convert between undistorted focal plane and ground coordinates.
This class is used to convert between undistorted focal plane coordinates (x/y) in millimeters and ground coordinates lat/lon for line scan cameras.
2008-06-18 Steven Lambright Fixed documentation
2008-10-23 Steven Lambright Added optimizations, fixed misc bugs
2009-11-19 Steven Lambright Removed linear search offset
2009-12-07 Steven Lambright Increased liklihood that our spacecraft distance correctly minimizes for LRO
2014-04-17 Jeannie Backer - Added padding to bring closer to ISIS coding standards. References #1659.
Definition at line 34 of file PushFrameCameraGroundMap.h.
| 
 | inherited | 
Radius axes types to use when computing partials.
When computing partials, this enum represents the "with respect to" variable in the computation.
Definition at line 91 of file CameraGroundMap.h.
| 
 | inline | 
This is the constructor for the push frame ground map.
| cam | Pointer to the camera | 
| evenFramelets | True if the image contains even framelets | 
Definition at line 42 of file PushFrameCameraGroundMap.h.
References p_evenFramelets.
| 
 | inlinevirtual | 
Destructor.
Definition at line 48 of file PushFrameCameraGroundMap.h.
| 
 | inherited | 
Convenience method for quotient rule applied to look vector.
This method will compute the derivative of the following function (coordinate x or y) / (coordinate z)
| look | look vector in camera frame | 
| dlook | derivative of look vector in camera frame | 
| index | vector value to differentiate | 
Definition at line 550 of file CameraGroundMap.cpp.
Referenced by Isis::CameraGroundMap::GetdXYdOrientation(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::CameraGroundMap::GetdXYdPosition(), and Isis::CameraGroundMap::GetdXYdTOrientation().
| 
 | inherited | 
Compute derivative of focal plane coordinate w/r to one of the ellipsoidal radii (a, b, or c)
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the a (major axis), b (minor axis), or c (polar axis) radius, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
| spoint | Surface point whose derivative is to be evalutated | 
| raxis | Radius axis enumerated partial type (definitions in this header) | 
| IException::Programmer | "Invalid partial type for this method" | 
Definition at line 436 of file CameraGroundMap.cpp.
References Isis::IException::Programmer.
| 
 | private | 
This method finds the distance from the center of the framelet to the lat,lon.
The distance is only in the line direction and is squared.
| framelet | |
| lat | |
| lon | 
Definition at line 147 of file PushFrameCameraGroundMap.cpp.
References Isis::Camera::DetectorMap(), Isis::Camera::DistortionMap(), Isis::Camera::FocalLength(), Isis::Camera::FocalPlaneMap(), Isis::CameraGroundMap::p_camera, and Isis::CameraFocalPlaneMap::SetDetector().
Referenced by SetGround().
| 
 | private | 
This method finds the distance from the point on the ground to the spacecraft at the time the specified framelet was taken.
| framelet | Which framelet was being captured (determines time) | 
| lat | Latitude of the point on the ground | 
| lon | Longitude of the point on the ground | 
Definition at line 186 of file PushFrameCameraGroundMap.cpp.
References Isis::Camera::DetectorMap(), Isis::CameraGroundMap::p_camera, and Isis::Sensor::SlantDistance().
Referenced by SetGround().
| 
 | inlineinherited | 
Definition at line 126 of file CameraGroundMap.h.
References Isis::CameraGroundMap::p_focalPlaneX.
Referenced by Isis::Camera::RawFocalPlanetoImage().
| 
 | inlineinherited | 
Definition at line 133 of file CameraGroundMap.h.
References Isis::CameraGroundMap::p_focalPlaneY.
Referenced by Isis::Camera::RawFocalPlanetoImage().
| 
 | virtualinherited | 
Compute derivative of focal plane coordinate w/r to instrument using current state from SetImage call.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the instrument orientation, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
| varType | enumerated partial type (definitions in SpicePosition) | 
| coefIndex | coefficient index of fit polynomial | 
| *dx | out] pointer to partial derivative of undistorted focal plane x | 
| *dy | [out] pointer to partial derivative of undistorted focal plane y | 
Definition at line 318 of file CameraGroundMap.cpp.
References Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::m_lookJ, Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().
Referenced by Isis::IsisBundleObservation::computeImagePartials().
| 
 | virtualinherited | 
Compute derivative of focal plane coordinate w/r to ground point using current state.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to lat, lon, or radius, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
| d_pB | Point vector | 
| *dx | [out] pointer to partial derivative of undistorted focal plane x | 
| *dy | [out] pointer to partial derivative of undistorted focal plane y | 
Reimplemented in Isis::RadarGroundMap.
Definition at line 398 of file CameraGroundMap.cpp.
References Isis::Spice::bodyRotation(), Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::m_lookJ, Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().
| 
 | virtualinherited | 
Compute derivative w/r to position of focal plane coordinate from ground position using current Spice from SetImage call.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to a spacecraft position coordinate, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
| varType | enumerated partial type (definitions in SpicePosition) | 
| coefIndex | coefficient index of fit polynomial | 
| *dx | [out] pointer to partial derivative of undistorted focal plane x | 
| *dy | [out] pointer to partial derivative of undistorted focal plane y | 
Reimplemented in Isis::RadarGroundMap.
Definition at line 279 of file CameraGroundMap.cpp.
References Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::m_lookJ, Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().
Referenced by Isis::IsisBundleObservation::computeImagePartials().
| 
 | virtualinherited | 
Compute derivative of focal plane coordinate w/r to target body using current state.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the target body orientation, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
| varType | enumerated partial type (definitions in SpicePosition) | 
| coefIndex | coefficient index of fit polynomial | 
| *dx | [out] pointer to partial derivative of undistorted focal plane x | 
| *dy | [out] pointer to partial derivative of undistorted focal plane y | 
Definition at line 354 of file CameraGroundMap.cpp.
References Isis::Spice::bodyRotation(), Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::m_lookJ, Isis::CameraGroundMap::m_pB, Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().
| 
 | virtualinherited | 
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call.
This method will compute the undistorted focal plane coordinate for a ground position, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/m_pB/x/y. The class value for m_lookJ is set by this method.
| lat | Latitude in degrees | 
| lon | Longitude in degrees | 
| radius | Radius in meters | 
| cudx | [out] Pointer to computed undistored x focal plane coordinate | 
| cudy | [out] Pointer to computed undistored y focal plane coordinate | 
Definition at line 254 of file CameraGroundMap.cpp.
References Isis::Angle::Degrees, Isis::CameraGroundMap::GetXY(), and Isis::Distance::Meters.
| 
 | virtualinherited | 
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call.
This method will compute the undistorted focal plane coordinate for a ground position, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/m_pB/x/y. The class value for m_lookJ is set by this method.
| point | Surface point (ground position) | 
| cudx | [out] Pointer to computed undistorted x focal plane coordinate | 
| cudy | [out] Pointer to computed undistorted y focal plane coordinate | 
| test | Optional parameter to indicate whether to do the back-of-planet test. | 
Reimplemented in Isis::RadarGroundMap.
Definition at line 152 of file CameraGroundMap.cpp.
References Isis::Spice::bodyRotation(), Isis::Camera::DistortionMap(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::Displacement::kilometers(), Isis::CameraGroundMap::m_lookJ, Isis::CameraGroundMap::m_pB, Isis::CameraGroundMap::p_camera, Isis::PI, Isis::Spice::target(), and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().
Referenced by Isis::CameraGroundMap::GetXY(), and Isis::IrregularBodyCameraGroundMap::GetXY().
| 
 | protectedinherited | 
Calculate focalplane x/y from lookvector in camera.
Compute undistorted focal plane coordinate from camera look vector.
Definition at line 106 of file CameraGroundMap.cpp.
References Isis::Camera::DistortionMap(), Isis::CameraGroundMap::p_camera, Isis::CameraGroundMap::p_focalPlaneX, Isis::CameraGroundMap::p_focalPlaneY, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().
Referenced by Isis::CameraGroundMap::SetGround(), and Isis::CameraGroundMap::SetGround().
| 
 | inherited | 
Compute derivative of focal plane coordinate w/r to mean of the ellipsoidal radii (a, b, c)
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the mean of the a (major axis), b (minor axis), and c (polar axis) radius, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
| spoint | Surface point whose derivative is to be evalutated | 
| meanRadius | Computed mean of radii | 
Definition at line 486 of file CameraGroundMap.cpp.
References Isis::Distance::kilometers().
| 
 | inherited | 
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord.
| spoint | Surface point (ground position) | 
| wrt | take derivative with respect to this value | 
Definition at line 508 of file CameraGroundMap.cpp.
| 
 | virtualinherited | 
Compute ground position from focal plane coordinate.
This method will compute the ground position given an undistorted focal plane coordinate. Note that the latitude/longitude value can be obtained from the camera pointer passed into the constructor.
| ux | undistorted focal plane x in millimeters | 
| uy | undistorted focal plane y in millimeters | 
| uz | undistorted focal plane z in millimeters | 
Reimplemented in Isis::RadarGroundMap, and Isis::VimsGroundMap.
Definition at line 50 of file CameraGroundMap.cpp.
References Isis::NaifStatus::CheckErrors(), Isis::CameraGroundMap::p_camera, and Isis::Sensor::SetLookDirection().
Referenced by Isis::Camera::SetImage(), and Isis::Camera::SetImage().
| 
 | virtual | 
Compute undistorted focal plane coordinate from ground position.
| lat | |
| lon | 
Reimplemented from Isis::CameraGroundMap.
Definition at line 28 of file PushFrameCameraGroundMap.cpp.
References Isis::Camera::DetectorMap(), FindDistance(), FindSpacecraftDistance(), Isis::Sensor::LocalRadius(), Isis::CameraGroundMap::p_camera, p_evenFramelets, and Isis::CameraGroundMap::SetGround().
Referenced by SetGround().
| 
 | virtual | 
Compute undistorted focal plane coordinate from ground position that includes a local radius.
| surfacePoint | Surface point (ground position) | 
Reimplemented from Isis::CameraGroundMap.
Definition at line 132 of file PushFrameCameraGroundMap.cpp.
References SetGround().
| 
 | protectedinherited | 
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials.
Definition at line 146 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::GetdXYdOrientation(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::CameraGroundMap::GetdXYdPosition(), Isis::CameraGroundMap::GetdXYdTOrientation(), and Isis::CameraGroundMap::GetXY().
| 
 | protectedinherited | 
Surface point calculated from ground coordinates in GetXY and used for partials.
Definition at line 144 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::GetdXYdTOrientation(), and Isis::CameraGroundMap::GetXY().
| 
 | protectedinherited | 
Definition at line 138 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::CameraGroundMap(), FindDistance(), FindSpacecraftDistance(), Isis::CameraGroundMap::GetdXYdOrientation(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::CameraGroundMap::GetdXYdPosition(), Isis::CameraGroundMap::GetdXYdTOrientation(), Isis::CameraGroundMap::GetXY(), Isis::VimsGroundMap::Init(), Isis::CameraGroundMap::LookCtoFocalPlaneXY(), Isis::CameraGroundMap::SetFocalPlane(), Isis::VimsGroundMap::SetFocalPlane(), Isis::CameraGroundMap::SetGround(), Isis::LineScanCameraGroundMap::SetGround(), SetGround(), Isis::VimsGroundMap::SetGround(), and Isis::CameraGroundMap::SetGround().
| 
 | private | 
True if the file contains even framelets.
Definition at line 58 of file PushFrameCameraGroundMap.h.
Referenced by PushFrameCameraGroundMap(), and SetGround().
| 
 | protectedinherited | 
Camera's x focal plane coordinate.
Definition at line 139 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::FocalPlaneX(), Isis::CameraGroundMap::LookCtoFocalPlaneXY(), and Isis::VimsGroundMap::SetGround().
| 
 | protectedinherited | 
Camera's y focal plane coordinate.
Definition at line 140 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::FocalPlaneY(), Isis::CameraGroundMap::LookCtoFocalPlaneXY(), and Isis::VimsGroundMap::SetGround().