USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::PushFrameCameraDetectorMap Class Reference

#include <PushFrameCameraDetectorMap.h>

Inheritance diagram for Isis::PushFrameCameraDetectorMap:

Inheritance graph
[legend]
Collaboration diagram for Isis::PushFrameCameraDetectorMap:

Collaboration graph
[legend]
List of all members.

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

For internal use only.

History:
2008-06-18 Steven Lambright Added documentation
History:
2008-10-23 Steven Lambright Added optimizations, fixed misc. bugs
History:
2009-03-07 Debbie A. Cook Removed reference to obsolute CameraDetectorMap methods
History:
2009-06-02 Steven Lambright Fixed framelet detection in the forward direction and inside framelet check in the reverse direction

Definition at line 49 of file PushFrameCameraDetectorMap.h.

Public Member Functions

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

Protected Attributes

Camerap_camera
double p_parentSample
double p_parentLine
double p_detectorLine
double p_detectorSample
double p_detectorSampleSumming
double p_detectorLineSumming
double p_startingDetectorSample
double p_startingDetectorLine
double p_ss
double p_sl

Private Attributes

double p_etStart
 Starting time at the top of the 1st parent line.
double p_exposureDuration
 Exposure duration in secs.
double p_frameletRate
 iTime between framelets in parent cube
int p_frameletHeight
 Height of a framelet in detector lines.
int p_bandStartDetector
 The first detector line of current band.
int p_frameletOffset
 The numner of framelets padding the top of the band.
int p_framelet
 The current framelet.
int p_nframelets
 If flipped framelets, the number of framelets in this band.
double p_frameletSample
 The sample in the current framelet.
double p_frameletLine
 The line in the current framelet.
bool p_flippedFramelets
 Is geometry in a framelet flipped.
bool p_timeAscendingFramelets
 Are framelets reversed from top-to-bottom in file.


Constructor & Destructor Documentation

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

Construct a detector map for push frame cameras.

