Isis Developer Reference
Isis::PushFrameCameraDetectorMap Class Reference

Convert between parent image coordinates and detector coordinates. More...

#include <PushFrameCameraDetectorMap.h>

Inheritance diagram for Isis::PushFrameCameraDetectorMap:
Inheritance graph
Collaboration diagram for Isis::PushFrameCameraDetectorMap:
Collaboration graph

Public Member Functions

 PushFrameCameraDetectorMap (Camera *parent, const double etStart, const double frameletRate, int frameletHeight)
 Construct a detector map for push frame cameras. More...
 
virtual ~PushFrameCameraDetectorMap ()
 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...
 
double FrameletRate () const
 Return the time in seconds between framelets. More...
 
void SetFrameletRate (const double frameletRate)
 Reset the frame rate. More...
 
int FrameletOffset () const
 Return the frame offset. More...
 
void SetFrameletOffset (int frameletOffset)
 Reset the frame offset. More...
 
void SetFramelet (int framelet, const double deltaT=0)
 This method changes the current framelet. More...
 
int Framelet ()
 This method returns the current framelet. More...
 
void SetBandFirstDetectorLine (int firstLine)
 Change the starting line in the detector based on band. More...
 
int GetBandFirstDetectorLine ()
 Return the starting line in the detector for the current band. More...
 
void SetStartTime (const double etStart)
 Reset the starting ephemeris time. More...
 
double StartEphemerisTime () const
 This returns the starting ET of this band. More...
 
void SetExposureDuration (double exposureDuration)
 Change the exposure duration in seconds. 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...
 
void SetFrameletOrderReversed (bool frameletOrderReversed, int nframelets)
 Changes the direction of the framelets. More...
 
void SetFrameletsGeometricallyFlipped (bool frameletsFlipped)
 Mirrors the each framelet in the file. More...
 
int TotalFramelets () const
 Return the total number of framelets including padding. More...
 
double frameletSample () const
 This returns the calculated framelet sample. More...
 
double frameletLine () const
 This returns the calculated framelet line. More...
 
int frameletHeight () const
 This returns how many lines are considered a single framelet. More...
 
bool timeAscendingFramelets ()
 Returns if the framelets are reversed from top-to-bottom. 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...
 

Protected Attributes

Camerap_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...
 

Detailed Description

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 push frame camera.

See also
Camera
Author
2007-10-15 Steven Lambright

Constructor & Destructor Documentation

◆ PushFrameCameraDetectorMap()

Isis::PushFrameCameraDetectorMap::PushFrameCameraDetectorMap ( Camera parent,
const double  etStart,
const double  frameletRate,
int  frameletHeight 
)

Construct a detector map for push frame cameras.

