Isis 3 Programmer Reference
|
Convert between parent image coordinates and detector coordinates. More...
#include <VariableLineScanCameraDetectorMap.h>
Public Member Functions | |
VariableLineScanCameraDetectorMap (Camera *parent, std::vector< LineRateChange > &lineRates) | |
Constructs a VariableLineScanCameraDetectorMap. More... | |
virtual | ~VariableLineScanCameraDetectorMap () |
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... | |
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... | |
LineRateChange & | lineRate (const double line) const |
Get the line rate information for a given line. More... | |
void | SetStartTime (const double etStart) |
Reset the starting ephemeris time. More... | |
void | SetLineRate (const double lineRate) |
Reset the line rate. More... | |
double | LineRate () const |
Access the time, in seconds, between scan lines. More... | |
double | StartTime () const |
Access the starting time at the top edge of the first line in the parent image. 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... | |
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 Attributes | |
std::vector< LineRateChange > & | p_lineRates |
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 line scan camera.
2008-08-08 Steven Lambright Original version
2009-03-07 Debbie A. Cook Removed reference to obsolute CameraDetectorMap methods
2012-06-20 Debbie A. Cook, Updated Spice members to be more compliant with Isis
2016-10-19 Jesse Mapel - Added exposureDuration method for accessing a pixel's exposure duration. Updated test. References #4476.
2016-10-21 Jesse Mapel - Moved the LineRateChange look up to a separate method. References #4476.
2016-10-21 Jesse Mapel and Kristin Berry - Fixed bug in SetDetector() and SetParent() methods so that we now subtract 1/2 pixel from the rateStartLine to calculate the p_parentLine and et variables, respectively. This was needed since rateStartLine is the integer value for the first line that uses the current rate. The integer value indicates the center of the line, vertically, so we subtract 0.5 to get the top of the needed start pixel. References #4476.
2016-10-27 Jeannie Backer - Moved constructor documentation and destructor to cpp file. References #4476.
coding standards
Definition at line 66 of file VariableLineScanCameraDetectorMap.h.
Isis::VariableLineScanCameraDetectorMap::VariableLineScanCameraDetectorMap | ( | Camera * | parent, |
std::vector< LineRateChange > & | lineRates | ||
) |
Constructs a VariableLineScanCameraDetectorMap.
parent | The camera |
p_lineRates | This should be a vector with an entry for every scan rate change in it. The pair consists of the line number and ET of the changed time; the first entry should be line 1 and the last entry should be one line past the end of the image. See HrscCamera for an example. |
Definition at line 39 of file VariableLineScanCameraDetectorMap.cpp.
|
virtual |
Destructor.
Definition at line 52 of file VariableLineScanCameraDetectorMap.cpp.
|
inherited |
Return the starting detector line adjusted for summation.
Definition at line 139 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_sl.
|
inherited |
Return the starting detector sample adjusted for summation.
Definition at line 129 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_ss.
|
inherited |
Return detector line.
Definition at line 179 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorLine.
Referenced by Isis::Camera::SetImage().
|
inherited |
Return detector sample.
Definition at line 169 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_detectorSample.
Referenced by Isis::Camera::SetImage().
|
virtual |
This virtual method is for returning the exposure duration of a given pixel.
For a variable line scan camera, the exposure duration is assumed to be the line scan rate for the given line. Note, this may not be the actual exposure duration. The line scan rate is the time from the beginning of one line to the beginning of the next. The exposure duration is the time from the beginning of a line to the end of that line. So, if the end of a line is not the beginning of the next line, these two values will not be the same.
sample | The sample of the desired pixel. |
line | The line of the desired pixel. |
band | The band of the desired pixel. |
IException::Programmer | "line was not found in the line scan rate table." |
How do we get the actual exposure duration?
Reimplemented from Isis::LineScanCameraDetectorMap.
Definition at line 190 of file VariableLineScanCameraDetectorMap.cpp.
References lineRate().
|
virtualinherited |
Access the time, in seconds, between scan lines.
Reimplemented from Isis::CameraDetectorMap.
Definition at line 86 of file LineScanCameraDetectorMap.cpp.
References Isis::LineScanCameraDetectorMap::p_lineRate.
Referenced by Isis::LineScanCameraDetectorMap::exposureDuration(), and Isis::LineScanCameraSkyMap::SetSky().
LineRateChange & Isis::VariableLineScanCameraDetectorMap::lineRate | ( | const double | line | ) | const |
Get the line rate information for a given line.
line | The line to find the line rate information for. |
How to handle if rateIndex < 0?
Definition at line 207 of file VariableLineScanCameraDetectorMap.cpp.
Referenced by exposureDuration().
|
virtualinherited |
Return scaling factor for computing line resolution.
Definition at line 199 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 159 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 149 of file CameraDetectorMap.cpp.
References Isis::CameraDetectorMap::p_parentSample.
Referenced by Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().
|
virtualinherited |
Return scaling factor for computing sample resolution.
Definition at line 189 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 given a detector coordinate. The parent line will be computed using the the time in the parent camera
sample | Sample number in the detector |
line | Line number in the detector |
Reimplemented from Isis::LineScanCameraDetectorMap.
Definition at line 67 of file VariableLineScanCameraDetectorMap.cpp.
References Isis::iTime::Et(), Isis::CameraDetectorMap::p_camera, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetLineRate(), and Isis::Spice::time().
|
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 140 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::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 125 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::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().
|
inherited |
Reset the line rate.
Use this method to reset the time between lines. Usually this will not need to be done unless the rate changes between bands.
lineRate | the time in seconds between lines |
Definition at line 76 of file LineScanCameraDetectorMap.cpp.
References Isis::LineScanCameraDetectorMap::p_lineRate.
Referenced by SetDetector(), and SetParent().
|
virtual |
Compute detector position from a parent image coordinate.
This method will compute the detector position from the parent line/sample coordinate. The parent line will be used to set the appropriate time in the parent camera.
sample | Sample number in the parent image |
line | Line number in the parent image |
Reimplemented from Isis::LineScanCameraDetectorMap.
Definition at line 112 of file VariableLineScanCameraDetectorMap.cpp.
|
virtual |
Compute detector position from a parent image coordinate.
This method will compute the detector position from the parent line/sample coordinate. The parent line will be used to set the appropriate time in the parent camera.
sample | Sample number in the parent image |
line | Line number in the parent image |
deltaT | offset in seconds from center exposure time |
The following time calculation has some potential pitfalls. If the line rate and exposure duration are not the same, such as with the Dawn VIR camera, then this will not return the true center pixel time. If there is a difference, then the calculation should be rateStartEt + (line-rateStartLine) * rate + exposureDuration()/2. See exposureDuration()'s documentation for more information.
Reimplemented from Isis::LineScanCameraDetectorMap.
Definition at line 130 of file VariableLineScanCameraDetectorMap.cpp.
References Isis::CameraFocalPlaneMap::DetectorLineOffset(), Isis::Camera::FocalPlaneMap(), Isis::CameraDetectorMap::p_camera, Isis::CameraDetectorMap::p_detectorLine, Isis::LineScanCameraDetectorMap::SetLineRate(), Isis::CameraDetectorMap::SetParent(), and Isis::Sensor::setTime().
|
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 110 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 96 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().
|
inherited |
Reset the starting ephemeris time.
Use this method to reset the starting time of the top edge of the first line in the parent image. That is the time, prior to cropping, scaling, or padding. Usually this will not need to be done unless the time changes between bands.
etStart | starting ephemeris time in seconds |
Definition at line 63 of file LineScanCameraDetectorMap.cpp.
References Isis::LineScanCameraDetectorMap::p_etStart.
Referenced by Isis::ThemisIrCamera::SetBand().
|
inherited |
Access the starting time at the top edge of the first line in the parent image.
Definition at line 165 of file LineScanCameraDetectorMap.cpp.
References Isis::LineScanCameraDetectorMap::p_etStart.
|
protectedinherited |
Pointer to the camera.
Definition at line 155 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::LineScanCameraDetectorMap::SetDetector(), SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), SetParent(), Isis::RadarPulseMap::SetParent(), and Isis::PushFrameCameraDetectorMap::TotalFramelets().
|
protectedinherited |
Detector coordinate line value.
Definition at line 159 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::DetectorLine(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::PushFrameCameraDetectorMap::SetParent(), SetParent(), and Isis::RadarPulseMap::SetParent().
|
protectedinherited |
The scaling factor for computing line resolution.
Definition at line 163 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetDetectorLineSumming(), and Isis::CameraDetectorMap::SetParent().
|
protectedinherited |
Detector coordinate sample value.
Definition at line 160 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::DetectorSample(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), and Isis::CameraDetectorMap::SetParent().
|
protectedinherited |
The scaling factor for computing sample resolution.
Definition at line 162 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::SampleScaleFactor(), Isis::CameraDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetDetectorSampleSumming(), and Isis::CameraDetectorMap::SetParent().
|
protectedinherited |
The parent line calculated from the detector.
Definition at line 158 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::ParentLine(), Isis::CameraDetectorMap::SetDetector(), Isis::PushFrameCameraDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::CameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::SetParent().
|
protectedinherited |
The parent sample calculated from the detector.
Definition at line 157 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::ParentSample(), Isis::CameraDetectorMap::SetDetector(), Isis::CameraDetectorMap::SetParent(), and Isis::PushFrameCameraDetectorMap::SetParent().
|
protectedinherited |
Start line.
Definition at line 168 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::AdjustedStartingLine(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::SetDetector(), and Isis::CameraDetectorMap::SetParent().
|
protectedinherited |
Start sample.
Definition at line 167 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::AdjustedStartingSample(), Isis::CameraDetectorMap::Compute(), Isis::CameraDetectorMap::SetDetector(), and Isis::CameraDetectorMap::SetParent().
|
protectedinherited |
Detector start coordinate line value.
Definition at line 165 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 164 of file CameraDetectorMap.h.
Referenced by Isis::CameraDetectorMap::CameraDetectorMap(), Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::SetStartingDetectorSample().