Isis 3.0 Object Programmers' Reference |
Home |
Convert between undistorted focal plane and ground coordinates. More...
#include <CameraGroundMap.h>
Public Types | |
enum | PartialType { WRT_Latitude, WRT_Longitude, WRT_Radius } |
Public Member Functions | |
CameraGroundMap (Camera *parent) | |
virtual | ~CameraGroundMap () |
Destructor. | |
virtual bool | SetFocalPlane (const double ux, const double uy, const double uz) |
Compute ground position from focal plane coordinate. | |
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 that includes a local radius. | |
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 Attributes | |
Camera * | p_camera |
double | p_focalPlaneX |
double | p_focalPlaneY |
Private Member Functions | |
void | LookCtoFocalPlaneXY () |
Calculate focalplane x/y from lookvector in camera. | |
Private Attributes | |
std::vector< double > | p_lookJ |
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials. | |
Convert between undistorted focal plane and ground coordinates.
This base class is used to convert between undistorted focal plane coordinates (x/y) in millimeters and ground coordinates lat/lon. This class handles the case of framing cameras.
2005-11-16 Jeff Anderson Fixed bug in SetGround not setting the proper boolean return value
2007-06-11 Debbie A. Cook - Added overloaded method SetGround that includes a radius argument and the method LookCtoFocalPlaneXY() to handle the common functionality between the SetGround methods
2008-07-14 Steven Lambright Added NaifStatus calls
2009-10-14 Debbie A. Cook Added new virtual method GetXY(lat,lon,radius, lookJ)
2009-11-27 Debbie A. Cook Modified virtual method GetXY(lat,lon,radius,lookJ,cudx,cudy)
2010-03-19 Debbie A. Cook Modified virtual method to return cudx and cudy; added methods GetdXYdPosition, GetdXYdOrientation, GetdXYdPoint, PointPartial, and DQuotient; and added members PartialType (from BundleAdjust) and p_lookJ.
2010-08-05 Debbie A. Cook Added another version of GetXY to support changes from binary control net upgrade
2010-11-22 Debbie A. Cook Moved PointPartial call out of GetdXYdPoint to allow BundleAdjust to avoid multiple calls for every measure. The application must call PointPartial to get the body-fixed look vector derivative prior to calling this method.
2011-02-09 Steven Lambright SetGround now uses the Latitude, Longitude and SurfacePoint classes.
2011-03-18 Debbie A. Cook Added reference to surface point in GetXY
2012-07-06 Debbie A. Cook Updated Spice members to be more compliant with Isis coding standards. References #972.
2012-10-10 Debbie A. Cook Modified to use new Target class. References Mantis ticket #775 and #1114.
2013-02-22 Debbie A. Cook Fixed LookCtoFocalPlaneXY method to properly handle instruments with a look direction along the negative z axis. Fixes Mantis ticket #1524
2014-04-17 Jeannie Backer - Replaced local variable names with more descriptive names. References #1659.
Definition at line 79 of file CameraGroundMap.h.
|
inlinevirtual |
Destructor.
Definition at line 84 of file CameraGroundMap.h.
double Isis::CameraGroundMap::DQuotient | ( | std::vector< double > & | look, |
std::vector< double > & | dlook, | ||
int | index | ||
) |
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.
|
inline |
Return undistorted focal plane x.
Definition at line 113 of file CameraGroundMap.h.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
inline |
Return undistorted focal plane y.
Definition at line 118 of file CameraGroundMap.h.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
virtual |
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().
|
virtual |
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().
|
virtual |
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().
|
virtual |
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().
|
virtual |
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.
|
private |
Calculate focalplane x/y from lookvector in camera.
Compute undistorted focal plane coordinate from camera look vector.
Definition at line 105 of file CameraGroundMap.cpp.
std::vector< double > Isis::CameraGroundMap::PointPartial | ( | SurfacePoint | spoint, |
PartialType | wrt | ||
) |
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().
|
virtual |
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().
Compute undistorted focal plane coordinate from ground position.
lat | planetocentric latitude in degrees |
lon | planetocentric longitude in degrees |
Reimplemented in Isis::RadarGroundMap, Isis::VimsGroundMap, Isis::LineScanCameraGroundMap, and Isis::PushFrameCameraGroundMap.
Definition at line 80 of file CameraGroundMap.cpp.
References Isis::Angle::degrees().
Referenced by Isis::PushFrameCameraGroundMap::SetGround(), Isis::Camera::SetGround(), and Isis::Camera::SetUniversalGround().
|
virtual |
Compute undistorted focal plane coordinate from ground position that includes a local radius.
lat | planetocentric latitude in degrees |
lon | planetocentric longitude in degrees |
radius | local radius in meters |
Reimplemented in Isis::RadarGroundMap, Isis::VimsGroundMap, Isis::LineScanCameraGroundMap, and Isis::PushFrameCameraGroundMap.
Definition at line 125 of file CameraGroundMap.cpp.
|
private |
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials.
Definition at line 129 of file CameraGroundMap.h.