USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::CameraFocalPlaneMap Class Reference

Convert between distorted focal plane and detector coordinates. More...

#include <CameraFocalPlaneMap.h>

Inherited by Isis::LroWideAngleCameraFocalPlaneMap, and Isis::RadarGroundRangeMap.

Public Types

enum  FocalPlaneXDependencyType { Sample = 1, Line = 2 }
 Focal plane x dependency indicates whether the x value of the focal plane coordinate maps to a sample or a line. More...
 

Public Member Functions

 CameraFocalPlaneMap (Camera *parent, const int naifIkCode)
 Construct mapping between detectors and focal plane x/y.
 
 CameraFocalPlaneMap (const int naifIkCode)
 Construct mapping between detectors and focal plane x/y.
 
 CameraFocalPlaneMap (Camera *parent, Affine &affine)
 Added new method to allow programmer to pass in affine coefficients.
 
virtual ~CameraFocalPlaneMap ()
 Destructor.
 
virtual bool SetDetector (const double sample, const double line)
 Compute distorted focal plane coordinate from detector position (sampel,line)
 
virtual bool SetFocalPlane (const double dx, const double dy)
 Compute detector position (sample,line) from focal plane coordinates.
 
double FocalPlaneX () const
 Return distorted focal plane x.
 
double FocalPlaneY () const
 Return distorted focal plane y.
 
double DetectorSample () const
 Return detector sample.
 
double DetectorLine () const
 Return detector line.
 
double CenteredDetectorSample () const
 Return centered detector sample.
 
double CenteredDetectorLine () const
 Return centered detector line.
 
void SetDetectorOrigin (const double sample, const double line)
 Set the detector origin.
 
double DetectorLineOrigin () const
 Return detector line origin.
 
double DetectorSampleOrigin () const
 Return detector sample origin.
 
void SetDetectorOffset (const double sampleOffset, const double lineOffset)
 Set the detector offset.
 
double DetectorLineOffset () const
 Return detector line offset.
 
double DetectorSampleOffset () const
 Return detector sample offset.
 
void SetTransL (const QVector< double > transL)
 Set the affine coefficients for converting destorted (x,y) to a detector Line.
 
void SetTransS (const QVector< double > transS)
 Set the affine coefficients for converting destorted (x,y) to a detector Sample.
 
void SetTransX (const QVector< double > transX)
 Set the affine coefficients for converting detector (sample,line) to a distorted X.
 
void SetTransY (const QVector< double > transY)
 Set the affine coefficients for converting detector (sample,line) to a distorted Y.
 
const double * TransL () const
 Return the affine coefficients for converting distorted (x,y) to a detector Line.
 
const double * TransS () const
 Return the affine coefficients for converting distorted (x,y) to a detector Sample.
 
const double * TransX () const
 Return the affine coefficients for converting detector (sample,line) to a distorted X.
 
const double * TransY () const
 Return the affine coefficients for converting detector (sample,line) to distorted Y.
 
int FocalPlaneXDependency ()
 Return the focal plane x dependency variable.
 
double SignMostSigX ()
 Return the sign of the p_transx coefficient with the greatest magnitude.
 
double SignMostSigY ()
 Return the sign of the p_transy coefficient with the greatest magnitude.
 

Protected Member Functions

void ComputeCentered ()
 Convenience method to center detector origin (use when inheriting)
 
void ComputeUncentered ()
 Convenience method to center detector origin (use when inheriting)
 

Protected Attributes

Camerap_camera
 
double p_detectorLineOrigin
 
double p_detectorSampleOrigin
 
double p_focalPlaneX
 x value of focal plane coordinate
 
double p_focalPlaneY
 y value of focal plane coordinate
 
double p_detectorLine
 line value of the detector
 
double p_detectorSample
 sample value of the detector
 
double p_centeredDetectorSample
 
double p_centeredDetectorLine
 
double p_detectorLineOffset
 
double p_detectorSampleOffset
 
double p_transx [3]
 
double p_transy [3]
 