Parameters
parentThe parent camera model for the detector map
etStartstarting ephemeris time in seconds at the first framelet (not including padded framelets).
frameletRatethe time in seconds between framelets
frameletHeightPhysical height of framelet in lines (don't account for summing)

References frameletHeight().

◆ ~PushFrameCameraDetectorMap()

Isis::PushFrameCameraDetectorMap::~PushFrameCameraDetectorMap ( )
virtual

Destructor.

Member Function Documentation

◆ AdjustedStartingLine()

double Isis::CameraDetectorMap::AdjustedStartingLine ( ) const
inherited

Return the starting detector line adjusted for summation.

Returns
(double) The starting line

References Isis::CameraDetectorMap::p_sl.

◆ AdjustedStartingSample()

double Isis::CameraDetectorMap::AdjustedStartingSample ( ) const
inherited

Return the starting detector sample adjusted for summation.

Returns
(double) The starting sample

References Isis::CameraDetectorMap::p_ss.

◆ DetectorLine()

double Isis::CameraDetectorMap::DetectorLine ( ) const
inherited

Return detector line.

Returns
(double) The detector line

References Isis::CameraDetectorMap::p_detectorLine.

Referenced by Isis::Camera::SetImage().

◆ DetectorSample()

double Isis::CameraDetectorMap::DetectorSample ( ) const
inherited

Return detector sample.

Returns
(double) The detector sample

References Isis::CameraDetectorMap::p_detectorSample.

Referenced by Isis::Camera::SetImage().

◆ exposureDuration()

double Isis::PushFrameCameraDetectorMap::exposureDuration ( const double  sample,
const double  line,
const int  band 
) const
virtual

This virtual method is for returning the exposure duration of a given pixel.

Parameters
sampleThe sample of the desired pixel.
lineThe line of the desired pixel.
bandThe band of the desired pixel.
Returns
double The exposure duration for the desired pixel in seconds.

Reimplemented from Isis::CameraDetectorMap.

Referenced by SetExposureDuration().

◆ Framelet()

int Isis::PushFrameCameraDetectorMap::Framelet ( )

This method returns the current framelet.

This framelet is calculated when SetParent is called.

Returns
int The current framelet

◆ frameletHeight()

int Isis::PushFrameCameraDetectorMap::frameletHeight ( ) const

This returns how many lines are considered a single framelet.

Returns
int Number of lines in a framelet

Referenced by PushFrameCameraDetectorMap().

◆ frameletLine()

double Isis::PushFrameCameraDetectorMap::frameletLine ( ) const

This returns the calculated framelet line.

Returns
double Current framelet line

◆ FrameletOffset()

int Isis::PushFrameCameraDetectorMap::FrameletOffset ( ) const

Return the frame offset.

Returns
int The number of framelets padding the top of the band.

◆ FrameletRate()

double Isis::PushFrameCameraDetectorMap::FrameletRate ( ) const

Return the time in seconds between framelets.

Returns
double The time from the start of a framelet's exposure to the end of the framlet's exposure duration.

◆ frameletSample()

double Isis::PushFrameCameraDetectorMap::frameletSample ( ) const

This returns the calculated framelet sample.

Returns
double Current framelet sample

◆ GetBandFirstDetectorLine()

int Isis::PushFrameCameraDetectorMap::GetBandFirstDetectorLine ( )

Return the starting line in the detector for the current band.

Returns
int The starting line in the detector for the current band

◆ LineRate()

double Isis::CameraDetectorMap::LineRate ( ) const
virtualinherited

Return the line collection rate (0 for framing cameras)

Returns
(double) The line collection rate

Reimplemented in Isis::RadarPulseMap, Isis::LineScanCameraDetectorMap, and Isis::ApolloPanoramicDetectorMap.

◆ LineScaleFactor()

double Isis::CameraDetectorMap::LineScaleFactor ( ) const
virtualinherited

Return scaling factor for computing line resolution.

Returns
(double) The scaling factor for line resolution

References Isis::CameraDetectorMap::p_detectorLineSumming.

Referenced by Isis::Camera::LineResolution(), Isis::Camera::ObliqueLineResolution(), Isis::ThemisIrCamera::SetBand(), SetDetector(), SetParent(), and TotalFramelets().

◆ ParentLine()

double Isis::CameraDetectorMap::ParentLine ( ) const
inherited

Return parent line.

Returns
(double) The parent line

References Isis::CameraDetectorMap::p_parentLine.

Referenced by Isis::Camera::SetRightAscensionDeclination().

◆ ParentSample()

double Isis::CameraDetectorMap::ParentSample ( ) const
inherited

Return parent sample.

Returns
(double) The parent sample

References Isis::CameraDetectorMap::p_parentSample.

Referenced by Isis::Camera::SetRightAscensionDeclination().

◆ SampleScaleFactor()

double Isis::CameraDetectorMap::SampleScaleFactor ( ) const
virtualinherited

Return scaling factor for computing sample resolution.

Returns
(double) The scaling factor for sample resolution

References Isis::CameraDetectorMap::p_detectorSampleSumming.

Referenced by Isis::Camera::ObliqueSampleResolution(), and Isis::Camera::SampleResolution().

◆ SetBandFirstDetectorLine()

void Isis::PushFrameCameraDetectorMap::SetBandFirstDetectorLine ( int  firstLine)

Change the starting line in the detector based on band.

Use this method to change which line is read out of the CCD for any given band. That is, as the virtual SetBand method for the specfic camera is invoked this method should be called.

Parameters
firstLine0-based offset to the first line (first line of detector = 0)

Referenced by Isis::ThemisVisCamera::BandEphemerisTimeOffset(), Isis::LroWideAngleCamera::SetBand(), and Isis::MarciCamera::SetBand().

◆ SetDetector()

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

Compute parent position from a detector coordinate.

This method will compute a parent sample given a detector coordinate. The parent line and framelet line will be computed.

Parameters
sampleSample number in the detector
lineLine number in the detector
Returns
bool conversion successful

Reimplemented from Isis::CameraDetectorMap.

References Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_detectorSample, Isis::CameraDetectorMap::p_parentLine, and Isis::CameraDetectorMap::SetDetector().

◆ SetDetectorLineSumming()

◆ SetDetectorSampleSumming()

void Isis::CameraDetectorMap::SetDetectorSampleSumming ( const double  summing)
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.

Parameters
summingSample summing mode

References 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().

◆ SetExposureDuration()

void Isis::PushFrameCameraDetectorMap::SetExposureDuration ( double  exposureDuration)

Change the exposure duration in seconds.

Use this method to change the exposure duration of each framelet which may be different than the framelet rate.

Parameters
exposureDurationThe time from the start of a framelet's exposure to the end of the framlet's exposure duration.

References exposureDuration().

◆ SetFramelet()

void Isis::PushFrameCameraDetectorMap::SetFramelet ( int  framelet,
const double  deltaT = 0 
)

This method changes the current framelet.

The camera's ephemeris time will be updated to the center of the framelet.

Parameters
frameletCurrent Framelet
deltaToffset from center time in seconds

References Isis::CameraDetectorMap::p_camera, and Isis::Sensor::setTime().

Referenced by Isis::PushFrameCameraGroundMap::SetGround(), and SetParent().

◆ SetFrameletOffset()

void Isis::PushFrameCameraDetectorMap::SetFrameletOffset ( int  frameletOffset)

Reset the frame offset.

Use this method to reset the frame offset. Usually this will not need to be done unless the offset changes between bands.

Parameters
frameletOffsetNumber of frames offset in cube

Referenced by Isis::LroWideAngleCamera::SetBand(), and Isis::MarciCamera::SetBand().

◆ SetFrameletOrderReversed()

void Isis::PushFrameCameraDetectorMap::SetFrameletOrderReversed ( bool  frameletOrderReversed,
int  nframelets 
)

Changes the direction of the framelets.

Use this method to change which direction the framelets are ordered. In some cases, the top framelet from the raw instrument data has been moved to the bottom of the image and this compensates for that.

If not set, the default is to not flip the framelet order

Parameters
frameletOrderReversedIndicates whether the order of the framelets is should be flipped
nframeletsNumber of framelets in each band, ignored if frameletsReversed is set to false

Referenced by Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::MarciCamera::MarciCamera(), and Isis::ThemisVisCamera::ThemisVisCamera().

◆ SetFrameletRate()

void Isis::PushFrameCameraDetectorMap::SetFrameletRate ( const double  frameletRate)

Reset the frame rate.

Use this method to reset the time between framelets. Usually this will not need to be done unless the rate changes between bands.

Parameters
frameletRatethe time from the start of a framelet to the start of the next framlet.

◆ SetFrameletsGeometricallyFlipped()

void Isis::PushFrameCameraDetectorMap::SetFrameletsGeometricallyFlipped ( bool  frameletsFlipped)

Mirrors the each framelet in the file.

Use this method to change which direction the framelets are geometrically placed. If the first line in the framelet has been changed to the last line in the framelet, then this should be true (DEFAULT).

If not set, the default is true.

Parameters
frameletsFlippedIndicates whether each framelet is flipped over a horizontal axis

Referenced by Isis::LroWideAngleCamera::LroWideAngleCamera(), and Isis::MarciCamera::MarciCamera().

◆ SetParent() [1/2]

bool Isis::PushFrameCameraDetectorMap::SetParent ( const double  sample,
const double  line 
)
virtual

Compute detector position from a parent image coordinate.

This method will compute the detector position and framelet position from the parent line/sample coordinate. The parent line will be used to set the appropriate time in the parent camera.

Parameters
sampleSample number in the parent image
lineLine number in the parent image
Returns
bool conversion successful

Reimplemented from Isis::CameraDetectorMap.

◆ SetParent() [2/2]

bool Isis::PushFrameCameraDetectorMap::SetParent ( const double  sample,
const double  line,
const double  deltaT 
)
virtual

Compute detector position from a parent image coordinate.

This method will compute the detector position and framelet position from the parent line/sample coordinate. The parent line will be used to set the appropriate time in the parent camera.

Parameters
sampleSample number in the parent image
lineLine number in the parent image
deltaToffset from center time in seconds
Returns
bool conversion successful

Reimplemented from Isis::CameraDetectorMap.

References Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::p_parentSample, SetFramelet(), and Isis::CameraDetectorMap::SetParent().

◆ SetStartingDetectorLine()

void Isis::CameraDetectorMap::SetStartingDetectorLine ( const double  line)
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.

Parameters
lineStarting detector line

References Isis::CameraDetectorMap::p_startingDetectorLine.

Referenced by Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::JunoCamera::JunoCamera(), Isis::MdisCamera::MdisCamera(), and Isis::RosettaOsirisCamera::RosettaOsirisCamera().

◆ SetStartingDetectorSample()

◆ SetStartTime()

void Isis::PushFrameCameraDetectorMap::SetStartTime ( const double  etStart)

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.

Parameters
etStartstarting ephemeris time in seconds

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

◆ StartEphemerisTime()

double Isis::PushFrameCameraDetectorMap::StartEphemerisTime ( ) const

This returns the starting ET of this band.

Returns
double Starting time (often band-dependant)

◆ timeAscendingFramelets()

bool Isis::PushFrameCameraDetectorMap::timeAscendingFramelets ( )

Returns if the framelets are reversed from top-to-bottom.

Returns
bool if the framelets are reversed from top-to-bottom.

Referenced by Isis::PushFrameCameraGroundMap::SetGround().

◆ TotalFramelets()

int Isis::PushFrameCameraDetectorMap::TotalFramelets ( ) const

Return the total number of framelets including padding.

Returns
int The total number of framelets including padding

References Isis::CameraDetectorMap::LineScaleFactor(), Isis::CameraDetectorMap::p_camera, and Isis::Camera::ParentLines().

Referenced by Isis::PushFrameCameraGroundMap::SetGround().

Member Data Documentation

◆ p_camera

◆ p_detectorLine

◆ p_detectorLineSumming

◆ p_detectorSample

◆ p_detectorSampleSumming

◆ p_parentLine

◆ p_parentSample

◆ p_sl

◆ p_ss

◆ p_startingDetectorLine

double Isis::CameraDetectorMap::p_startingDetectorLine
protectedinherited

◆ p_startingDetectorSample

double Isis::CameraDetectorMap::p_startingDetectorSample
protectedinherited

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