Isis Developer Reference
Isis::PushFrameCameraGroundMap Class Reference

Convert between undistorted focal plane and ground coordinates. More...

#include <PushFrameCameraGroundMap.h>

Inheritance diagram for Isis::PushFrameCameraGroundMap:
Inheritance graph
Collaboration diagram for Isis::PushFrameCameraGroundMap:
Collaboration graph

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 Attributes

Camerap_camera
 Camera.
 
double p_focalPlaneX
 Camera's x focal plane coordinate.
 
double p_focalPlaneY
 Camera's y focal plane coordinate.
 

Detailed Description

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.

See also
Camera
Author
2007-10-17 Steven Lambright and Jeff Anderson

Member Enumeration Documentation

◆ PartialType

Radius axes types to use when computing partials.

When computing partials, this enum represents the "with respect to" variable in the computation.

Enumerator
WRT_Latitude 
WRT_Longitude 
WRT_Radius 
WRT_MajorAxis 
WRT_MinorAxis 
WRT_PolarAxis 

Constructor & Destructor Documentation

◆ PushFrameCameraGroundMap()

Isis::PushFrameCameraGroundMap::PushFrameCameraGroundMap ( Camera * cam,
bool evenFramelets )
inline

This is the constructor for the push frame ground map.

Parameters
camPointer to the camera
evenFrameletsTrue if the image contains even framelets

◆ ~PushFrameCameraGroundMap()

virtual Isis::PushFrameCameraGroundMap::~PushFrameCameraGroundMap ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ DQuotient()

double Isis::CameraGroundMap::DQuotient ( std::vector< double > & look,
std::vector< double > & dlook,
int index )
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)

Parameters
looklook vector in camera frame
dlookderivative of look vector in camera frame
indexvector value to differentiate
Returns
double derivative Computed derivative

Referenced by Isis::CameraGroundMap::GetdXYdOrientation(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::CameraGroundMap::GetdXYdPosition(), and Isis::CameraGroundMap::GetdXYdTOrientation().

◆ EllipsoidPartial()

vector< double > Isis::CameraGroundMap::EllipsoidPartial ( SurfacePoint spoint,
PartialType raxis )
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.

Parameters
spointSurface point whose derivative is to be evalutated
raxisRadius axis enumerated partial type (definitions in this header)
Exceptions
IException::Programmer"Invalid partial type for this method"
Returns
vector<double> partialDerivative of body-fixed point with respect to selected ellipsoid axis

References _FILEINFO_, Isis::IException::Programmer, Isis::CameraGroundMap::WRT_MajorAxis, Isis::CameraGroundMap::WRT_MinorAxis, and Isis::CameraGroundMap::WRT_PolarAxis.

◆ FocalPlaneX()

double Isis::CameraGroundMap::FocalPlaneX ( ) const
inlineinherited
Returns
The undistorted focal plane x

References Isis::CameraGroundMap::p_focalPlaneX.

◆ FocalPlaneY()

double Isis::CameraGroundMap::FocalPlaneY ( ) const
inlineinherited
Returns
The undistorted focal plane y

References Isis::CameraGroundMap::p_focalPlaneY.

◆ GetdXYdOrientation()

bool Isis::CameraGroundMap::GetdXYdOrientation ( const SpiceRotation::PartialType varType,
int coefIndex,
double * dx,
double * dy )
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.

Parameters
varTypeenumerated partial type (definitions in SpicePosition)
coefIndexcoefficient index of fit polynomial
*dxout] pointer to partial derivative of undistorted focal plane x
*dy[out] pointer to partial derivative of undistorted focal plane y
Returns
bool If conversion was successful

References Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

Referenced by Isis::IsisBundleObservation::computeImagePartials().

◆ GetdXYdPoint()

bool Isis::CameraGroundMap::GetdXYdPoint ( std::vector< double > d_pB,
double * dx,
double * dy )
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.

Parameters
d_pBPoint vector
*dx[out] pointer to partial derivative of undistorted focal plane x
*dy[out] pointer to partial derivative of undistorted focal plane y
Returns
conversion was successful

Reimplemented in Isis::RadarGroundMap.

References Isis::Spice::bodyRotation(), Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

◆ GetdXYdPosition()

bool Isis::CameraGroundMap::GetdXYdPosition ( const SpicePosition::PartialType varType,
int coefIndex,
double * dx,
double * dy )
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.

Parameters
varTypeenumerated partial type (definitions in SpicePosition)
coefIndexcoefficient 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
Returns
bool If conversion was successful

Reimplemented in Isis::RadarGroundMap.

References Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

Referenced by Isis::IsisBundleObservation::computeImagePartials().

◆ GetdXYdTOrientation()

