![]() |
Isis 3 Programmer 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. More... | |
virtual | ~RollingShutterCameraDetectorMap () |
Destructor. More... | |
virtual bool | SetParent (const double sample, const double line) |
Compute detector position from a parent image coordinate. More... | |
virtual bool | SetParent (const double sample, const double line, const double deltaT) |
Compute detector position from a parent image coordinate. More... | |
virtual bool | SetDetector (const double sample, const double line) |
Compute parent position from a detector coordinate. More... | |
std::pair< double, double > | applyJitter (const double sample, const double line) |
Iteratively finds a solution to "apply" jitter to an image coordinate. More... | |
std::pair< double, double > | removeJitter (const double sample, const double line) |
Remove the distortion from the image (parent) coordinates. More... | |
double | AdjustedStartingSample () const |
Return the starting detector sample adjusted for summation. More... | |
double | AdjustedStartingLine () const |
Return the starting detector line adjusted for summation. More... | |
double | ParentSample () const |
Return parent sample. More... | |
double | ParentLine () const |
Return parent line. More... | |
double | DetectorSample () const |
Return detector sample. More... | |
double | DetectorLine () const |
Return detector line. More... | |
void | SetStartingDetectorSample (const double sample) |
Set the starting detector sample. More... | |
void | SetStartingDetectorLine (const double line) |
Set the starting detector line. More... | |
void | SetDetectorSampleSumming (const double summing) |
Set sample summing mode. More... | |
void | SetDetectorLineSumming (const double summing) |
Set line summing mode. More... | |
virtual double | SampleScaleFactor () const |
Return scaling factor for computing sample resolution. More... | |
virtual double | LineScaleFactor () const |
Return scaling factor for computing line resolution. More... | |
virtual double | LineRate () const |
Return the line collection rate (0 for framing cameras) More... | |
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. More... | |
Protected Attributes | |
Camera * | p_camera |
Pointer to the camera. More... | |
double | p_parentSample |
The parent sample calculated from the detector. More... | |
double | p_parentLine |
The parent line calculated from the detector. More... | |
double | p_detectorLine |
Detector coordinate line value. More... | |
double | p_detectorSample |
Detector coordinate sample value. More... | |
double | p_detectorSampleSumming |
The scaling factor for computing sample resolution. More... | |
double | p_detectorLineSumming |
The scaling factor for computing line resolution. More... | |
double | p_startingDetectorSample |
Detector start coordinate sample value. More... | |
double | p_startingDetectorLine |
Detector start coordinate line value. More... | |
double | p_ss |
Start sample. More... | |
double | p_sl |
Start line. More... | |
Private Member Functions | |
void | Compute () |
Compute new offsets whenenver summing or starting sample/lines change. More... | |
Private Attributes | |
std::vector< double > | m_times |
List of normalized [-1, 1] readout times for all the lines in the input image. More... | |
std::vector< double > | m_sampleCoeffs |
List of coefficients for the n-order polynomial characterizing the jitter in the sample direction. More... | |
std::vector< double > | m_lineCoeffs |
List of coefficients for the n-order polynomial characterizing the jitter in the line direction. More... | |
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.
Definition at line 29 of file RollingShutterCameraDetectorMap.h.
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. |
Definition at line 25 of file RollingShutterCameraDetectorMap.cpp.
References m_lineCoeffs, m_sampleCoeffs, and m_times.
|
virtual |
Destructor.
Definition at line 39 of file RollingShutterCameraDetectorMap.cpp.
|
inherited |
Return the starting detector line adjusted for summation.
Definition at line 123 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_sl.
|
inherited |
Return the starting detector sample adjusted for summation.
Definition at line 113 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::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.
Definition at line 121 of file RollingShutterCameraDetectorMap.cpp.
References 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, removeJitter(), and Isis::IException::Unknown.
Referenced by SetDetector().
|
privateinherited |
Compute new offsets whenenver summing or starting sample/lines change.
Definition at line 99 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorLineSumming, Isis::CameraDetectorMap::p_detectorSampleSumming, Isis::CameraDetectorMap::p_sl, Isis::CameraDetectorMap::p_ss, Isis::CameraDetectorMap::p_startingDetectorLine, and Isis::CameraDetectorMap::p_startingDetectorSample.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::SetDetectorLineSumming(), Isis::CameraDetectorMap::SetDetectorSampleSumming(), Isis::CameraDetectorMap::SetStartingDetectorLine(), and Isis::CameraDetectorMap::SetStartingDetectorSample().
|
inherited |
Return detector line.
Definition at line 163 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorLine.
Referenced by Isis::Camera::SetImage().
|
inherited |
Return detector sample.
Definition at line 153 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorSample.
Referenced by Isis::Camera::SetImage().
|
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::NirsDetectorMap, Isis::VariableLineScanCameraDetectorMap, Isis::PushFrameCameraDetectorMap, and Isis::LineScanCameraDetectorMap.
Definition at line 212 of file CameraDetectorMap.cpp.
References Isis::IException::Programmer.
Referenced by Isis::Camera::exposureDuration().
|
virtualinherited |
Return the line collection rate (0 for framing cameras)
Reimplemented in Isis::RadarPulseMap, Isis::LineScanCameraDetectorMap, and Isis::ApolloPanoramicDetectorMap.
Definition at line 193 of file CameraDetectorMap.cpp.
|
virtualinherited |
Return scaling factor for computing line resolution.
Definition at line 183 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorLineSumming.
Referenced by Isis::PushFrameCameraGroundMap::FindDistance(), Isis::Camera::LineResolution(), Isis::Camera::ObliqueLineResolution(), Isis::ThemisIrCamera::SetBand(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
inherited |
Return parent line.
Definition at line 143 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_parentLine.
Referenced by Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().
|
inherited |
Return parent sample.
Definition at line 133 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_parentSample.
Referenced by Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().
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. |
Definition at line 165 of file RollingShutterCameraDetectorMap.cpp.
References m_lineCoeffs, m_sampleCoeffs, and m_times.
Referenced by applyJitter(), and SetParent().
|
virtualinherited |
Return scaling factor for computing sample resolution.
Definition at line 173 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorSampleSumming.
Referenced by Isis::Camera::ObliqueSampleResolution(), and Isis::Camera::SampleResolution().
|
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.
Definition at line 101 of file RollingShutterCameraDetectorMap.cpp.
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 |
Definition at line 123 of file CameraDetectorMap.h.
References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::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::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 |
Definition at line 108 of file CameraDetectorMap.h.
References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::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::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.
Definition at line 55 of file RollingShutterCameraDetectorMap.cpp.
|
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.
Definition at line 75 of file RollingShutterCameraDetectorMap.cpp.
References Isis::iTime::Et(), Isis::Spice::isTimeSet(), 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, removeJitter(), Isis::Sensor::setTime(), and Isis::Spice::time().
|
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 |
Definition at line 93 of file CameraDetectorMap.h.
References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::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 |
Definition at line 79 of file CameraDetectorMap.h.
References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::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().
|
private |
List of coefficients for the n-order polynomial characterizing the jitter in the line direction.
Definition at line 67 of file RollingShutterCameraDetectorMap.h.
Referenced by removeJitter(), and RollingShutterCameraDetectorMap().
|
private |
List of coefficients for the n-order polynomial characterizing the jitter in the sample direction.
Definition at line 62 of file RollingShutterCameraDetectorMap.h.
Referenced by removeJitter(), and RollingShutterCameraDetectorMap().
|
private |
List of normalized [-1, 1] readout times for all the lines in the input image.
Definition at line 57 of file RollingShutterCameraDetectorMap.h.
Referenced by removeJitter(), and RollingShutterCameraDetectorMap().
|
protectedinherited |
Pointer to the camera.
Definition at line 138 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::RadarPulseMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), SetParent(), Isis::VariableLineScanCameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
protectedinherited |
Detector coordinate line value.
Definition at line 142 of file CameraDetectorMap.h.
Referenced by applyJitter(), Isis::CameraDetectorMap::DetectorLine(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), SetDetector(), Isis::RadarPulseMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), SetParent(), and Isis::VariableLineScanCameraDetectorMap::SetParent().
|
protectedinherited |
The scaling factor for computing line resolution.
Definition at line 146 of file CameraDetectorMap.h.
Referenced by applyJitter(), Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetDetectorLineSumming(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Detector coordinate sample value.
Definition at line 143 of file CameraDetectorMap.h.
Referenced by applyJitter(), Isis::CameraDetectorMap::DetectorSample(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
The scaling factor for computing sample resolution.
Definition at line 145 of file CameraDetectorMap.h.
Referenced by applyJitter(), Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::SampleScaleFactor(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetDetectorSampleSumming(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
The parent line calculated from the detector.
Definition at line 141 of file CameraDetectorMap.h.
Referenced by applyJitter(), Isis::CameraDetectorMap::ParentLine(), Isis::CameraDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
The parent sample calculated from the detector.
Definition at line 140 of file CameraDetectorMap.h.
Referenced by applyJitter(), Isis::CameraDetectorMap::ParentSample(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Start line.
Definition at line 151 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::AdjustedStartingLine(), applyJitter(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Start sample.
Definition at line 150 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::AdjustedStartingSample(), applyJitter(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::SetDetector(), SetDetector(), Isis::CameraDetectorMap::SetParent(), and SetParent().
|
protectedinherited |
Detector start coordinate line value.
Definition at line 148 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::SetStartingDetectorLine().
|
protectedinherited |
Detector start coordinate sample value.
Definition at line 147 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::SetStartingDetectorSample().
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/13/2023 15:22:37 |