Isis 3 Programmer Reference
Isis::VimsGroundMap Class Reference

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

#include <VimsGroundMap.h>

Inheritance diagram for Isis::VimsGroundMap:
Inheritance graph
Collaboration diagram for Isis::VimsGroundMap:
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

 VimsGroundMap (Camera *parent, Pvl &lab)
 Constructs the VimsGroundMap object.
 
virtual ~VimsGroundMap ()
 Destroys the VimsGroundMap object.
 
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.
 
void Init (Pvl &lab)
 Initialize vims camera model.
 
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.
 

Private Member Functions

void LookDirection (double v[3])
 Determines the look direction in the camera coordinate system.
 
void LookCtoFocalPlaneXY ()
 Calculate focalplane x/y from lookvector in camera.
 

Private Attributes

SpiceDouble p_etStart
 Start ephemeris time.
 
double p_interlineDelay
 InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000.
 
double p_ux
 Distorted focal plane x, in millimeters.
 
double p_uy
 Distorted focal plane y, in millimeters.
 
double p_uz
 Distorted focal plane z, in millimeters.
 
double p_xPixSize
 X pixel size.
 
double p_yPixSize
 Y pixel size.
 
double p_xBore
 X boresight.
 
double p_yBore
 Y boresight.
 
QString p_channel
 Channel keyword value from the instrument group of the labels.
 
double p_visExp
 VIS exposure duration, divided by 1000.
 
double p_irExp
 IR exposure duration, divided by 1000.
 
int p_swathWidth
 SwathWidth keyword value from the instrument group of the labels.
 
int p_swathLength
 SwathLength keyword value from the instrument group of the labels.
 
int p_camSampOffset
 Sample offset.
 
int p_camLineOffset
 Line offset.
 
double p_minX
 
double p_maxX
 
double p_minY
 
double p_maxY
 
double p_minZ
 
double p_maxZ
 
QVector3D p_xyzMap [64][64]
 
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.
 

Detailed Description

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.

See also
Camera
VimsCamera
Author
2006-03-16 Tracie Sucharski
History

2006-03-16 Tracie Sucharski Original version

2008-02-05 Tracie Sucharski, Replaced unitVector files with Rick McCloskey's code to calculate look direction.

2008-06-18 Steven Lambright Fixed documentation

2009-04-06 Steven Lambright Fixed problem that caused double deletion of sky map / ground map.

2009-08-06 Tracie Sucharski, Bug in unit vector change made on 2008-02-05, had the incorrect boresight for VIS Hires.

2011-02-08 Steven Lambright & Debbie Cook, Added WrapWorldToBeClose and refactored to use the Latitude and Longitude classes.

2011-05-03 Jeannie Walldren - Updated documentation. Removed Cassini namespace wrap inside Isis namespace.

2011-10-19 Steven Lambright - Added common sense check to constructor to at least provide a string explanation for why their program is going to crash when the original cube makes no sense. Since the exception is in the constructor the error will probably lead to an alternate seg fault.

2012-07-06 Debbie A. Cook, Updated Spice members to be more compliant with Isis coding standards. References #972.

2012-09-10 Ken Edmundson, Added new methods, SetGroundwithLatitudeLongitude and SetGroundwithRadiusLongitude to support rings data.

2012-12-03 Tracie Sucharski - Added error check to SetGround method. Returns false if none of the pixel centers in the cube intersect with the planet. Fixes #1306.

2013-07-24 Tracie Sucharski - Fix bug in camera model which causes a problems finding either north or south poles in images. References #1289.

2013-08-12 Tracie Sucharski - Change all computations base on latitude and longitude to x, y and z. This takes care of pole problems and improves accuracy. Fixes #1289.

2014-04-09 Tracie Sucharski - When changing the camera model from lat/lon to x/y/z calculations the range checking was removed. This caused extra pixels to be projected into incorrect positions when doing global projections. Range checking was put back in using x/y/z values. References #1289.

Definition at line 77 of file VimsGroundMap.h.

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.

Definition at line 87 of file CameraGroundMap.h.

Constructor & Destructor Documentation

◆ VimsGroundMap()

Isis::VimsGroundMap::VimsGroundMap ( Camera * parent,
Pvl & lab )

Constructs the VimsGroundMap object.

Parameters
parentA pointer to the parent Camera object
labPvl labels for the image

Definition at line 42 of file VimsGroundMap.cpp.

References Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), and Isis::IException::Programmer.

◆ ~VimsGroundMap()

Isis::VimsGroundMap::~VimsGroundMap ( )
virtual

