USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::ApolloPanIO Class Reference

Calculates a series of affine transformations from the measured coordinates of the up to 90 fiducial marks on a complete (stiched) apollo panoramic cube. More...

#include <ApolloPanIO.h>

Collaboration diagram for Isis::ApolloPanIO:
Collaboration graph

Classes

struct  Affine2D
 
struct  FidObs
 C Style structure for storing measured fiducial coorinates. More...
 

Public Member Functions

 ApolloPanIO ()
 Constructs an ApolloPanIO object.
 
 ~ApolloPanIO ()
 Destroys the ApolloPanObject.
 
void initialize ()
 Initilizes member vairables in preparation for solving for the interior orientation affines.
 
int fiducialObservation (int fiducialNumber, double machine_x, double machine_y)
 This method adds a measurement of the center of an apollo panoramic image fiducial mark for consideration in calculation of the image interior orienation.
 
int clearFiducialObservation (int fiducialNumber)
 This method removes a measurement of the center of an apollo panoramic image fiducial mark from consideration in calculation of the image interior orienation.
 
int computeInteriorOrienation ()
 This method leverages all the fiducial obersatvions to caculate a series of affine transformations for cube (machine) space into image space.
 
int machine2Image (double *machineX, double *machineY)
 This method does an in place (overwriting input) conversion of a cube coordinate (sample, line) into image coordinates Call after computeInteriorOrienation()
 
int machine2Image (double machineX, double machineY, double *imageX, double *imageY)
 This method does a conversion of a cube coordinates (sample, line) into image coordinates Call after computeInteriorOrienation()
 
int image2Machine (double *imageX, double *imageY)
 This method does an in place (overwriting input) conversion of an image coordinate into cube (machine) coordinates (sample, line) Call after computeInteriorOrienation()
 
int image2Machine (double imageX, double imageY, double *machineX, double *machineY)
 This method does a conversion of an image coordinates to a cube (sample, line) coordinates.
 
double stdevResiduals ()
 Accessor for the standard deviation of the residual vector lenghts Call after computeInteriorOrienation() and calc_residual_stats()
 
double meanResiduals ()
 Accessor for the mean (average) of the residual vector lenghts Call after computeInteriorOrienation() and calc_residual_stats()
 
double maxResiduals ()
 Accessor for the mean (average) of the residual vector lenghts Call after computeInteriorOrienation() and calc_residual_stats()
 

Private Types

typedef struct
Isis::ApolloPanIO::Affine2D 
Affine2D
 
typedef struct
Isis::ApolloPanIO::FidObs 
FidObs
 C Style structure for storing measured fiducial coorinates.
 

Private Member Functions

void calc_residual_stats ()
 This method calculates summary statistics for the residual vector lenths for all measured fiducial marks.
 

Private Attributes

Affine2D affines [44]
 
FidObs obs [90]
 
int n
 
double maxR
 maximum residual vector length
 
double meanR
 mean of residual vector lenghts
 
double stdevR
 standard deviation of residual vector lengths
 

Detailed Description

Calculates a series of affine transformations from the measured coordinates of the up to 90 fiducial marks on a complete (stiched) apollo panoramic cube.

Description: The 90 Fiducial marks effectively divide a complete (stitched) apollo panormaic cube into 44 rectangular regions. 42 of these represent the same period of time, T, the center two are 0.5T. This class uses up to 44 2 dimensional affine transformations linked together with first order continuity conditions at the boundaries to enforce consistent line scan durations and correct warping in the film.

Author
2011-09-19 Orrin Thomas
History:

2011-09-19 Orrin Thomas - Original version

2012-07-10 Orrin Thomas - Updated to current coding standards

Definition at line 56 of file ApolloPanIO.h.

Member Typedef Documentation

C Style structure for storing measured fiducial coorinates.

Constructor & Destructor Documentation

Isis::ApolloPanIO::ApolloPanIO ( )

Constructs an ApolloPanIO object.

Definition at line 18 of file ApolloPanIO.cpp.

Isis::ApolloPanIO::~ApolloPanIO ( )

Destroys the ApolloPanObject.

Definition at line 23 of file ApolloPanIO.cpp.

Member Function Documentation

void Isis::ApolloPanIO::calc_residual_stats ( )
private

This method calculates summary statistics for the residual vector lenths for all measured fiducial marks.

Call after computeInteriorOrienation()

Definition at line 693 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::clearFiducialObservation ( int  fiducialNumber)

This method removes a measurement of the center of an apollo panoramic image fiducial mark from consideration in calculation of the image interior orienation.

Parameters
fiducialNumberthe index of the fiducial mark [0,89], see ApolloPanIO.h documnetation for the numbering sequence
Returns
1 success
-1 failure, fiducial index invalid

Definition at line 126 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::computeInteriorOrienation ( )

This method leverages all the fiducial obersatvions to caculate a series of affine transformations for cube (machine) space into image space.

The quality of solution can be accessed using the residual stats accessors.