double p_itranss [3]
 
double p_itransl [3]
 

Detailed Description

Convert between distorted focal plane and detector coordinates.

This base class is used to convert between distorted focal plane coordinates (x/y) in millimeters and detector coordinates in pixels. The class expects to find a set of coefficients in the naif instrument (or instrument addendum) kernel that describe the transform from detector to focal plane and vice versa. The transform from detector to focal plane is:

x = transx[0] + sample * transx[1] + line * transx[2];
y = transy[0] + sample * transy[1] + line * transy[2];
where, transx and transy are the coefficients from the naif kernel.
The should be in the form of:
INSxxxxxx_TRANSX = ( a, b, c)
INSxxxxxx_TRANSY = ( d, e, f)
where, xxxxxx is the NAIF instrument id code.

Likewise, the inverse transform is:

samp = itranss[0] + x * itranss[1] + y * itranss[2];
line = itransl[0] + x * itransl[1] + y * itransl[2];
where, itranss and itranss are the coefficients from the naif kernel.
The should be in the form of:
INSxxxxxx_ITRANSS = ( a, b, c)
INSxxxxxx_ITRANSL = ( d, e, f)
where, xxxxxx is the NAIF instrument id code.
Author
2005-02-05 Jeff Anderson
See Also
Camera

Member Enumeration Documentation

Focal plane x dependency indicates whether the x value of the focal plane coordinate maps to a sample or a line.

Enumerator
Sample 

The x value of the focal plane maps to a sample.

Line 

The x value of the focal plane maps to a line.

Constructor & Destructor Documentation

Isis::CameraFocalPlaneMap::CameraFocalPlaneMap ( Camera parent,
const int  naifIkCode 
)

Construct mapping between detectors and focal plane x/y.

Parameters
parentparent camera that will use this map
naifIkCodecode of the naif instrument for reading coefficients
Isis::CameraFocalPlaneMap::CameraFocalPlaneMap ( const int  naifIkCode)

Construct mapping between detectors and focal plane x/y.

Parameters
naifIkCodecode of the naif instrument for reading coefficients
Isis::CameraFocalPlaneMap::CameraFocalPlaneMap ( Camera parent,
Affine affine 
)

Added new method to allow programmer to pass in affine coefficients.

Author
janderson (3/25/2014)
Parameters
parentParent camera
affineAffine transform containing the coefficients for both transforms to (samp,line) to (x,y) and reverse

References Isis::Affine::Coefficients(), Isis::Affine::InverseCoefficients(), p_camera, p_detectorLineOffset, p_detectorLineOrigin, p_detectorSampleOffset, p_detectorSampleOrigin, p_itransl, p_itranss, p_transx, p_transy, and Isis::Camera::SetFocalPlaneMap().

Isis::CameraFocalPlaneMap::~CameraFocalPlaneMap ( )
virtual

Destructor.

Member Function Documentation

double Isis::CameraFocalPlaneMap::CenteredDetectorLine ( ) const

Return centered detector line.

References p_centeredDetectorLine.

double Isis::CameraFocalPlaneMap::CenteredDetectorSample ( ) const

Return centered detector sample.

References p_centeredDetectorSample.

void Isis::CameraFocalPlaneMap::ComputeCentered ( )
protected

Convenience method to center detector origin (use when inheriting)

References p_centeredDetectorLine, p_centeredDetectorSample, p_detectorLine, p_detectorLineOrigin, p_detectorSample, and p_detectorSampleOrigin.

Referenced by SetDetector().

void Isis::CameraFocalPlaneMap::ComputeUncentered ( )
protected

Convenience method to center detector origin (use when inheriting)

References p_centeredDetectorLine, p_centeredDetectorSample, p_detectorLine, p_detectorLineOrigin, p_detectorSample, and p_detectorSampleOrigin.

Referenced by SetFocalPlane().

double Isis::CameraFocalPlaneMap::DetectorLineOffset ( ) const
double Isis::CameraFocalPlaneMap::DetectorLineOrigin ( ) const
double Isis::CameraFocalPlaneMap::DetectorSampleOffset ( ) const

