An official website of the United States government
Here’s how you know
Official websites use .gov
A
.gov website belongs to an official government
organization in the United States.
Secure .gov websites use HTTPS
A
lock
( ) or https:// means you’ve safely connected to
the .gov website. Share sensitive information only on official,
secure websites.
Isis Developer Reference
|
Convert between parent image coordinates and detector coordinates. More...
#include <RollingShutterCameraDetectorMap.h>
Public Member Functions | |
RollingShutterCameraDetectorMap (Camera *parent, std::vector< double > times, std::vector< double > sampleCoeffs, std::vector< double > lineCoeffs) | |
Constructs a RollingShutterCameraDetectorMap. | |
virtual | ~RollingShutterCameraDetectorMap () |
Destructor. | |
virtual bool | SetParent (const double sample, const double line) |
Compute detector position from a parent image coordinate. | |
virtual bool | SetParent (const double sample, const double line, const double deltaT) |
Compute detector position from a parent image coordinate. | |
virtual bool | SetDetector (const double sample, const double line) |
Compute parent position from a detector coordinate. | |
std::pair< double, double > | applyJitter (const double sample, const double line) |
Iteratively finds a solution to "apply" jitter to an image coordinate. | |
std::pair< double, double > | removeJitter (const double sample, const double line) |
Remove the distortion from the image (parent) coordinates. | |
double | AdjustedStartingSample () const |
Return the starting detector sample adjusted for summation. | |
double | AdjustedStartingLine () const |
Return the starting detector line adjusted for summation. | |
double | ParentSample () const |
Return parent sample. | |
double | ParentLine () const |
Return parent line. | |
double | DetectorSample () const |
Return detector sample. | |
double | DetectorLine () const |
Return detector line. | |
void | SetStartingDetectorSample (const double sample) |
Set the starting detector sample. | |
void | SetStartingDetectorLine (const double line) |
Set the starting detector line. | |
void | SetDetectorSampleSumming (const double summing) |
Set sample summing mode. | |
void | SetDetectorLineSumming (const double summing) |
Set line summing mode. | |
virtual double | SampleScaleFactor () const |
Return scaling factor for computing sample resolution. | |
virtual double | LineScaleFactor () const |
Return scaling factor for computing line resolution. | |
virtual double | LineRate () const |
Return the line collection rate (0 for framing cameras) | |
virtual double | exposureDuration (const double sample, const double line, const int band) const |
This virtual method is for returning the exposure duration of a given pixel. | |
Protected Attributes | |
Camera * | p_camera |
Pointer to the camera. | |
double | p_parentSample |
The parent sample calculated from the detector. | |
double | p_parentLine |
The parent line calculated from the detector. | |
double | p_detectorLine |
Detector coordinate line value. | |
double | p_detectorSample |
Detector coordinate sample value. | |
double | p_detectorSampleSumming |
The scaling factor for computing sample resolution. | |
double | p_detectorLineSumming |
The scaling factor for computing line resolution. | |
double | p_startingDetectorSample |
Detector start coordinate sample value. | |
double | p_startingDetectorLine |
Detector start coordinate line value. | |
double | p_ss |
Start sample. | |
double | p_sl |
Start line. | |
Convert between parent image coordinates and detector coordinates.
This class is used to convert between parent dector coordinates (sample/line) and detector coordinates for a rolling shutter camera.
Isis::RollingShutterCameraDetectorMap::RollingShutterCameraDetectorMap | ( | Camera * | parent, |
std::vector< double > | times, | ||
std::vector< double > | sampleCoeffs, | ||
std::vector< double > | lineCoeffs ) |
Constructs a RollingShutterCameraDetectorMap.
times | A std::vector of normalized readout times |
coeffs | A std::vector of the coefficients of the polynomial that fit the jitter. The coefficients are from highest degree to lowest degree. |
parent | The parent camera that uses the detector map. |
References Isis::CameraDetectorMap::CameraDetectorMap().
|
virtual |
Destructor.
|
inherited |
Return the starting detector line adjusted for summation.
References p_sl.
|
inherited |
Return the starting detector sample adjusted for summation.
References p_ss.
std::pair< double, double > Isis::RollingShutterCameraDetectorMap::applyJitter | ( | const double | sample, |
const double | line ) |
Iteratively finds a solution to "apply" jitter to an image coordinate.
Each iteration adds jitter to the original image coordinate until it finds an image coordinate that maps back to to the original image coordinate when jitter is removed. This is similar to how we handle applying radial distortion.
Note: If the jitter varies significantly (>1 pixel difference) then it is possible for there to be multiple solutions to the inverse problem and it is impossible to know which one to choose.
References _FILEINFO_, removeJitter(), and Isis::IException::Unknown.
Referenced by SetDetector().
|
inherited |
|
inherited |
|
virtualinherited |
This virtual method is for returning the exposure duration of a given pixel.
For framing cameras, exposure duration is not available so it throws an error.
sample | The sample of the desired pixel. |
line | The line of the desired pixel. |
band | The band of the desired pixel. |
IException::Programmer | "Exposure duration is only available for LineScan, VariableLineScan, and PushFrame Cameras." |
Reimplemented in Isis::LineScanCameraDetectorMap, Isis::NirsDetectorMap, Isis::PushFrameCameraDetectorMap, and Isis::VariableLineScanCameraDetectorMap.
References _FILEINFO_, and Isis::IException::Programmer.
|
virtualinherited |
Return the line collection rate (0 for framing cameras)
Reimplemented in Isis::ApolloPanoramicDetectorMap, Isis::LineScanCameraDetectorMap, and Isis::RadarPulseMap.
|
virtualinherited |
Return scaling factor for computing line resolution.
References p_detectorLineSumming.
Referenced by Isis::ThemisIrCamera::SetBand(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
inherited |
|
inherited |
std::pair< double, double > Isis::RollingShutterCameraDetectorMap::removeJitter | ( | const double | sample, |
const double | line ) |
Remove the distortion from the image (parent) coordinates.
This is a helper function for the SetParent method.
sample | Input (parent) image sample coordinate. |
line | Input (parent) image line coordinate. |
References round.
Referenced by applyJitter(), and SetParent().
|
virtualinherited |
Return scaling factor for computing sample resolution.
References p_detectorSampleSumming.
|
virtual |
Compute parent position from a detector coordinate.
This method will compute a parent sample/line given a detector coordinate
sample | Sample number in the detector |
line | Line number in the detector |
Reimplemented from Isis::CameraDetectorMap.
References applyJitter(), Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_detectorLineSumming, Isis::CameraDetectorMap::p_detectorSample, Isis::CameraDetectorMap::p_detectorSampleSumming, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::p_parentSample, Isis::CameraDetectorMap::p_sl, and Isis::CameraDetectorMap::p_ss.
|
inlineinherited |
Set line summing mode.
Use this method to specify if detector lines are summed/averaged. That is, one image lines represents the average of N detectors. If not set the default is 1.
summing | Line summing mode |
References p_detectorLineSumming.
Referenced by Isis::CrismCamera::CrismCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::MarciCamera::MarciCamera(), Isis::MdisCamera::MdisCamera(), Isis::MexHrscSrcCamera::MexHrscSrcCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::OsirisRexTagcamsCamera::OsirisRexTagcamsCamera(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), and Isis::ThemisVisCamera::ThemisVisCamera().
|
inlineinherited |
Set sample summing mode.
Use this method to specify if detector samples are summed/averaged. That is, one image sample represents the average of N detectors. If not set the default is 1.
summing | Sample summing mode |
References p_detectorSampleSumming.
Referenced by Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::MarciCamera::MarciCamera(), Isis::MdisCamera::MdisCamera(), Isis::MexHrscSrcCamera::MexHrscSrcCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::OsirisRexTagcamsCamera::OsirisRexTagcamsCamera(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), and Isis::ThemisVisCamera::ThemisVisCamera().
|
virtual |
Compute detector position from a parent image coordinate.
This method will compute the detector position from the parent line/sample coordinate
sample | Sample number in the parent image |
line | Line number in the parent image |
Reimplemented from Isis::CameraDetectorMap.
References SetParent().
Referenced by SetParent().
|
virtual |
Compute detector position from a parent image coordinate.
This method will compute the detector position from the parent line/sample coordinate and an offset from the currently set time in seconds. If the time has not already been set, the input offset is not applied.
sample | Sample number in the parent image |
line | Line number in the parent image |
deltaT | option time offset from center of exposure in seconds |
Reimplemented from Isis::CameraDetectorMap.
References Isis::CameraDetectorMap::p_camera, Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_detectorLineSumming, Isis::CameraDetectorMap::p_detectorSample, Isis::CameraDetectorMap::p_detectorSampleSumming, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::p_parentSample, Isis::CameraDetectorMap::p_sl, Isis::CameraDetectorMap::p_ss, and removeJitter().
|
inlineinherited |
Set the starting detector line.
Use this method to specify the starting detector that represents the first image line in the cube. If not set the default is 1.
line | Starting detector line |
References p_startingDetectorLine.
Referenced by Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::JunoCamera::JunoCamera(), Isis::MdisCamera::MdisCamera(), and Isis::RosettaOsirisCamera::RosettaOsirisCamera().
|
inlineinherited |
Set the starting detector sample.
Use this method to specify the starting detector that represents the first image sample in the cube. If not set the default is 1.
sample | Starting detector sample |
References p_startingDetectorSample.
Referenced by Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::CTXCamera::CTXCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::MdisCamera::MdisCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), and Isis::RosettaOsirisCamera::RosettaOsirisCamera().
|
protectedinherited |
Pointer to the camera.
Referenced by CameraDetectorMap(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::ApolloPanoramicDetectorMap::SetParent(), SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::MocWideAngleDetectorMap::SetParent(), Isis::RadarPulseMap::SetParent(), Isis::RollingShutterCameraDetectorMap::SetParent(), Isis::VariableLineScanCameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
protectedinherited |
Detector coordinate line value.
Referenced by DetectorLine(), Isis::ApolloPanoramicDetectorMap::SetDetector(), SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), Isis::RadarPulseMap::SetParent(), Isis::RollingShutterCameraDetectorMap::SetParent(), and Isis::VariableLineScanCameraDetectorMap::SetParent().
|
protectedinherited |
The scaling factor for computing line resolution.
Referenced by CameraDetectorMap(), LineScaleFactor(), SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), SetDetectorLineSumming(), SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
Detector coordinate sample value.
Referenced by DetectorSample(), Isis::ApolloPanoramicDetectorMap::SetDetector(), SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), SetParent(), Isis::MocWideAngleDetectorMap::SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
The scaling factor for computing sample resolution.
Referenced by CameraDetectorMap(), SampleScaleFactor(), SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), SetDetectorSampleSumming(), SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
The parent line calculated from the detector.
Referenced by ParentLine(), Isis::ApolloPanoramicDetectorMap::SetDetector(), SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
The parent sample calculated from the detector.
Referenced by ParentSample(), Isis::ApolloPanoramicDetectorMap::SetDetector(), SetDetector(), Isis::MocWideAngleDetectorMap::SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), Isis::ApolloPanoramicDetectorMap::SetParent(), SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
Start line.
Referenced by AdjustedStartingLine(), SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
Start sample.
Referenced by AdjustedStartingSample(), SetDetector(), Isis::RollingShutterCameraDetectorMap::SetDetector(), SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
protectedinherited |
Detector start coordinate line value.
Referenced by CameraDetectorMap(), and SetStartingDetectorLine().
|
protectedinherited |
Detector start coordinate sample value.
Referenced by CameraDetectorMap(), and SetStartingDetectorSample().