Isis Developer Reference
Isis::RadarGroundMap Class Reference

Convert between undistorted focal plane coordinate (slant range) and ground coordinates. More...

#include <RadarGroundMap.h>

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

 RadarGroundMap (Camera *parent, Radar::LookDirection ldir, double waveLength)
 
virtual ~RadarGroundMap ()
 Destructor.
 
virtual bool SetFocalPlane (const double ux, const double uy, const double uz)
 Compute ground position from slant range.
 
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, bool test=false)
 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 GetdXYdPoint (std::vector< double > d_lookB, double *dx, double *dy)
 Compute derivative of focal plane coordinate w/r to ground point from ground position using current Spice from SetImage call.
 
void SetRangeSigma (double rangeSigma)
 Set the range sigma.
 
double RangeSigma ()
 Return the range sigma.
 
void SetDopplerSigma (double dopplerSigma)
 Set the doppler sigma.
 
double YScale ()
 Return the doppler sigma.
 
double WaveLength ()
 Return the wavelength.
 
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 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.
 
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 Member Functions

void LookCtoFocalPlaneXY ()
 Calculate focalplane x/y from lookvector in camera.
 

Protected Attributes

double p_focalPlaneX
 Camera's x focal plane coordinate.
 
double p_focalPlaneY
 Camera's y focal plane coordinate.
 
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 coordinate (slant range) and ground coordinates.

This class is used to convert between undistorted focal plane coordinate (the slant range) and ground coordinates lat/lon. This class handles the case of Radar instruments.

See also
Camera
Author
2008-06-16 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

◆ RadarGroundMap()

Isis::RadarGroundMap::RadarGroundMap ( Camera * parent,
Radar::LookDirection ldir,
double waveLength )

References Isis::Camera::Lines().

◆ ~RadarGroundMap()

virtual Isis::RadarGroundMap::~RadarGroundMap ( )
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::m_lookJ, Isis::CameraGroundMap::p_camera, and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

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

◆ GetdXYdPoint()

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

Parameters
varTypeenumerated partial type (definitions in SpicePosition)
coefIndexcoefficient index of fit polynomial
*dxpointer to partial derivative of undistorted focal plane x
*dypointer to partial derivative of undistorted focal plane y
Returns
conversion was successful

Reimplemented from Isis::CameraGroundMap.

◆ GetdXYdPosition()

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

Parameters
varTypeenumerated partial type (definitions in SpicePosition)
coefIndexcoefficient index of fit polynomial
*dxpointer to partial derivative of undistorted focal plane x
*dypointer to partial derivative of undistorted focal plane y
Returns
conversion was successful

Reimplemented from Isis::CameraGroundMap.

References Isis::Spice::bodyRotation(), and Isis::Spice::instrumentPosition().

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

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

◆ GetXY() [2/2]

bool Isis::RadarGroundMap::GetXY ( const SurfacePoint & spoint,
double * cudx,
double * cudy,
bool test = false )
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/x/y and related radar parameter p_slantRange.

History
2019-05-15 Debbie A. Cook - Added optional bool argument to match parent GetXY method to allow the bundle adjustment to skip the back of planet test during iterations. References #2591.
Parameters
spoint
Returns
conversion was successful

Reimplemented from Isis::CameraGroundMap.

References _FILEINFO_, Isis::Spice::bodyRotation(), Isis::Spice::instrumentPosition(), and Isis::IException::Programmer.

◆ LookCtoFocalPlaneXY()

void Isis::CameraGroundMap::LookCtoFocalPlaneXY ( )
protectedinherited

Calculate focalplane x/y from lookvector in camera.

Compute undistorted focal plane coordinate from camera look vector.

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

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

◆ RangeSigma()

double Isis::RadarGroundMap::RangeSigma ( )
inline

Return the range sigma.

◆ SetDopplerSigma()

void Isis::RadarGroundMap::SetDopplerSigma ( double dopplerSigma)
inline

Set the doppler sigma.

Referenced by Isis::MiniRF::MiniRF().

◆ SetFocalPlane()

bool Isis::RadarGroundMap::SetFocalPlane ( const double ux,
const double uy,
const double uz )
virtual

Compute ground position from slant range.

Parameters
uxSlant range distance in meters scaled to focal plane
uyDoppler shift (always 0.0)
uzNot used
Returns
conversion was successful

Reimplemented from Isis::CameraGroundMap.

References Isis::Spice::bodyRotation(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::Distance::kilometers(), Isis::PI, and Isis::Spice::radii().

◆ SetGround() [1/2]

bool Isis::RadarGroundMap::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
conversion was successful

Reimplemented from Isis::CameraGroundMap.

References Isis::Distance::isValid(), Isis::Sensor::LocalRadius(), and SetGround().

Referenced by SetGround().

◆ SetGround() [2/2]

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

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

Parameters
latplanetocentric latitude in degrees
lonplanetocentric longitude in degrees
radiuslocal radius in meters
Returns
conversion was successful

Reimplemented from Isis::CameraGroundMap.

References Isis::Spice::bodyRotation(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::Radar::Left, Isis::CameraGroundMap::p_focalPlaneX, Isis::CameraGroundMap::p_focalPlaneY, Isis::Radar::Right, Isis::Camera::SetFocalLength(), Isis::Spice::target(), Isis::SurfacePoint::ToNaifArray(), and Isis::SurfacePoint::Valid().

◆ SetRangeSigma()

void Isis::RadarGroundMap::SetRangeSigma ( double rangeSigma)
inline

Set the range sigma.

Referenced by Isis::MiniRF::MiniRF().

◆ WaveLength()

double Isis::RadarGroundMap::WaveLength ( )
inline

Return the wavelength.

◆ YScale()

double Isis::RadarGroundMap::YScale ( )
inline

Return the doppler sigma.

Member Data Documentation

◆ m_lookJ

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

◆ m_pB

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

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

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

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