Destroys the VimsGroundMap object.

Definition at line 64 of file VimsGroundMap.cpp.

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

Definition at line 550 of file CameraGroundMap.cpp.

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

Definition at line 436 of file CameraGroundMap.cpp.

References Isis::IException::Programmer.

◆ FocalPlaneX()

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

Definition at line 122 of file CameraGroundMap.h.

References Isis::CameraGroundMap::p_focalPlaneX.

Referenced by Isis::Camera::RawFocalPlanetoImage().

◆ FocalPlaneY()

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

Definition at line 129 of file CameraGroundMap.h.

References Isis::CameraGroundMap::p_focalPlaneY.

Referenced by Isis::Camera::RawFocalPlanetoImage().

◆ 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

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().

◆ 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.

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().

◆ 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.

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().

◆ 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

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().

◆ 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

Definition at line 254 of file CameraGroundMap.cpp.

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.

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().

◆ Init()

void Isis::VimsGroundMap::Init ( Pvl & lab)

Initialize vims camera model.

Parameters
[in]lab(Pvl &) Cube Pvl label
Exceptions
iException::Io- "Cannot process NYQUIST(undersampled) mode "
History

2007-04-16 Tracie Sucharski - Look for unit vectors in the proper directory.

2007-04-18 Tracie Sucharski, The inaccuracy of the 15 Mhz clock (exposure , interline_delay) is already taken care of in the labels values, so remove the adjustment from the code (exp * 1.01725). *Reference: email from John Ivens 11/27/2006.

2007-04-19 Tracie Sucharski, Swap bytes on unit vectors. They are currently LSB binary files. ???Todo:??? Convert unit vectors to text files.

2008-02-05 Tracie Sucharski, Replaced unitVector files with Rick McCloskey's code to calculate look direction.

2009-08-06 Tracie Sucharski, Bug in unit vector change made on 2008-02-05, had the incorrect boresight for VIS Hires.

2013-09-09 Tracie Sucharski, Turns out the times in the labels are NOT corrected, so the corrections NEED to happen in the code. There was discussion among UofA Vims and PDS about reproducing PDS archive with labels corrected, but the decision was made to perform the correction in the code and leave the archive alone. Some history: 08-23-2004 Rick McCloskey gave me the correction to put in the code since he said the label values were incorrect. 11-27-2006 John Ivens said the labels values were corrected, so I removed the correction factor from the code. For more info, See previous history entries: 2007-04-18.

2014-04-09 Tracie Sucharski - When converting the camera model from lat/lon to x/y/z calculations, the range check in the SetGround method was removed. When creating global projections, the pixel data would be replicated in incorrect locations due to the least squares fitting always finding a fit, even if it's incorrect. The range checking was added back in using x/y/z min/max values. However, this caused the pole not to be found, so the min/max z values are adjusted to include the pole if they are within 1 km of the pole. This value was chosen through trial and error, and I have concerns that this may need to be adjusted for images with different resolutions. I think it would just cause a few extra pixels at the edge worse case scenario.

Definition at line 116 of file VimsGroundMap.cpp.

References Isis::Sensor::Coordinate(), Isis::Spice::getClockTime(), Isis::Camera::IgnoreProjection(), Isis::Distance::kilometers(), Isis::Null, Isis::CameraGroundMap::p_camera, p_camLineOffset, p_camSampOffset, p_channel, p_etStart, p_interlineDelay, p_irExp, p_swathLength, p_swathWidth, p_visExp, p_xBore, p_xPixSize, p_yBore, p_yPixSize, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::IException::Programmer, Isis::Spice::radii(), Isis::Camera::SetImage(), Isis::Sensor::setTime(), Isis::toDouble(), and Isis::PvlObject::Traverse.

◆ LookCtoFocalPlaneXY()

void Isis::CameraGroundMap::LookCtoFocalPlaneXY ( )
privateinherited

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().

◆ LookDirection()

void Isis::VimsGroundMap::LookDirection ( double v[3])
private

Determines the look direction in the camera coordinate system.

Parameters
[out]vLook direction vector in camera coordinates

This method will compute the look direction vector in the camera coordinate system. This code was converted from Rick McCloskey's point_tbl c code.

History
2008-01-031 Tracie Sucharski - Converted Rick's code rather than using the unitVector files from Rick.

Definition at line 511 of file VimsGroundMap.cpp.

References Isis::HALFPI, p_camLineOffset, p_camSampOffset, p_ux, p_uy, p_xBore, p_xPixSize, p_yBore, and p_yPixSize.

