Isis 3.0 Object Programmers' Reference |
Home |
Convert between undistorted focal plane and ground coordinates. More...
#include <LineScanCameraGroundMap.h>
Public Types | |
enum | PartialType { WRT_Latitude, WRT_Longitude, WRT_Radius } |
Public Member Functions | |
LineScanCameraGroundMap (Camera *cam) | |
Constructor. | |
virtual | ~LineScanCameraGroundMap () |
Destructor. | |
virtual bool | SetGround (const Latitude &lat, const Longitude &lon) |
Compute undistorted focal plane coordinate from ground position. | |
virtual bool | SetGround (const SurfacePoint &surfacePoint) |
Compute undistorted focal plane coordinate from ground position. | |
virtual bool | SetGround (const SurfacePoint &surfacePoint, const int &approxLine) |
Compute undistorted focal plane coordinate from ground position. | |
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) |
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 orientation from ground position using current Spice from SetImage call. | |
virtual bool | GetdXYdPoint (std::vector< double > d_lookB, double *cudx, double *cudy) |
Compute derivative of focal plane coordinate w/r to ground point from ground position using current Spice from SetImage call. | |
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. | |
double | DQuotient (std::vector< double > &look, std::vector< double > &dlook, int index) |
Convenience method for quotient rule applied to look vector. | |
double | FocalPlaneX () const |
Return undistorted focal plane x. | |
double | FocalPlaneY () const |
Return undistorted focal plane y. | |
Protected Types | |
enum | FindFocalPlaneStatus { Success, BoundingProblem, Failure } |
Protected Member Functions | |
FindFocalPlaneStatus | FindFocalPlane (const int &approxLine, const SurfacePoint &surfacePoint) |
double | FindSpacecraftDistance (int line, const SurfacePoint &surfacePoint) |
Protected Attributes | |
Camera * | p_camera |
double | p_focalPlaneX |
double | p_focalPlaneY |
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.
2005-02-08 Jeff Anderson - Original version
2005-08-24 Jeff Anderson - Fixed bug when algorithm was checking for the backside of the planet and convergence failed (checkHidden)
2005-11-16 Jeff Anderson - Fixed bug when a image covers more than 180 degrees in an orbit which would cause two focal plane roots to be inside the start/end time range.
2007-12-21 Debbie A. Cook - Added overloaded method SetGround that includes a radius argument
2009-03-02 Steven Lambright - Added an additional method of finding the point in SetGround(...) if the original algorithm fails. The spacecraft position at the beginning and end of the image are now being used to estimate the correct line if the bounding check fails the first time through.
2010-06-17 Steven Lambright - More tolerant of failures in the distortion models for finding the bounds of the search in FindSpacecraftDistance
2010-12-07 Steven Lambright - SetGround(double,double) now goes straight to the radius instead of using SetUniversalGround to get the radius.
2012-07-06 Debbie A. Cook, Updated Spice members to be more compliant with Isis coding standards. References #972.
Definition at line 67 of file LineScanCameraGroundMap.h.
Isis::LineScanCameraGroundMap::LineScanCameraGroundMap | ( | Camera * | cam | ) |
Constructor.
cam | pointer to camera model |
Definition at line 213 of file LineScanCameraGroundMap.cpp.
|
virtual |
Destructor.
Definition at line 219 of file LineScanCameraGroundMap.cpp.
|
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 385 of file CameraGroundMap.cpp.
|
inlineinherited |
Return undistorted focal plane x.
Definition at line 113 of file CameraGroundMap.h.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
inlineinherited |
Return undistorted focal plane y.
Definition at line 118 of file CameraGroundMap.h.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to orientation 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 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 | pointer to partial derivative of undistorted focal plane x |
*dy | pointer to partial derivative of undistorted focal plane y |
Definition at line 280 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::ReferenceVector(), and Isis::SpiceRotation::ToReferencePartial().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to ground point 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 lat, lon, or radius, 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 | pointer to partial derivative of undistorted focal plane x |
*dy | pointer to partial derivative of undistorted focal plane y |
Reimplemented in Isis::RadarGroundMap.
Definition at line 312 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::J2000Vector(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
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 | pointer to partial derivative of undistorted focal plane x |
*dy | pointer to partial derivative of undistorted focal plane y |
Reimplemented in Isis::RadarGroundMap.
Definition at line 243 of file CameraGroundMap.cpp.
References Isis::SpicePosition::CoordinatePartial(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
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/p_pB/x/y. The class value for p_look is set by this method.
point |
Reimplemented in Isis::RadarGroundMap.
Definition at line 146 of file CameraGroundMap.cpp.
References Isis::Displacement::kilometers(), Isis::PI(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::AddPartials(), Isis::BundleAdjust::ComputePartials_DC(), 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/p_pB/x/y. The class value for p_look is set by this method.
Definition at line 220 of file CameraGroundMap.cpp.
|
inherited |
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord.
lat | planetocentric latitude in degrees |
lon | planetocentric longitude in degrees |
radius | local radius in meters |
wrt | take derivative with respect to this value |
Definition at line 343 of file CameraGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::Distance::kilometers(), and Isis::Angle::radians().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
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 class passed into the constructor.
ux | distorted focal plane x in millimeters |
uy | distorted focal plane y in millimeters |
uz | distorted focal plane z in millimeters |
Reimplemented in Isis::RadarGroundMap, and Isis::VimsGroundMap.
Definition at line 55 of file CameraGroundMap.cpp.
Referenced by Isis::Camera::SetImage().
|
virtual |
Compute undistorted focal plane coordinate from ground position.
lat | planetocentric latitude in degrees |
lon | planetocentric longitude in degrees |
Reimplemented from Isis::CameraGroundMap.
Definition at line 228 of file LineScanCameraGroundMap.cpp.
References Isis::Sensor::LocalRadius().
|
virtual |
Compute undistorted focal plane coordinate from ground position.
surfacePoint | 3D point on the surface of the planet |
Reimplemented from Isis::CameraGroundMap.
Definition at line 263 of file LineScanCameraGroundMap.cpp.
|
virtual |
Compute undistorted focal plane coordinate from ground position.
lat | planetocentric latitude in degrees |
lon | planetocentric longitude in degrees |
radius | local radius in meters |
Definition at line 249 of file LineScanCameraGroundMap.cpp.