Return detector sample offset.

References p_detectorSampleOffset.

double Isis::CameraFocalPlaneMap::DetectorSampleOrigin ( ) const
double Isis::CameraFocalPlaneMap::FocalPlaneX ( ) const
int Isis::CameraFocalPlaneMap::FocalPlaneXDependency ( )

Return the focal plane x dependency variable.

This method returns the image variable (sample or line) on which the focal plane x depends.

Returns
dependency variable

References Line, p_transx, and Sample.

double Isis::CameraFocalPlaneMap::FocalPlaneY ( ) const
bool Isis::CameraFocalPlaneMap::SetDetector ( const double  sample,
const double  line 
)
virtual

Compute distorted focal plane coordinate from detector position (sampel,line)

This method will compute both the distorted focal plane x/y and centered detector position given a detector position

Parameters
sampleundistorted focal plane x in millimeters
lineundistorted focal plane y in millimeters
Returns
conversion was successful

References ComputeCentered(), p_centeredDetectorLine, p_centeredDetectorSample, p_detectorLine, p_detectorSample, p_focalPlaneX, p_focalPlaneY, p_transx, and p_transy.

Referenced by Isis::LoMediumDistortionMap::SetFocalPlane(), Isis::Camera::SetImage(), and Isis::LoMediumDistortionMap::SetUndistortedFocalPlane().

void Isis::CameraFocalPlaneMap::SetDetectorOffset ( const double  sampleOffset,
const double  lineOffset 
)

Set the detector offset.

This is used to set the offset between the detector origin and the average location in detector pixels where the image is being viewed. If not set the offset are both 0.0

Parameters
sampleOffsetsample offset in pixels
lineOffsetsample offset in lines

References p_detectorLineOffset, and p_detectorSampleOffset.

Referenced by Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::ThemisIrCamera::SetBand(), and Isis::ThemisIrCamera::ThemisIrCamera().

void Isis::CameraFocalPlaneMap::SetDetectorOrigin ( const double  sample,
const double  line 
)

Set the detector origin.

This is used to set the origin of the detector. Typically the middle of the detector. For example, a 512x512 dectector would have the origin at (256.5,256.5). If not set both are 0.

Parameters
sampledetector sample at the origin
linedetector line at the origin

References p_detectorLineOrigin, and p_detectorSampleOrigin.

