USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::Cassini::VimsGroundMap Class Reference

#include <VimsGroundMap.h>

Inheritance diagram for Isis::Cassini::VimsGroundMap:

Inheritance graph
[legend]
Collaboration diagram for Isis::Cassini::VimsGroundMap:

Collaboration graph
[legend]
List of all members.

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

For internal use only.

History:
2006-03-16 Tracie Sucharski Original version
History:
2008-02-05 Tracie Sucharski, Replaced unitVector files with Rick McCloskey's code to calculate look direction.
History:
2008-06-18 Steven Lambright Fixed documentation
History:
2009-04-06 Steven Lambright Fixed problem that caused double deletion of sky map / ground map.
History:
2009-08-06 Tracie Sucharski, Bug in unit vector change made on 2008-02-05, had the incorrect boresight for VIS Hires.

Definition at line 55 of file VimsGroundMap.h.

Public Member Functions

 VimsGroundMap (Camera *parent, Pvl &lab)
virtual ~VimsGroundMap ()
 Destructor.
virtual bool SetFocalPlane (const double ux, const double uy, const double uz)
 Compute ground position from focal plane coordinate.
virtual bool SetGround (const double lat, const double lon)
 Compute undistorted focal plane coordinate from ground position.
void Init (Pvl &lab)
 Initialize vims camera model.
virtual bool SetGround (const double lat, const double lon, const double radius)
 Compute undistorted focal plane coordinate from ground position that includes a local radius.
double FocalPlaneX () const
 Return undistorted focal plane x.
double FocalPlaneY () const
 Return undistorted focal plane y.

Protected Attributes

Camerap_camera
double p_focalPlaneX
double p_focalPlaneY

Private Member Functions

void LookDirection (double v[3])
 Returns the look direction in the camera coordinate system.

Private Attributes

SpiceDouble p_etStart
double p_exposureDuration
double p_interlineDelay
double p_ux
double p_uy
double p_uz
double p_xPixSize
double p_yPixSize
double p_xBore
double p_yBore
std::string p_channel
double p_visExp
double p_irExp
int p_nsUv
int p_nlUv
int p_swathWidth
int p_swathLength
int p_camSampOffset
int p_camLineOffset
double p_minLat
double p_maxLat
double p_minLon
double p_maxLon
double p_latMap [64][64]
double p_lonMap [64][64]


Constructor & Destructor Documentation

virtual Isis::Cassini::VimsGroundMap::~VimsGroundMap (  )  [inline, virtual]

Destructor.

Definition at line 60 of file VimsGroundMap.h.


Member Function Documentation

double Isis::CameraGroundMap::FocalPlaneX (  )  const [inline, inherited]

Return undistorted focal plane x.

Definition at line 68 of file CameraGroundMap.h.

References Isis::CameraGroundMap::p_focalPlaneX.

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

double Isis::CameraGroundMap::FocalPlaneY (  )  const [inline, inherited]

Return undistorted focal plane y.

Definition at line 71 of file CameraGroundMap.h.

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

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

Initialize vims camera model.

Parameters:
[in] lab (Pvl &) Cube Pvl label
History:
2007-04-16 Tracie Sucharski - Look for unit vectors in the proper directory.
History:
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.
History:
2007-04-19 Tracie Sucharski, Swap bytes on unit vectors. They are currently LSB binary files. ???Todo:??? Convert unit vectors to text files.
History:
2008-02-05 Tracie Sucharski, Replaced unitVector files with Rick McCloskey's code to calculate look direction.
History:
2009-08-06 Tracie Sucharski, Bug in unit vector change made on 2008-02-05, had the incorrect boresight for VIS Hires.

Definition at line 68 of file VimsGroundMap.cpp.

References _FILEINFO_, Isis::PvlObject::FindGroup(), Isis::Camera::IgnoreProjection(), latitude, line, longitude, Isis::iException::Message(), Isis::NULL8, Isis::CameraGroundMap::p_camera, p_camLineOffset, p_camSampOffset, p_channel, p_etStart, p_interlineDelay, p_irExp, p_latMap, p_lonMap, p_maxLat, p_maxLon, p_minLat, p_minLon, p_swathLength, p_swathWidth, p_visExp, p_xBore, p_xPixSize, p_yBore, p_yPixSize, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::Sensor::SetEphemerisTime(), Isis::Camera::SetImage(), Isis::iString::ToDouble(), Isis::iString::Token(), Isis::PvlObject::Traverse, Isis::Sensor::UniversalLatitude(), and Isis::Sensor::UniversalLongitude().

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

Returns the look direction in the camera coordinate system.

Parameters:
[out] v Look 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 445 of file VimsGroundMap.cpp.

References Isis::HALFPI(), p_camLineOffset, p_camSampOffset, p_ux, p_uy, p_xBore, p_xPixSize, p_yBore, p_yPixSize, x, and y.

Referenced by SetFocalPlane().

bool Isis::Cassini::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:
ux distorted focal plane x in millimeters
uy distorted focal plane y in millimeters
uz distorted focal plane z in millimeters
Returns:
conversion was successful
History:
2008-01-02 Tracie Sucharski - Check incoming pixel for validity against edge of pixel not center.
History:
2008-02-05 Tracie Sucharski, Replaced unitVector files with Rick McCloskey's code to calculate look direction
History:
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 224 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::SetEphemerisTime(), and Isis::Sensor::SetLookDirection().

bool Isis::CameraGroundMap::SetGround ( const double  lat,
const double  lon,
const double  radius 
) [virtual, inherited]

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

Parameters:
lat planetocentric latitude in degrees
lon planetocentric longitude in degrees
radius local radius in meters
Returns:
conversion was successful

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

Definition at line 93 of file CameraGroundMap.cpp.

References Isis::CameraGroundMap::LookCtoFocalPlaneXY(), and Isis::CameraGroundMap::p_camera.

bool Isis::Cassini::VimsGroundMap::SetGround ( const double  lat,
const double  lon 
) [virtual]

Compute undistorted focal plane coordinate from ground position.

Parameters:
lat planetocentric latitude in degrees
lon planetocentric longitude in degrees
Returns:
conversion was successful
History:
2007-04-18 Tracie Sucharski - Added check for reasonable match when attempting to find closest lat/lon in map arrays.
History:
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???
History:
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.
History:
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.

Reimplemented from Isis::CameraGroundMap.

Definition at line 289 of file VimsGroundMap.cpp.

References Isis::LeastSquares::AddKnown(), dist, Isis::LeastSquares::Evaluate(), Isis::Sensor::HasSurfaceIntersection(), Isis::Camera::IgnoreProjection(), Isis::LeastSquares::Knowns(), line, Isis::Camera::LineResolution(), minLine, Isis::NULL8, Isis::CameraGroundMap::p_camera, Isis::CameraGroundMap::p_focalPlaneX, Isis::CameraGroundMap::p_focalPlaneY, p_latMap, p_lonMap, p_maxLat, p_maxLon, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::Spice::Radii(), Isis::Camera::SampleResolution(), Isis::Camera::SetImage(), and Isis::LeastSquares::Solve().


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