Returns
1 success
-1 failure, insufficient fiducial measurements

affines[i].mI = pt2[0]*affines[i].rotI[0] + pt2[1]*affines[i].rotI[1];

Definition at line 146 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::fiducialObservation ( int  fiducialNumber,
double  machineX,
double  machineY 
)

This method adds a measurement of the center of an apollo panoramic image fiducial mark for consideration in calculation of the image interior orienation.

Parameters
fiducialNumberthe index of the fiducial mark [0,89], see ApolloPanIO.h documnetation for the numbering sequence
machineXThe x coordinate (sample) of the fiducial mark in cube space
machineYThe y coordinate (line) of the fiducial mark in cube space
Returns
1 success
-1 failure, fiducial index invalid, or coordinates too large

Definition at line 82 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::image2Machine ( double *  imageX,
double *  imageY 
)

This method does an in place (overwriting input) conversion of an image coordinate into cube (machine) coordinates (sample, line) Call after computeInteriorOrienation()

Parameters
imageXThe x coordinate (sample) of in image space cube space overwriten with the cube (machine) sample coordinate
imageYThe y coordinate of in image space overwriten with the cube machine sample coordinate
Returns
1 success
-1 failure, machine coordinate not within the image

Definition at line 615 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::image2Machine ( double  imageX,
double  imageY,
double *  machineX,
double *  machineY 
)

This method does a conversion of an image coordinates to a cube (sample, line) coordinates.

Call after computeInteriorOrienation()

Parameters
machineXInput, the x coordinate (sample) in cube space
machineYINput, the y coordinate (line) in cube space
machineXOutput, the x coordinate (sample) in cube space
machineYOutput, the y coordinate (line) in cube space
Returns
1 success
-1 failure, y coordinate to be converted is too small, it is not within the domain of the image machine space
-2 failure, y coordinate to be converted is too large, it is not within the domain of the image machine space
0 failure, coordinate not within domain of the affines
1 successful conversion

Definition at line 668 of file ApolloPanIO.cpp.

void Isis::ApolloPanIO::initialize ( )

Initilizes member vairables in preparation for solving for the interior orientation affines.

Definition at line 28 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::machine2Image ( double *  machineX,
double *  machineY 
)

This method does an in place (overwriting input) conversion of a cube coordinate (sample, line) into image coordinates Call after computeInteriorOrienation()

Parameters
machineXThe x coordinate (sample) in cube space overwriten with the image coordinate
machineYThe y coordinate (line) in cube space overwriten with the image coordinate
Returns
1 success
-1 failure, machine coordinate not within the image

Definition at line 532 of file ApolloPanIO.cpp.

int Isis::ApolloPanIO::machine2Image ( double  machineX,
double  machineY,
double *  imageX,
double *  imageY 
)

This method does a conversion of a cube coordinates (sample, line) into image coordinates Call after computeInteriorOrienation()

Parameters
machineXInput, the x coordinate (sample) in cube space
machineYInput, the y coordinate (line) in cube space
machineXOutput, the x coordinate (sample) in cube space
machineYOutput, the y coordinate (line) in cube space
Returns
1 success
-1 failure, y coordinate to be converted is too small, it is not within the domain of the image machine space
-2 failure, y coordinate to be converted is too large, it is not within the domain of the image machine space
0 failure, coordinate not within domain of the affines
1 successful conversion

Definition at line 585 of file ApolloPanIO.cpp.

double Isis::ApolloPanIO::maxResiduals ( )

Accessor for the mean (average) of the residual vector lenghts Call after computeInteriorOrienation() and calc_residual_stats()

Returns
-1 value not yet calculated

Definition at line 763 of file ApolloPanIO.cpp.

Referenced by Isis::ApolloPanoramicDetectorMap::maxResidual().

double Isis::ApolloPanIO::meanResiduals ( )

Accessor for the mean (average) of the residual vector lenghts Call after computeInteriorOrienation() and calc_residual_stats()

Returns
-1 value not yet calculated

Definition at line 752 of file ApolloPanIO.cpp.

Referenced by Isis::ApolloPanoramicDetectorMap::meanResidual().

double Isis::ApolloPanIO::stdevResiduals ( )

Accessor for the standard deviation of the residual vector lenghts Call after computeInteriorOrienation() and calc_residual_stats()

Returns
-1 value not yet calculated

Definition at line 740 of file ApolloPanIO.cpp.

Referenced by Isis::ApolloPanoramicDetectorMap::stdevResidual().

Member Data Documentation

double Isis::ApolloPanIO::maxR
private

maximum residual vector length

Definition at line 88 of file ApolloPanIO.h.

double Isis::ApolloPanIO::meanR
private

mean of residual vector lenghts

Definition at line 90 of file ApolloPanIO.h.

double Isis::ApolloPanIO::stdevR
private

standard deviation of residual vector lengths

Definition at line 92 of file ApolloPanIO.h.


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