Referenced by SetFocalPlane().

◆ 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 ???

Definition at line 486 of file CameraGroundMap.cpp.

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

Definition at line 508 of file CameraGroundMap.cpp.

◆ SetFocalPlane()

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

Parameters
uxDistorted focal plane x in millimeters
uyDistorted focal plane y in millimeters
uzDistorted focal plane z in millimeters
Returns
bool Indicates whether the conversion was successful
History

2008-01-02 Tracie Sucharski - Check incoming pixel for validity against edge of pixel not center.

2008-02-05 Tracie Sucharski, Replaced unitVector files with Rick McCloskey's code to calculate look direction

2008-02-14 Tracie Sucharski, Change imgSamp/imgLine to double so that fractional pixels are used in calculations.

Reimplemented from Isis::CameraGroundMap.

Definition at line 287 of file VimsGroundMap.cpp.

References LookDirection(), Isis::CameraGroundMap::p_camera, p_channel, p_etStart, p_interlineDelay, p_irExp, p_swathWidth, p_ux, p_uy, p_uz, p_visExp, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::Sensor::SetLookDirection(), and Isis::Sensor::setTime().

◆ SetGround() [1/2]

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

Compute undistorted focal plane coordinate from ground position.

Parameters
latPlanetocentric latitude in degrees
lonPlanetocentric longitude in degrees
Returns
bool Indicates whether the conversion was successful
History

2007-04-18 Tracie Sucharski - Added check for reasonable match when attempting to find closest lat/lon in map arrays.

2007-09-14 Tracie Sucharski - Added check for longitude outside min/max bounds. Don't know why this wasn't put in before (lat check was in), was it oversight, or did I take it out for some reason???

2007-12-14 Tracie Sucharski - Remove resolution test, too image dependent and the resolution for vims is incorrect due to the instrument having rectangular pixels.

2008-01-02 Tracie Sucharski - Check validity of resulting sample and line against edge of starting ending pixels (0.5/Parent+0.5) instead of center of pixels.

2012-12-03 Tracie Sucharski - Check for valid minLat/maxLat, minLon/maxLon. If none are valid, this means the latMap and lonMap have no valid data, therefore we cannot back project, so return false.

2014-04-08 Tracie Sucharski - Change the sanity check made on 2012-12-03 from lat/lon to xyz.

Reimplemented from Isis::CameraGroundMap.

Definition at line 359 of file VimsGroundMap.cpp.

References Isis::Sensor::HasSurfaceIntersection(), Isis::Camera::IgnoreProjection(), Isis::Sensor::LocalRadius(), Isis::CameraGroundMap::p_camera, Isis::CameraGroundMap::p_focalPlaneX, Isis::CameraGroundMap::p_focalPlaneY, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::Camera::SetImage(), and Isis::Spice::target().

Referenced by SetGround().

◆ SetGround() [2/2]

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

Compute undistorted focal plane coordinate from ground position.

Parameters
surfacePointGround surface point
Returns
bool Indicates whether the conversion was successful.

Reimplemented from Isis::CameraGroundMap.

Definition at line 492 of file VimsGroundMap.cpp.

References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and SetGround().

Member Data Documentation

◆ m_lookJ

std::vector<double> Isis::CameraGroundMap::m_lookJ
privateinherited

Look vector in J2000 calculated from ground coordinates in GetXY and used for partials.

Definition at line 143 of file CameraGroundMap.h.

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

◆ m_pB

std::vector<double> Isis::CameraGroundMap::m_pB
privateinherited

Surface point calculated from ground coordinates in GetXY and used for partials.

Definition at line 141 of file CameraGroundMap.h.

Referenced by Isis::CameraGroundMap::GetdXYdTOrientation(), and Isis::CameraGroundMap::GetXY().

◆ p_camera

◆ p_camLineOffset

int Isis::VimsGroundMap::p_camLineOffset
private

Line offset.

Definition at line 119 of file VimsGroundMap.h.

Referenced by Init(), and LookDirection().

◆ p_camSampOffset

int Isis::VimsGroundMap::p_camSampOffset
private

Sample offset.

Definition at line 118 of file VimsGroundMap.h.

Referenced by Init(), and LookDirection().

◆ p_channel

QString Isis::VimsGroundMap::p_channel
private

Channel keyword value from the instrument group of the labels.

Possible values are IR or VIS

Definition at line 110 of file VimsGroundMap.h.

Referenced by Init(), and SetFocalPlane().

◆ p_etStart