Parameters:
parent The parent camera model for the detector map
etStart starting ephemeris time in seconds at the first framelet (not including padded framelets).
frameletRate the time in seconds between framelets
frameletHeight Physical height of framelet in lines (don't account for summing)

Definition at line 62 of file PushFrameCameraDetectorMap.h.

References p_bandStartDetector, p_etStart, p_exposureDuration, p_flippedFramelets, p_frameletHeight, p_frameletOffset, p_frameletRate, p_nframelets, and p_timeAscendingFramelets.

virtual Isis::PushFrameCameraDetectorMap::~PushFrameCameraDetectorMap (  )  [inline, virtual]

Destructor.

Definition at line 77 of file PushFrameCameraDetectorMap.h.


Member Function Documentation

double Isis::CameraDetectorMap::DetectorLine (  )  const [inline, inherited]

Return detector line.

Definition at line 67 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::p_detectorLine.

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

double Isis::CameraDetectorMap::DetectorSample (  )  const [inline, inherited]

Return detector sample.

Definition at line 64 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::p_detectorSample.

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

int Isis::PushFrameCameraDetectorMap::Framelet (  )  [inline]

This method returns the current framelet.

This framelet is calculated when SetParent is called.

Returns:
int The current framelet

Definition at line 143 of file PushFrameCameraDetectorMap.h.

References p_framelet.

int Isis::PushFrameCameraDetectorMap::frameletHeight (  )  const [inline]

This returns how many lines are considered a single framelet.

Returns:
int Number of lines in a framelet

Definition at line 223 of file PushFrameCameraDetectorMap.h.

References p_frameletHeight.

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

double Isis::PushFrameCameraDetectorMap::frameletLine (  )  const [inline]

This returns the calculated framelet line.

Returns:
double Current framelet line

Definition at line 216 of file PushFrameCameraDetectorMap.h.

References p_frameletLine.

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

int Isis::PushFrameCameraDetectorMap::FrameletOffset (  )  const [inline]

Return the frame offset.

Definition at line 129 of file PushFrameCameraDetectorMap.h.

References p_frameletOffset.

double Isis::PushFrameCameraDetectorMap::FrameletRate (  )  const [inline]

Return the time in seconds between framelets.

Definition at line 116 of file PushFrameCameraDetectorMap.h.

References p_frameletRate.

double Isis::PushFrameCameraDetectorMap::frameletSample (  )  const [inline]

This returns the calculated framelet sample.

Returns:
double Current framelet sample

Definition at line 209 of file PushFrameCameraDetectorMap.h.

References p_frameletSample.

int Isis::PushFrameCameraDetectorMap::GetBandFirstDetectorLine (  )  [inline]

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

Definition at line 158 of file PushFrameCameraDetectorMap.h.

References p_bandStartDetector.

virtual double Isis::CameraDetectorMap::LineRate (  )  const [inline, virtual, inherited]

Return the line collection rate (0 for framing cameras).

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

Definition at line 134 of file CameraDetectorMap.h.

virtual double Isis::CameraDetectorMap::LineScaleFactor (  )  const [inline, virtual, inherited]

Return scaling factor for computing line resolution.

Definition at line 129 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::p_detectorLineSumming.

Referenced by Isis::ControlPoint::ComputeErrors(), Isis::PushFrameCameraGroundMap::FindDistance(), Isis::Camera::LineResolution(), Isis::Odyssey::ThemisIrCamera::SetBand(), SetDetector(), SetParent(), and TotalFramelets().

double Isis::CameraDetectorMap::ParentLine (  )  const [inline, inherited]

Return parent line.

Definition at line 61 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::p_parentLine.

Referenced by Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().

double Isis::CameraDetectorMap::ParentSample (  )  const [inline, inherited]

Return parent sample.

Definition at line 58 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::p_parentSample.

Referenced by Isis::Camera::RawFocalPlanetoImage(), and Isis::Camera::SetRightAscensionDeclination().

virtual double Isis::CameraDetectorMap::SampleScaleFactor (  )  const [inline, virtual, inherited]

Return scaling factor for computing sample resolution.

Definition at line 124 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::p_detectorSampleSumming.

Referenced by Isis::ControlPoint::ComputeErrors(), and Isis::Camera::SampleResolution().

void Isis::PushFrameCameraDetectorMap::SetBandFirstDetectorLine ( int  firstLine  )  [inline]

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:
firstLine 

Definition at line 155 of file PushFrameCameraDetectorMap.h.

References p_bandStartDetector.

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

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:
sample Sample number in the detector
line Line number in the detector
Returns:
conversion successful

Reimplemented from Isis::CameraDetectorMap.

Definition at line 40 of file PushFrameCameraDetectorMap.cpp.

References Isis::CameraDetectorMap::LineScaleFactor(), p_bandStartDetector, Isis::CameraDetectorMap::p_detectorLine, Isis::CameraDetectorMap::p_detectorSample, p_flippedFramelets, p_framelet, p_frameletHeight, p_frameletLine, p_frameletSample, Isis::CameraDetectorMap::p_parentLine, and Isis::CameraDetectorMap::SetDetector().

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

void Isis::CameraDetectorMap::SetDetectorLineSumming ( const double  summing  )  [inline, inherited]

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.

Parameters:
summing Line summing mode

Definition at line 118 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::p_detectorLineSumming.

Referenced by Isis::Mro::HiriseCamera::HiriseCamera(), Cassini::IssNACamera::IssNACamera(), Cassini::IssWACamera::IssWACamera(), Isis::Lro::LroWideAngleCamera::LroWideAngleCamera(), Isis::Mro::MarciCamera::MarciCamera(), Isis::Mgs::MocNarrowAngleCamera::MocNarrowAngleCamera(), Galileo::SsiCamera::SsiCamera(), Isis::Odyssey::ThemisIrCamera::ThemisIrCamera(), and Isis::Odyssey::ThemisVisCamera::ThemisVisCamera().

void Isis::CameraDetectorMap::SetDetectorSampleSumming ( const double  summing  )  [inline, inherited]

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:
summing Sample summing mode

Definition at line 104 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::p_detectorSampleSumming.

Referenced by Isis::Mro::CTXCamera::CTXCamera(), Isis::Mro::HiriseCamera::HiriseCamera(), Isis::Mex::HrscCamera::HrscCamera(), Cassini::IssNACamera::IssNACamera(), Cassini::IssWACamera::IssWACamera(), Isis::Lro::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::Lro::LroWideAngleCamera::LroWideAngleCamera(), Isis::Mro::MarciCamera::MarciCamera(), Isis::Mgs::MocNarrowAngleCamera::MocNarrowAngleCamera(), Galileo::SsiCamera::SsiCamera(), Isis::Odyssey::ThemisIrCamera::ThemisIrCamera(), and Isis::Odyssey::ThemisVisCamera::ThemisVisCamera().

void Isis::PushFrameCameraDetectorMap::SetExposureDuration ( double  exposureDuration  )  [inline]

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:
exposureDuration 

Definition at line 99 of file PushFrameCameraDetectorMap.h.

References p_exposureDuration.

void Isis::PushFrameCameraDetectorMap::SetFlippedFramelets ( bool  frameletsFlipped,
int  nframelets 
) [inline]

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.

Parameters:
frameletsFlipped False if framelets flipped
nframelets Number of framelets in each band, ignored if frameletsFlipped is set to false

Definition at line 170 of file PushFrameCameraDetectorMap.h.

References p_nframelets, and p_timeAscendingFramelets.

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

void Isis::PushFrameCameraDetectorMap::SetFramelet ( int  framelet  ) 

This method changes the current framelet.

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

Parameters:
framelet Current Framelet

Definition at line 137 of file PushFrameCameraDetectorMap.cpp.

References Isis::CameraDetectorMap::p_camera, p_etStart, p_exposureDuration, p_framelet, p_frameletOffset, p_frameletRate, p_nframelets, p_timeAscendingFramelets, and Isis::Sensor::SetEphemerisTime().

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

void Isis::PushFrameCameraDetectorMap::SetFrameletOffset ( int  frameletOffset  )  [inline]

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:
frameletOffset Number of frames offset in cube

Definition at line 126 of file PushFrameCameraDetectorMap.h.

References p_frameletOffset.

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

void Isis::PushFrameCameraDetectorMap::SetFrameletRate ( const double  frameletRate  )  [inline]

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:
frameletRate the time in seconds between framelets

Definition at line 113 of file PushFrameCameraDetectorMap.h.

References p_frameletRate.

void Isis::PushFrameCameraDetectorMap::SetGeometricallyFlippedFramelets ( bool  frameletsFlipped  )  [inline]

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

Parameters:
frameletsFlipped True if geometric flip in the framelet

Definition at line 183 of file PushFrameCameraDetectorMap.h.

References p_flippedFramelets.

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

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:
sample Sample number in the parent image
line Line number in the parent image
Returns:
conversion successful

Reimplemented from Isis::CameraDetectorMap.

Definition at line 95 of file PushFrameCameraDetectorMap.cpp.

References Isis::CameraDetectorMap::LineScaleFactor(), p_bandStartDetector, Isis::CameraDetectorMap::p_detectorLine, p_flippedFramelets, p_frameletHeight, p_frameletLine, p_frameletSample, Isis::CameraDetectorMap::p_parentLine, Isis::CameraDetectorMap::p_parentSample, SetFramelet(), and Isis::CameraDetectorMap::SetParent().

void Isis::CameraDetectorMap::SetStartingDetectorLine ( const double  line  )  [inline, inherited]

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:
line Starting detector line

Definition at line 90 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::p_startingDetectorSample.

void Isis::CameraDetectorMap::SetStartingDetectorSample ( const double  sample  )  [inline, inherited]

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.

Parameters:
sample Starting detector sample

Definition at line 77 of file CameraDetectorMap.h.

References Isis::CameraDetectorMap::Compute(), and Isis::CameraDetectorMap::p_startingDetectorSample.

Referenced by Isis::Mro::CTXCamera::CTXCamera(), Isis::Mro::HiriseCamera::HiriseCamera(), Isis::Lro::LroNarrowAngleCamera::LroNarrowAngleCamera(), and Isis::Mgs::MocNarrowAngleCamera::MocNarrowAngleCamera().

void Isis::PushFrameCameraDetectorMap::SetStartTime ( const double  etStart  )  [inline]

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:
etStart starting ephemeris time in seconds

Definition at line 89 of file PushFrameCameraDetectorMap.h.

References p_etStart.

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

double Isis::PushFrameCameraDetectorMap::StartEphemerisTime (  )  const [inline]

This returns the starting ET of this band.

Returns:
double Starting time (often band-dependant)

Definition at line 193 of file PushFrameCameraDetectorMap.h.

References p_etStart.

int Isis::PushFrameCameraDetectorMap::TotalFramelets (  )  const [inline]

Return the total number of framelets including padding.

Returns:
int

Definition at line 200 of file PushFrameCameraDetectorMap.h.

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

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


Member Data Documentation

int Isis::PushFrameCameraDetectorMap::p_bandStartDetector [private]

The first detector line of current band.

Definition at line 232 of file PushFrameCameraDetectorMap.h.

Referenced by GetBandFirstDetectorLine(), PushFrameCameraDetectorMap(), SetBandFirstDetectorLine(), SetDetector(), and SetParent().

double Isis::PushFrameCameraDetectorMap::p_etStart [private]

Starting time at the top of the 1st parent line.

Definition at line 228 of file PushFrameCameraDetectorMap.h.

Referenced by PushFrameCameraDetectorMap(), SetFramelet(), SetStartTime(), and StartEphemerisTime().

double Isis::PushFrameCameraDetectorMap::p_exposureDuration [private]

Exposure duration in secs.

Definition at line 229 of file PushFrameCameraDetectorMap.h.

Referenced by PushFrameCameraDetectorMap(), SetExposureDuration(), and SetFramelet().

bool Isis::PushFrameCameraDetectorMap::p_flippedFramelets [private]

Is geometry in a framelet flipped.

Definition at line 240 of file PushFrameCameraDetectorMap.h.

Referenced by PushFrameCameraDetectorMap(), SetDetector(), SetGeometricallyFlippedFramelets(), and SetParent().

int Isis::PushFrameCameraDetectorMap::p_framelet [private]

The current framelet.

Definition at line 234 of file PushFrameCameraDetectorMap.h.

Referenced by Framelet(), SetDetector(), and SetFramelet().

int Isis::PushFrameCameraDetectorMap::p_frameletHeight [private]

Height of a framelet in detector lines.

Definition at line 231 of file PushFrameCameraDetectorMap.h.

Referenced by frameletHeight(), PushFrameCameraDetectorMap(), SetDetector(), SetParent(), and TotalFramelets().

double Isis::PushFrameCameraDetectorMap::p_frameletLine [private]

The line in the current framelet.

Definition at line 238 of file PushFrameCameraDetectorMap.h.

Referenced by frameletLine(), SetDetector(), and SetParent().

int Isis::PushFrameCameraDetectorMap::p_frameletOffset [private]

The numner of framelets padding the top of the band.

Definition at line 233 of file PushFrameCameraDetectorMap.h.

Referenced by FrameletOffset(), PushFrameCameraDetectorMap(), SetFramelet(), and SetFrameletOffset().

double Isis::PushFrameCameraDetectorMap::p_frameletRate [private]

iTime between framelets in parent cube

Definition at line 230 of file PushFrameCameraDetectorMap.h.

Referenced by FrameletRate(), PushFrameCameraDetectorMap(), SetFramelet(), and SetFrameletRate().

double Isis::PushFrameCameraDetectorMap::p_frameletSample [private]

The sample in the current framelet.

Definition at line 237 of file PushFrameCameraDetectorMap.h.

Referenced by frameletSample(), SetDetector(), and SetParent().

int Isis::PushFrameCameraDetectorMap::p_nframelets [private]

If flipped framelets, the number of framelets in this band.

Definition at line 235 of file PushFrameCameraDetectorMap.h.

Referenced by PushFrameCameraDetectorMap(), SetFlippedFramelets(), and SetFramelet().

bool Isis::PushFrameCameraDetectorMap::p_timeAscendingFramelets [private]

Are framelets reversed from top-to-bottom in file.

Definition at line 241 of file PushFrameCameraDetectorMap.h.

Referenced by PushFrameCameraDetectorMap(), SetFlippedFramelets(), SetFramelet(), and timeAscendingFramelets().


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