USGS

Isis 3.0 Application Source Code Reference

Home

PixelOffset Class Reference

#include <PixelOffset.h>

List of all members.


Detailed Description

Obtain rotation angles for a line scan camera pixel offsets.

This class will obtain the rotation from existing camera pointing to "corrected" camera pointing calculated from a table of pixel offsets and time (sample line et)

This class was created to calculate the rotation matrix needed to remove jitter from a hirise image based on the table of offsets.

Author:
2008-08-20 Debbie A. Cook

Definition at line 52 of file PixelOffset.h.

Public Member Functions

 PixelOffset (const std::string &tableList, double fl, double pixPitch, double baseTime, double timeScale, int degree)
 Construct a Pixel Offset class loading the offsets in the input file into the offset caches.
virtual ~PixelOffset ()
 Destructor.
void LoadAngles (std::vector< double > cacheTime)
 Cache J2000 rotation quaternion over a time range.
void Interp ()
 Compute cubic interpolation for current time et.
void SetPolynomial ()
 Set the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = a + bt + ct**2, where t = (time - p_baseTime)/ p_timeScale.
void SetEphemerisTime (const double et)
 Compute the angular equivalents for the offsets at a given time.
std::vector< double > SetEphemerisTimeHPF (const double et)
 Set ephemeris time for the high pass filtered rotation from the instrument frame to the true (corrected) instrument frame.
double WrapAngle (double compareAngle, double angle)
 Wrap the input angle to keep it within 2pi radians of the angle to compare.


Constructor & Destructor Documentation

PixelOffset ( const std::string &  tableList,
double  fl,
double  pixPitch,
double  baseTime,
double  timeScale,
int  degree 
)

Construct a Pixel Offset class loading the offsets in the input file into the offset caches.

Parameters:
tableList Ascii table list of sample, line offsets and their corresponding time.
fl Focal length of instrument in mm.
pixpitch Pixel pitch of instrument in mm/pixel.

Definition at line 28 of file PixelOffset.cpp.

virtual ~PixelOffset (  )  [inline, virtual]

Destructor.

Definition at line 59 of file PixelOffset.h.


Member Function Documentation

void LoadAngles ( std::vector< double >  cacheTime  ) 

Cache J2000 rotation quaternion over a time range.

This method will load an internal cache with frames over a time range. This prevents the NAIF kernels from being read over-and-over again and slowing an application down due to I/O performance. Once the cache has been loaded then the kernels can be unloaded from the NAIF system.

Parameters:
startTime Starting ephemeris time in seconds for the cache
endTime Ending ephemeris time in seconds for the cache
size Number of frames to keep in the cache

Definition at line 182 of file PixelOffset.cpp.

void Interp (  ) 

Compute cubic interpolation for current time et.

void SetPolynomial (  ) 

Set the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = a + bt + ct**2, where t = (time - p_baseTime)/ p_timeScale.

< Basis function fit to 1st rotation angle

< Basis function fit to 2nd rotation angle

Definition at line 208 of file PixelOffset.cpp.

void SetEphemerisTime ( const double  et  ) 

Compute the angular equivalents for the offsets at a given time.

This method computes the angular equivalents in radians for the offsets at a given et in seconds. The pixel offsets are interpolated from the offsets input in the table using a cubic interpolation and converted to angles based on the focal length and the pixel pitch.

Parameters:
et ephemeris time in seconds

Definition at line 89 of file PixelOffset.cpp.

std::vector< double > SetEphemerisTimeHPF ( const double  et  ) 

Set ephemeris time for the high pass filtered rotation from the instrument frame to the true (corrected) instrument frame.

[TC] = [angle2 - Pangle2(t)] [angle1 - Pangle1(t)] 2 1 where t = (time - p_baseTime) / p_timeScale, and n = p_degree.

Parameters:
[in] et Ephemeris time

Definition at line 270 of file PixelOffset.cpp.

double WrapAngle ( double  compareAngle,
double  angle 
)

Wrap the input angle to keep it within 2pi radians of the angle to compare.

Parameters:
[in] compareAngle 
[in] angle Angle to be wrapped if needed
Returns:
double Wrapped angle

Definition at line 318 of file PixelOffset.cpp.


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