USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::RadarSlantRangeMap Class Reference

Convert between radar ground range and slant range. More...

#include <RadarSlantRangeMap.h>

Inheritance diagram for Isis::RadarSlantRangeMap:
Inheritance graph
Collaboration diagram for Isis::RadarSlantRangeMap:
Collaboration graph

Public Member Functions

 RadarSlantRangeMap (Camera *parent, double groundRangeResolution)
 Radar ground to slant range map constructor.
 
virtual ~RadarSlantRangeMap ()
 Destructor.
 
virtual bool SetFocalPlane (const double dx, const double dy)
 Set the ground range and compute a slant range.
 
virtual bool SetUndistortedFocalPlane (const double ux, const double uy)
 Set the slant range and compute a ground range.
 
void SetCoefficients (PvlKeyword &keyword)
 Load the ground range/slant range coefficients from the RangeCoefficientSet keyword.
 
void SetWeightFactors (double range_sigma, double doppler_sigma)
 Set the weight factors for slant range and Doppler shift.
 
void SetDistortion (int naifIkCode)
 Load distortion coefficients.
 
std::vector< double > OpticalDistortionCoefficients () const
 Return optical distortion polynomial coefficients.
 
double ZDirection () const
 Return the direction of the focal plane Z-axis.
 
double FocalPlaneX () const
 Return distorted focal plane x.
 
double FocalPlaneY () const
 Return distorted focal plane y.
 
double UndistortedFocalPlaneX () const
 Return undistorted focal plane x.
 
double UndistortedFocalPlaneY () const
 Return undistorted focal plane y.
 
double UndistortedFocalPlaneZ () const
 Return undistorted focal plane z.
 

Protected Attributes

double p_focalPlaneX
 
double p_focalPlaneY
 
double p_undistortedFocalPlaneX
 
double p_undistortedFocalPlaneY
 
double p_zDirection
 
std::vector< double > p_odk
 

Private Member Functions

void ComputeA ()
 Set new A-coefficients based on the current ephemeris time.
 

Private Attributes

double p_et
 
double p_a [4]
 
std::vector< double > p_time
 
std::vector< double > p_a0
 
std::vector< double > p_a1
 
std::vector< double > p_a2
 
std::vector< double > p_a3
 
int p_maxIterations
 
double p_tolerance
 
double p_initialMinGroundRangeGuess
 
double p_initialMaxGroundRangeGuess
 
double p_rangeSigma
 
double p_dopplerSigma
 
Camerap_camera
 

Detailed Description

Convert between radar ground range and slant range.

Creates a map for converting radar ground range distance and slant range distance

See Also
Camera
Author
2008-06-16 Jeff Anderson
History:

2009-07-01 Janet Barrett - Changed the bracketing method used to solve for the root of the function that determines ground range given slant range; fixed code that determines the range coefficients to used based on current ephemeris time

2010-03-19 Debbie A. Cook - Added comments about the units and corrected slant in SetUndistortedFocalPlane to be in meters instead of km

2011-09-14 Randy Kirk - Fixed the ComputeA method so that it is handling the range coefficients properly. A linear fit is used to obtain the range coefficients if the current time falls between 2 points with known range coefficients.

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

Definition at line 60 of file RadarSlantRangeMap.h.

Constructor & Destructor Documentation

Isis::RadarSlantRangeMap::RadarSlantRangeMap ( Camera parent,
double  groundRangeResolution 
)

Radar ground to slant range map constructor.

Create a map from ground range distance to slant range distance on a radar instrument

Parameters
parentthe parent camera that will use this distortion map

Definition at line 38 of file RadarSlantRangeMap.cpp.

References Isis::Camera::Samples().

virtual Isis::RadarSlantRangeMap::~RadarSlantRangeMap ( )
inlinevirtual

Destructor.

Definition at line 65 of file RadarSlantRangeMap.h.

Member Function Documentation

void Isis::RadarSlantRangeMap::ComputeA ( )
private

Set new A-coefficients based on the current ephemeris time.

The A-coefficients used will be those with the closest ephemeris time to the current ephemeris time.

Definition at line 221 of file RadarSlantRangeMap.cpp.

References Isis::iTime::Et(), and Isis::Spice::time().

Referenced by SetFocalPlane(), and SetUndistortedFocalPlane().

double Isis::CameraDistortionMap::FocalPlaneX ( ) const
inlineinherited
double Isis::CameraDistortionMap::FocalPlaneY ( ) const
inlineinherited
std::vector< double > Isis::CameraDistortionMap::OpticalDistortionCoefficients ( ) const
inherited

Return optical distortion polynomial coefficients.

Definition at line 195 of file CameraDistortionMap.cpp.

void Isis::RadarSlantRangeMap::SetCoefficients ( PvlKeyword keyword)

Load the ground range/slant range coefficients from the RangeCoefficientSet keyword.

Definition at line 199 of file RadarSlantRangeMap.cpp.

References Isis::PvlSequence::Size(), and Isis::toDouble().

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

void Isis::CameraDistortionMap::SetDistortion ( int  naifIkCode)
inherited

Load distortion coefficients.

This method loads the distortion coefficients from the instrument kernel. The coefficients in the NAIF instrument kernel are expected to be in the form of:

INSxxxxx_OD_K = ( coef1, coef2, ..., coefN)
where xxxxx is the instrument code (always a negative number)

These coefficient will be used to convert from focal plane x,y to undistorted x,y as follows (add equation here)

Parameters
naifIkCodeCode to search for in instrument kernel
Todo:

Generalize to read variable number of coefficients

Add latex equation to the documentation

Definition at line 65 of file CameraDistortionMap.cpp.

References Isis::toString().

Referenced by Isis::AmicaCamera::AmicaCamera(), Isis::CTXCamera::CTXCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::LroWideAngleCameraDistortionMap::LroWideAngleCameraDistortionMap(), Isis::LoHighDistortionMap::SetDistortion(), and Isis::LoMediumDistortionMap::SetDistortion().

bool Isis::RadarSlantRangeMap::SetFocalPlane ( const double  dx,
const double  dy 
)
virtual

Set the ground range and compute a slant range.

Reimplemented from Isis::CameraDistortionMap.

Definition at line 64 of file RadarSlantRangeMap.cpp.

References ComputeA(), Isis::iTime::Et(), Isis::Camera::SetFocalLength(), and Isis::Spice::time().

bool Isis::RadarSlantRangeMap::SetUndistortedFocalPlane ( const double  ux,
const double  uy 
)
virtual

Set the slant range and compute a ground range.

Reimplemented from Isis::CameraDistortionMap.

Definition at line 81 of file RadarSlantRangeMap.cpp.

References ComputeA(), Isis::iTime::Et(), and Isis::Spice::time().

void Isis::RadarSlantRangeMap::SetWeightFactors ( double  range_sigma,
double  doppler_sigma 
)

Set the weight factors for slant range and Doppler shift.

Definition at line 252 of file RadarSlantRangeMap.cpp.

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

double Isis::CameraDistortionMap::UndistortedFocalPlaneX ( ) const
inlineinherited
double Isis::CameraDistortionMap::UndistortedFocalPlaneY ( ) const
inlineinherited
double Isis::CameraDistortionMap::UndistortedFocalPlaneZ ( ) const
inlineinherited

Return undistorted focal plane z.

Definition at line 92 of file CameraDistortionMap.h.

References Isis::Camera::FocalLength().

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

double Isis::CameraDistortionMap::ZDirection ( ) const
inherited

Return the direction of the focal plane Z-axis.

Definition at line 201 of file CameraDistortionMap.cpp.


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