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. More... | |
virtual | ~PushFrameCameraGroundMap () |
Destructor. More... | |
virtual bool | SetGround (const Latitude &lat, const Longitude &lon) |
Compute undistorted focal plane coordinate from ground position. More... | |
virtual bool | SetGround (const SurfacePoint &surfacePt) |
Compute undistorted focal plane coordinate from ground position that includes a local radius. More... | |
virtual bool | SetFocalPlane (const double ux, const double uy, const double uz) |
Compute ground position from focal plane coordinate. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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) More... | |
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) More... | |
double | DQuotient (std::vector< double > &look, std::vector< double > &dlook, int index) |
Convenience method for quotient rule applied to look vector. More... | |
double | FocalPlaneX () const |
double | FocalPlaneY () const |
Protected Attributes | |
Camera * | p_camera |
Camera. More... | |
double | p_focalPlaneX |
Camera's x focal plane coordinate. More... | |
double | p_focalPlaneY |
Camera's y focal plane coordinate. More... | |
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. More... | |
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. More... | |
Private Attributes | |
bool | p_evenFramelets |
True if the file contains even framelets. More... | |
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 51 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 104 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 59 of file PushFrameCameraGroundMap.h.
References p_evenFramelets.
|
inlinevirtual |
Destructor.
Definition at line 65 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 566 of file CameraGroundMap.cpp.
|
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 452 of file CameraGroundMap.cpp.
References _FILEINFO_, Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and Isis::Angle::radians().
Referenced by Isis::BundleAdjust::computePartials().
|
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 163 of file PushFrameCameraGroundMap.cpp.
References Isis::CameraFocalPlaneMap::DetectorLine(), Isis::Camera::DetectorMap(), Isis::CameraFocalPlaneMap::DetectorSample(), Isis::Camera::DistortionMap(), Isis::Camera::FocalLength(), Isis::Camera::FocalPlaneMap(), Isis::CameraDistortionMap::FocalPlaneX(), Isis::CameraDistortionMap::FocalPlaneY(), Isis::PushFrameCameraDetectorMap::frameletHeight(), Isis::PushFrameCameraDetectorMap::frameletLine(), Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraGroundMap::p_camera, Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::CameraFocalPlaneMap::SetFocalPlane(), Isis::PushFrameCameraDetectorMap::SetFramelet(), and Isis::CameraDistortionMap::SetUndistortedFocalPlane().
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 202 of file PushFrameCameraGroundMap.cpp.
References Isis::Camera::DetectorMap(), Isis::CameraGroundMap::p_camera, Isis::PushFrameCameraDetectorMap::SetFramelet(), and Isis::Sensor::SlantDistance().
Referenced by SetGround().
|
inlineinherited |
Definition at line 139 of file CameraGroundMap.h.
References Isis::CameraGroundMap::p_focalPlaneX.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
inlineinherited |
Definition at line 146 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 334 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::ReferenceVector(), and Isis::SpiceRotation::ToReferencePartial().
Referenced by Isis::BundleAdjust::computePartials().
|
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 414 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::J2000Vector(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::computePartials().
|
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 295 of file CameraGroundMap.cpp.
References Isis::SpicePosition::CoordinatePartial(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::computePartials().
|
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 370 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::ReferenceVector(), and Isis::SpiceRotation::toJ2000Partial().
Referenced by Isis::BundleAdjust::computePartials().
|
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 168 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::J2000Vector(), Isis::Displacement::kilometers(), Isis::PI, and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::computePartials(), Isis::ControlPoint::ComputeResiduals(), and Isis::ControlPoint::ComputeResiduals_Millimeters().
|
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 270 of file CameraGroundMap.cpp.
|
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 502 of file CameraGroundMap.cpp.
References Isis::Displacement::kilometers(), and Isis::Distance::kilometers().
Referenced by Isis::BundleAdjust::computePartials().
|
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 524 of file CameraGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::Distance::kilometers(), and Isis::Angle::radians().
|
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 66 of file CameraGroundMap.cpp.
Referenced by Isis::Camera::SetImage().
|
virtual |
Compute undistorted focal plane coordinate from ground position.
lat | |
lon |
Reimplemented from Isis::CameraGroundMap.
Definition at line 44 of file PushFrameCameraGroundMap.cpp.
References Isis::Camera::DetectorMap(), FindDistance(), FindSpacecraftDistance(), Isis::Sensor::LocalRadius(), Isis::CameraGroundMap::p_camera, p_evenFramelets, Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::CameraGroundMap::SetGround(), Isis::PushFrameCameraDetectorMap::timeAscendingFramelets(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
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 148 of file PushFrameCameraGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and SetGround().
|
protectedinherited |
Definition at line 148 of file CameraGroundMap.h.
Referenced by FindDistance(), FindSpacecraftDistance(), Isis::VimsGroundMap::Init(), Isis::VimsGroundMap::SetFocalPlane(), SetGround(), Isis::LineScanCameraGroundMap::SetGround(), and Isis::VimsGroundMap::SetGround().
|
private |
True if the file contains even framelets.
Definition at line 75 of file PushFrameCameraGroundMap.h.
Referenced by PushFrameCameraGroundMap(), and SetGround().
|
protectedinherited |
Camera's x focal plane coordinate.
Definition at line 152 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::FocalPlaneX(), and Isis::VimsGroundMap::SetGround().
|
protectedinherited |
Camera's y focal plane coordinate.
Definition at line 153 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::FocalPlaneY(), and Isis::VimsGroundMap::SetGround().