SpiceDouble Isis::VimsGroundMap::p_etStart
private

Start ephemeris time.

Definition at line 96 of file VimsGroundMap.h.

Referenced by Init(), and SetFocalPlane().

◆ p_focalPlaneX

double Isis::CameraGroundMap::p_focalPlaneX
protectedinherited

Camera's x focal plane coordinate.

Definition at line 135 of file CameraGroundMap.h.

Referenced by Isis::CameraGroundMap::FocalPlaneX(), Isis::CameraGroundMap::LookCtoFocalPlaneXY(), and SetGround().

◆ p_focalPlaneY

double Isis::CameraGroundMap::p_focalPlaneY
protectedinherited

Camera's y focal plane coordinate.

Definition at line 136 of file CameraGroundMap.h.

Referenced by Isis::CameraGroundMap::FocalPlaneY(), Isis::CameraGroundMap::LookCtoFocalPlaneXY(), and SetGround().

◆ p_interlineDelay

double Isis::VimsGroundMap::p_interlineDelay
private

InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000.

Definition at line 98 of file VimsGroundMap.h.

Referenced by Init(), and SetFocalPlane().

◆ p_irExp

double Isis::VimsGroundMap::p_irExp
private

IR exposure duration, divided by 1000.

Definition at line 113 of file VimsGroundMap.h.

Referenced by Init(), and SetFocalPlane().

◆ p_maxX

double Isis::VimsGroundMap::p_maxX
private

Definition at line 121 of file VimsGroundMap.h.

◆ p_maxY

double Isis::VimsGroundMap::p_maxY
private

Definition at line 122 of file VimsGroundMap.h.

◆ p_maxZ

double Isis::VimsGroundMap::p_maxZ
private

Definition at line 123 of file VimsGroundMap.h.

◆ p_minX

double Isis::VimsGroundMap::p_minX
private

Definition at line 121 of file VimsGroundMap.h.

◆ p_minY

double Isis::VimsGroundMap::p_minY
private

Definition at line 122 of file VimsGroundMap.h.

◆ p_minZ

double Isis::VimsGroundMap::p_minZ
private

Definition at line 123 of file VimsGroundMap.h.

◆ p_swathLength

int Isis::VimsGroundMap::p_swathLength
private

SwathLength keyword value from the instrument group of the labels.

This will be image size unless occultation image

Definition at line 116 of file VimsGroundMap.h.

Referenced by Init().

◆ p_swathWidth

int Isis::VimsGroundMap::p_swathWidth
private

SwathWidth keyword value from the instrument group of the labels.

This will be image size unless occultation image

Definition at line 114 of file VimsGroundMap.h.

Referenced by Init(), and SetFocalPlane().

◆ p_ux

double Isis::VimsGroundMap::p_ux
private

Distorted focal plane x, in millimeters.

Definition at line 101 of file VimsGroundMap.h.

Referenced by LookDirection(), and SetFocalPlane().

◆ p_uy

double Isis::VimsGroundMap::p_uy
private

Distorted focal plane y, in millimeters.

Definition at line 102 of file VimsGroundMap.h.

Referenced by LookDirection(), and SetFocalPlane().

◆ p_uz

double Isis::VimsGroundMap::p_uz
private

Distorted focal plane z, in millimeters.

Definition at line 103 of file VimsGroundMap.h.

Referenced by SetFocalPlane().

◆ p_visExp

double Isis::VimsGroundMap::p_visExp
private

VIS exposure duration, divided by 1000.

Definition at line 112 of file VimsGroundMap.h.

Referenced by Init(), and SetFocalPlane().

◆ p_xBore

double Isis::VimsGroundMap::p_xBore
private

X boresight.

Definition at line 107 of file VimsGroundMap.h.

Referenced by Init(), and LookDirection().

◆ p_xPixSize

double Isis::VimsGroundMap::p_xPixSize
private

X pixel size.

Definition at line 105 of file VimsGroundMap.h.

Referenced by Init(), and LookDirection().

◆ p_xyzMap

QVector3D Isis::VimsGroundMap::p_xyzMap[64][64]
private

Definition at line 125 of file VimsGroundMap.h.

◆ p_yBore

double Isis::VimsGroundMap::p_yBore
private

Y boresight.

Definition at line 108 of file VimsGroundMap.h.

Referenced by Init(), and LookDirection().

◆ p_yPixSize

double Isis::VimsGroundMap::p_yPixSize
private

Y pixel size.

Definition at line 106 of file VimsGroundMap.h.

Referenced by Init(), and LookDirection().


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