bool Isis::CameraGroundMap::GetdXYdTOrientation ( const SpiceRotation::PartialType varType,
int coefIndex,
double * dx,
double * dy )
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.

Parameters
varTypeenumerated partial type (definitions in SpicePosition)
coefIndexcoefficient 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
Returns
bool If conversion was successful

References Isis::Spice::bodyRotation(), Isis::Camera::DistortionMap(), Isis::CameraGroundMap::DQuotient(), Isis::Spice::instrumentRotation(), Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

◆ GetXY() [1/2]

bool Isis::CameraGroundMap::GetXY ( const double lat,
const double lon,
const double radius,
double * cudx,
double * cudy )
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.

Parameters
latLatitude in degrees
lonLongitude in degrees
radiusRadius in meters
cudx[out] Pointer to computed undistored x focal plane coordinate
cudy[out] Pointer to computed undistored y focal plane coordinate
Returns
bool If conversion was successful
See also
the application socetlinescankeywords

References Isis::Angle::Degrees, Isis::CameraGroundMap::GetXY(), and Isis::Distance::Meters.

◆ GetXY() [2/2]

bool Isis::CameraGroundMap::GetXY ( const SurfacePoint & point,
double * cudx,
double * cudy,
bool test = true )
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.

Parameters
pointSurface point (ground position)
cudx[out] Pointer to computed undistorted x focal plane coordinate
cudy[out] Pointer to computed undistorted y focal plane coordinate
testOptional parameter to indicate whether to do the back-of-planet test.
Returns
bool If conversion was successful

Reimplemented in Isis::RadarGroundMap.

References Isis::Spice::bodyRotation(), Isis::Camera::DistortionMap(), Isis::SurfacePoint::GetX(), Isis::SurfacePoint::GetY(), Isis::SurfacePoint::GetZ(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::Displacement::kilometers(), Isis::CameraGroundMap::p_camera, Isis::PI, Isis::Spice::target(), and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

Referenced by Isis::CameraGroundMap::GetXY().

◆ MeanRadiusPartial()

vector< double > Isis::CameraGroundMap::MeanRadiusPartial ( SurfacePoint spoint,
Distance meanRadius )
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.

Parameters
spointSurface point whose derivative is to be evalutated
meanRadiusComputed mean of radii
Returns
vector<double> partialDerivative of body-fixed point with respect to mean radius TODO This method assumes the radii of all points in the adjustment have been set identically to the ???

References Isis::Distance::kilometers().

◆ PointPartial()

vector< double > Isis::CameraGroundMap::PointPartial ( SurfacePoint spoint,
PartialType wrt )
inherited

Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord.

Parameters
spointSurface point (ground position)
wrttake derivative with respect to this value
Returns
vector<double> partialDerivative Computed derivative

References Isis::CameraGroundMap::WRT_Latitude, and Isis::CameraGroundMap::WRT_Longitude.

◆ SetFocalPlane()

bool Isis::CameraGroundMap::SetFocalPlane ( const double ux,
const double uy,
const double uz )
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.

Parameters
uxundistorted focal plane x in millimeters
uyundistorted focal plane y in millimeters
uzundistorted focal plane z in millimeters
Returns
bool If conversion was successful

Reimplemented in Isis::RadarGroundMap, and Isis::VimsGroundMap.

References Isis::NaifStatus::CheckErrors(), Isis::CameraGroundMap::p_camera, and Isis::Sensor::SetLookDirection().

Referenced by Isis::Camera::SetImage(), and Isis::Camera::SetImage().

◆ SetGround() [1/2]

bool Isis::PushFrameCameraGroundMap::SetGround ( const Latitude & lat,
const Longitude & lon )
virtual

Compute undistorted focal plane coordinate from ground position.

Parameters
lat
lon
Returns
conversion was successful

Reimplemented from Isis::CameraGroundMap.

References Isis::Camera::DetectorMap(), Isis::Sensor::LocalRadius(), Isis::CameraGroundMap::p_camera, and Isis::CameraGroundMap::SetGround().

Referenced by SetGround().

◆ SetGround() [2/2]

bool Isis::PushFrameCameraGroundMap::SetGround ( const SurfacePoint & surfacePoint)
virtual

Compute undistorted focal plane coordinate from ground position that includes a local radius.

Parameters
surfacePointSurface point (ground position)
Returns
bool If conversion was successful

Reimplemented from Isis::CameraGroundMap.

References SetGround().

Member Data Documentation

◆ p_camera

◆ p_focalPlaneX

double Isis::CameraGroundMap::p_focalPlaneX
protectedinherited

◆ p_focalPlaneY

double Isis::CameraGroundMap::p_focalPlaneY
protectedinherited

The documentation for this class was generated from the following files: