Isis Developer Reference
|
Convert between distorted focal plane and detector coordinates. More...
#include <CameraFocalPlaneMap.h>
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. More... | |
CameraFocalPlaneMap (const int naifIkCode) | |
Construct mapping between detectors and focal plane x/y. More... | |
CameraFocalPlaneMap (Camera *parent, Affine &affine) | |
Added new method to allow programmer to pass in affine coefficients. More... | |
virtual | ~CameraFocalPlaneMap () |
Destructor. More... | |
virtual bool | SetDetector (const double sample, const double line) |
Compute distorted focal plane coordinate from detector position (sampel,line) More... | |
virtual bool | SetFocalPlane (const double dx, const double dy) |
Compute detector position (sample,line) from focal plane coordinates. More... | |
double | FocalPlaneX () const |
double | FocalPlaneY () const |
double | DetectorSample () const |
double | DetectorLine () const |
double | CenteredDetectorSample () const |
double | CenteredDetectorLine () const |
void | SetDetectorOrigin (const double sample, const double line) |
Set the detector origin. More... | |
double | DetectorLineOrigin () const |
double | DetectorSampleOrigin () const |
void | SetDetectorOffset (const double sampleOffset, const double lineOffset) |
Set the detector offset. More... | |
double | DetectorLineOffset () const |
double | DetectorSampleOffset () const |
void | SetTransL (const QVector< double > transL) |
Set the affine coefficients for converting destorted (x,y) to a detector Line. More... | |
void | SetTransS (const QVector< double > transS) |
Set the affine coefficients for converting destorted (x,y) to a detector Sample. More... | |
void | SetTransX (const QVector< double > transX) |
Set the affine coefficients for converting detector (sample,line) to a distorted X. More... | |
void | SetTransY (const QVector< double > transY) |
Set the affine coefficients for converting detector (sample,line) to a distorted Y. More... | |
const double * | TransL () const |
const double * | TransS () const |
const double * | TransX () const |
const double * | TransY () const |
int | FocalPlaneXDependency () |
Return the focal plane x dependency variable. More... | |
double | SignMostSigX () |
Return the sign of the p_transx coefficient with the greatest magnitude. More... | |
double | SignMostSigY () |
Return the sign of the p_transy coefficient with the greatest magnitude. More... | |
Protected Member Functions | |
void | ComputeCentered () |
Convenience method to center detector origin (use when inheriting) More... | |
void | ComputeUncentered () |
Convenience method to center detector origin (use when inheriting) More... | |
Protected Attributes | |
Camera * | p_camera |
Camera of the image. More... | |
double | p_detectorLineOrigin |
The origin line of the detector. More... | |
double | p_detectorSampleOrigin |
The origin sample of the detector. More... | |
double | p_focalPlaneX |
x value of focal plane coordinate More... | |
double | p_focalPlaneY |
y value of focal plane coordinate More... | |
double | p_detectorLine |
line value of the detector More... | |
double | p_detectorSample |
sample value of the detector More... | |
double | p_centeredDetectorSample |
Detector sample position. More... | |
double | p_centeredDetectorLine |
Detector line position. More... | |
double | p_detectorLineOffset |
Offset of the detector origin line from the average. More... | |
double | p_detectorSampleOffset |
offset of the detector origin sample from the average More... | |
double | p_transx [3] |
The x transition from detector to distorted. More... | |
double | p_transy [3] |
The y transition from detector to distorted. More... | |
double | p_itranss [3] |
The x transition from distorted to detector. More... | |
double | p_itransl [3] |
The y transition from distorted to detector. More... | |
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:
Likewise, the inverse transform is:
Isis::CameraFocalPlaneMap::CameraFocalPlaneMap | ( | Camera * | parent, |
const int | naifIkCode | ||
) |
Construct mapping between detectors and focal plane x/y.
parent | parent camera that will use this map |
naifIkCode | code of the naif instrument for reading coefficients |
Isis::CameraFocalPlaneMap::CameraFocalPlaneMap | ( | const int | naifIkCode | ) |
Construct mapping between detectors and focal plane x/y.
naifIkCode | code of the naif instrument for reading coefficients |
Added new method to allow programmer to pass in affine coefficients.
parent | Parent camera |
affine | Affine 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().
|
virtual |
Destructor.
double Isis::CameraFocalPlaneMap::CenteredDetectorLine | ( | ) | const |
References p_centeredDetectorLine.
double Isis::CameraFocalPlaneMap::CenteredDetectorSample | ( | ) | const |
References p_centeredDetectorSample.
|
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().
|
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::DetectorLine | ( | ) | const |
References p_detectorLine.
Referenced by Isis::ControlPoint::ComputeResiduals(), Isis::LoMediumDistortionMap::SetDistortion(), Isis::LoMediumDistortionMap::SetFocalPlane(), Isis::Camera::SetRightAscensionDeclination(), Isis::LineScanCameraSkyMap::SetSky(), and Isis::LoMediumDistortionMap::SetUndistortedFocalPlane().
double Isis::CameraFocalPlaneMap::DetectorLineOffset | ( | ) | const |
References p_detectorLineOffset.
Referenced by Isis::LineScanCameraDetectorMap::SetParent(), Isis::VariableLineScanCameraDetectorMap::SetParent(), and Isis::LineScanCameraSkyMap::SetSky().
double Isis::CameraFocalPlaneMap::DetectorLineOrigin | ( | ) | const |
References p_detectorLineOrigin.
Referenced by Isis::OsirisRexDistortionMap::OsirisRexDistortionMap(), Isis::ReseauDistortionMap::SetFocalPlane(), and Isis::ReseauDistortionMap::SetUndistortedFocalPlane().
double Isis::CameraFocalPlaneMap::DetectorSample | ( | ) | const |
References p_detectorSample.
Referenced by Isis::ControlPoint::ComputeResiduals(), Isis::LoMediumDistortionMap::SetDistortion(), Isis::LoMediumDistortionMap::SetFocalPlane(), Isis::Camera::SetRightAscensionDeclination(), and Isis::LoMediumDistortionMap::SetUndistortedFocalPlane().
double Isis::CameraFocalPlaneMap::DetectorSampleOffset | ( | ) | const |
References p_detectorSampleOffset.
double Isis::CameraFocalPlaneMap::DetectorSampleOrigin | ( | ) | const |
References p_detectorSampleOrigin.
Referenced by Isis::OsirisRexDistortionMap::OsirisRexDistortionMap(), Isis::ReseauDistortionMap::SetFocalPlane(), and Isis::ReseauDistortionMap::SetUndistortedFocalPlane().
double Isis::CameraFocalPlaneMap::FocalPlaneX | ( | ) | const |
References p_focalPlaneX.
Referenced by Isis::LoMediumDistortionMap::SetFocalPlane(), Isis::Camera::SetImage(), and Isis::LoMediumDistortionMap::SetUndistortedFocalPlane().
int Isis::CameraFocalPlaneMap::FocalPlaneXDependency | ( | ) |
double Isis::CameraFocalPlaneMap::FocalPlaneY | ( | ) | const |
References p_focalPlaneY.
Referenced by Isis::LoMediumDistortionMap::SetFocalPlane(), Isis::Camera::SetImage(), and Isis::LoMediumDistortionMap::SetUndistortedFocalPlane().
|
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
sample | undistorted focal plane x in millimeters |
line | undistorted focal plane y in millimeters |
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
sampleOffset | sample offset in pixels |
lineOffset | sample 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.
sample | detector sample at the origin |
line | detector line at the origin |
References p_detectorLineOrigin, and p_detectorSampleOrigin.
Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::ClipperNacRollingShutterCamera::ClipperNacRollingShutterCamera(), Isis::ClipperPushBroomCamera::ClipperPushBroomCamera(), Isis::ClipperWacFcCamera::ClipperWacFcCamera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiresCamera::HiresCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::IdealCamera::IdealCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::MarciCamera::MarciCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MexHrscSrcCamera::MexHrscSrcCamera(), 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::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::LroWideAngleCamera::SetBand(), Isis::ThemisIrCamera::SetBand(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VoyagerCamera::VoyagerCamera().
|
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.
dx | distorted focal plane x in millimeters |
dy | distorted focal plane y in millimeters |
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.
transL | Vector of the affine coefficients |
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.
transS | Vector of the affine coefficients |
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.
transX | Vector of the affine coefficients |
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.
transY | Vector of the affine coefficients |
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.
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.
References p_transy.
const double * Isis::CameraFocalPlaneMap::TransL | ( | ) | const |
References p_itransl.
Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().
const double * Isis::CameraFocalPlaneMap::TransS | ( | ) | const |
References p_itranss.
Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().
const double * Isis::CameraFocalPlaneMap::TransX | ( | ) | const |
References p_transx.
Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().
const double * Isis::CameraFocalPlaneMap::TransY | ( | ) | const |
References p_transy.
Referenced by Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera().
|
protected |
Camera of the image.
Referenced by Isis::LroWideAngleCameraFocalPlaneMap::addFilter(), and CameraFocalPlaneMap().
|
protected |
Detector line position.
Referenced by CenteredDetectorLine(), ComputeCentered(), ComputeUncentered(), SetDetector(), and SetFocalPlane().
|
protected |
Detector sample position.
Referenced by CenteredDetectorSample(), ComputeCentered(), ComputeUncentered(), SetDetector(), and SetFocalPlane().
|
protected |
line value of the detector
Referenced by ComputeCentered(), ComputeUncentered(), DetectorLine(), and SetDetector().
|
protected |
Offset of the detector origin line from the average.
Referenced by CameraFocalPlaneMap(), DetectorLineOffset(), and SetDetectorOffset().
|
protected |
The origin line of the detector.
Referenced by CameraFocalPlaneMap(), ComputeCentered(), ComputeUncentered(), DetectorLineOrigin(), and SetDetectorOrigin().
|
protected |
sample value of the detector
Referenced by ComputeCentered(), ComputeUncentered(), DetectorSample(), and SetDetector().
|
protected |
offset of the detector origin sample from the average
Referenced by CameraFocalPlaneMap(), DetectorSampleOffset(), and SetDetectorOffset().
|
protected |
The origin sample of the detector.
Referenced by CameraFocalPlaneMap(), ComputeCentered(), ComputeUncentered(), DetectorSampleOrigin(), and SetDetectorOrigin().
|
protected |
x value of focal plane coordinate
Referenced by FocalPlaneX(), SetDetector(), and SetFocalPlane().
|
protected |
y value of focal plane coordinate
Referenced by FocalPlaneY(), SetDetector(), and SetFocalPlane().
|
protected |
The y transition from distorted to detector.
Referenced by CameraFocalPlaneMap(), Isis::LroWideAngleCameraFocalPlaneMap::setBand(), SetFocalPlane(), SetTransL(), and TransL().
|
protected |
The x transition from distorted to detector.
Referenced by CameraFocalPlaneMap(), Isis::LroWideAngleCameraFocalPlaneMap::setBand(), SetFocalPlane(), SetTransS(), and TransS().
|
protected |
The x transition from detector to distorted.
Referenced by CameraFocalPlaneMap(), FocalPlaneXDependency(), Isis::LroWideAngleCameraFocalPlaneMap::setBand(), SetDetector(), SetTransX(), SignMostSigX(), and TransX().
|
protected |
The y transition from detector to distorted.
Referenced by CameraFocalPlaneMap(), Isis::LroWideAngleCameraFocalPlaneMap::setBand(), SetDetector(), SetTransY(), SignMostSigY(), and TransY().