Referenced by Isis::AmicaCamera::AmicaCamera(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HiresCamera::HiresCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::IdealCamera::IdealCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::MarciCamera::MarciCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::NirCamera::NirCamera(), Isis::ThemisIrCamera::SetBand(), Isis::LroWideAngleCamera::SetBand(), Isis::SsiCamera::SsiCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VoyagerCamera::VoyagerCamera().

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

Compute detector position (sample,line) from focal plane coordinates.

NOTE: This is detector (sample, line) not necessarily image (sample, line). If the image was reformatted from what was collected the two differ. See the New Horizons LEISA camera for an example (LEISA is a frame camera being treated as a line scan camera).

This method will compute both the centered and normal detector position given a distorted focal plane coordinate.

Parameters
dxdistorted focal plane x in millimeters
dydistorted focal plane y in millimeters
Returns
conversion was successful

References ComputeUncentered(), p_centeredDetectorLine, p_centeredDetectorSample, p_focalPlaneX, p_focalPlaneY, p_itransl, and p_itranss.

Referenced by Isis::ControlPoint::ComputeResiduals(), Isis::LoMediumDistortionMap::SetDistortion(), Isis::LoMediumDistortionMap::SetFocalPlane(), Isis::Camera::SetRightAscensionDeclination(), Isis::LineScanCameraSkyMap::SetSky(), and Isis::LoMediumDistortionMap::SetUndistortedFocalPlane().

void Isis::CameraFocalPlaneMap::SetTransL ( const QVector< double >  transL)

Set the affine coefficients for converting destorted (x,y) to a detector Line.

References p_itransl.

Referenced by Isis::NewHorizonsLeisaCamera::SetBand().

void Isis::CameraFocalPlaneMap::SetTransS ( const QVector< double >  transS)

Set the affine coefficients for converting destorted (x,y) to a detector Sample.

References p_itranss.

Referenced by Isis::NewHorizonsLeisaCamera::SetBand().

void Isis::CameraFocalPlaneMap::SetTransX ( const QVector< double >  transX)

Set the affine coefficients for converting detector (sample,line) to a distorted X.

References p_transx.

Referenced by Isis::NewHorizonsLeisaCamera::SetBand().

void Isis::CameraFocalPlaneMap::SetTransY ( const QVector< double >  transY)

Set the affine coefficients for converting detector (sample,line) to a distorted Y.

References p_transy.

Referenced by Isis::NewHorizonsLeisaCamera::SetBand().

double Isis::CameraFocalPlaneMap::SignMostSigX ( )

Return the sign of the p_transx coefficient with the greatest magnitude.

This method returns a +1. or -1. based on the sign of the p_transx coefficient with the greatest magnitude. Only p_transx[1] and p_transx[2] are compared since p_transx[0] is used as a constant in the affine transformation.

Returns
sign of most significant coefficient

References p_transx.

double Isis::CameraFocalPlaneMap::SignMostSigY ( )

Return the sign of the p_transy coefficient with the greatest magnitude.

This method returns a +1 or -1 based on the sign of the p_transy coefficient with the greatest magnitude. Only p_transy[1] and p_transy[2] are compared since p_transy[0] is used as a constant in the affine transformation.

Returns
sign of most significant coefficient

References p_transy.

const double * Isis::CameraFocalPlaneMap::TransL ( ) const

Return the affine coefficients for converting distorted (x,y) to a detector Line.

References p_itransl.

Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().

const double * Isis::CameraFocalPlaneMap::TransS ( ) const

Return the affine coefficients for converting distorted (x,y) to a detector Sample.

References p_itranss.

Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().

const double * Isis::CameraFocalPlaneMap::TransX ( ) const

Return the affine coefficients for converting detector (sample,line) to a distorted X.

References p_transx.

Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().

const double * Isis::CameraFocalPlaneMap::TransY ( ) const

Return the affine coefficients for converting detector (sample,line) to distorted Y.

References p_transy.

Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().

Member Data Documentation

Camera* Isis::CameraFocalPlaneMap::p_camera
protected
double Isis::CameraFocalPlaneMap::p_centeredDetectorLine
protected
double Isis::CameraFocalPlaneMap::p_centeredDetectorSample
protected
double Isis::CameraFocalPlaneMap::p_detectorLine
protected

line value of the detector

Referenced by ComputeCentered(), ComputeUncentered(), DetectorLine(), and SetDetector().

double Isis::CameraFocalPlaneMap::p_detectorLineOffset
protected
double Isis::CameraFocalPlaneMap::p_detectorLineOrigin
protected
double Isis::CameraFocalPlaneMap::p_detectorSample
protected

sample value of the detector

Referenced by ComputeCentered(), ComputeUncentered(), DetectorSample(), and SetDetector().

double Isis::CameraFocalPlaneMap::p_detectorSampleOffset
protected
double Isis::CameraFocalPlaneMap::p_detectorSampleOrigin
protected
double Isis::CameraFocalPlaneMap::p_focalPlaneX
protected

x value of focal plane coordinate

Referenced by FocalPlaneX(), SetDetector(), and SetFocalPlane().

double Isis::CameraFocalPlaneMap::p_focalPlaneY
protected

y value of focal plane coordinate

Referenced by FocalPlaneY(), SetDetector(), and SetFocalPlane().

double Isis::CameraFocalPlaneMap::p_itransl[3]
protected
double Isis::CameraFocalPlaneMap::p_itranss[3]
protected
double Isis::CameraFocalPlaneMap::p_transy[3]
protected

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