ISIS 3 Application Documentation
Update camera pointing for a single image
Description
deltack can be used to correct isolated instances of problems with camera
attitude. It adjusts camera orientation in the labels of a single
Isis 3 cube (resection). Like jigsaw, it works on both framing cameras and
line scanners. The user must supply a latitude/longitude for at least one
sample/line coordinate in the image. Angles 1 and 2 of the camera orientation
stored in the cube labels will be adjusted to align the coordinate with the
entered latitude/longitude. To solve for all three camera angles, select the
TWIST option. A second coordinate point and desired latitude/longitude must
be entered if the TWIST option is used. deltack will adjust the
camera orientation to align both points with their corresponding
latitudes/longitudes with minimal residuals in sample and line. In order for
deltack to work properly, the input cube must have been initialized with
spiceinit using ATTACH="YES".
The camera pointing is updated using an iterative leastsquares bundle
adjustment. The number of iterations (MAXIT)and tolerance (SIGMA0)
for convergence are input parameters to deltack. Solving for two angles
only is similar to a translation of the image in sample and line. Solving for
the twist as well will result in both a translation and a rotation.
deltack creates a set of two output files for analyzing the results.
BUNDLEOUT.TXT provides an overall summary of the resection. It lists the
user input parameters selected and tables of statistics for both the image and
the point(s). RESIDUALS.CSV provides a table of the measured image
coordinates and the final sample, line, and overall residuals in both millimeters
and pixels.
Categories
Applications
History
Jeff Anderson  20060906 
Original version

Tracie Sucharski  20070502 
Added inclusion of TWIST to SAMP2,LINE2,LAT2,LON2,RAD2.
Without this inclusion, the AML was requiring these parameters
even if TWIST was false.

Debbie A. Cook  20070712 
Added pvl status report for a successful update.

Steven Koechle  20071005 
Added check to see if cube has existing polygon, if so delete it.

Debbie A. Cook  20110606 
Updated to current version of BundleAdjust class.

Debbie A. Cook  20110607 
Changed point type "Ground" to "Fixed".

Debbie A. Cook  20110928 
Updated documentation in response to Mantis issue #187.

Brent A. Archinal  20110930 
Updated documentation, mostly to indicate units.

Debbie A. Cook  20111004 
Added documentation for output files and removed creation of
output csv tables because the tables are not useful for
only one or two points. The information is already listed
in bundleout.txt.

Kimberly Oyama  20140328 
Added check for history group in input cube. If it's there, add a new entry. If not, add a
new history group. Added an app test. Fixes #1350.

Jeannie Backer  20140723 
Modified to create a bundle settings object for the bundle adjustment.

Ian Humphrey and Makayla Shepherd  20150901 
Changed code to accommodate changes in Sensor and Camera relationships.

Jeannie Backer  20160422 
Modified to use the FROM cube labels to set output control net's 'target instead of the TargetName.
Removed check for TargetName since this happens when the ControlNet target is set. References #3892

Jeannie Backer  20160818 
Removed deprecated parameter from call to BundleSettings::setSolveOptions. References #4162.


Parameter Groups
Files
Name

Description

FROM 
Input camera cube

Bundle Adjustment Options
Name

Description

SIGMA0  Standard deviation of unit weight 
MAXITS  Iterations 
TWIST  Solve for camera twist 
Fixed Points
Name

Description

SAMP1  Sample coordinate, point #1 
LINE1  Line coordinate, point #1 
LAT1  Latitude, point #1 
LON1  Longitude, point #1 
RAD1  Radius, point #1 
SAMP2  Sample coordinate, point #2 
LINE2  Line coordinate, point #2 
LAT2  Latitude, point #2 
LON2  Longitude, point #2 
RAD2  Radius, point #2 

Files:
FROM
Description
The file specification for the input cube. The cube will have its camera pointing
updated.
Type
 cube 
File Mode
 input 
Filter

*.cub

Bundle Adjustment Options:
SIGMA0
Description
Convergence is reached when the solution parameters change by less than Sigma0.
Units: unitless.
Type
 double 
Default
 1.0e10 
Bundle Adjustment Options:
MAXITS
Description
Maximum number of iterations
Bundle Adjustment Options:
TWIST
Description
In addition to angle1 and angle2, if this parameter is set the program will solve for
the camera twist. This requires input of a second fixed coordinate (SAMP2,LINE2) and
(LAT2,LON2)
Type
 boolean 
Default
 False 
Inclusions

 LINE2
 SAMP2
 LAT2
 LON2
 RAD2

Fixed Points:
SAMP1
Description
The sample coordinate for fixed point #1 (LAT1,LON1). Units:: pixels
Fixed Points:
LINE1
Description
The line coordinate for fixed point #1 (LAT1,LON1). Units:: pixels
Fixed Points:
LAT1
Description
Desired planetocentric latitude at the image coordinate (SAMP1,LINE1).
Units: degrees.
Type
 double 
Minimum
 90.0
(inclusive)

Maximum
 90.0
(inclusive)

Fixed Points:
LON1
Description
Desired east longitude at the image coordinate (SAMP1,LINE1).
Units: degrees
Type
 double 
Minimum
 0.0
(inclusive)

Maximum
 360.0
(inclusive)

Fixed Points:
RAD1
Description
Desired radius at the image coordinate (SAMP1,LINE1). It
will be automatically computed using the shape model that was
entered in the "spiceinit" application. Units: meters.
Type
 double 
Internal Default
 Computed 
Minimum
 0.0
(exclusive)

Fixed Points:
SAMP2
Description
The sample coordinate for fixed point #2 (LAT2,LON2). Units: pixels.
Fixed Points:
LINE2
Description
The line coordinate for fixed point #2 (LAT2,LON2). Units: pixels.
Fixed Points:
LAT2
Description
Planetocentric latitude at the image coordinate (SAMP2,LINE2).
Units: degrees.
Type
 double 
Minimum
 90.0
(inclusive)

Maximum
 90.0
(inclusive)

Inclusions


Fixed Points:
LON2
Description
Desired east longitude at the image coordinate (SAMP2,LINE2).
Units: degrees.
Type
 double 
Minimum
 0.0
(inclusive)

Maximum
 360.0
(inclusive)

Inclusions


Fixed Points:
RAD2
Description
Radius at the image coordinate (SAMP2,LINE2). It will be automatically computed using the
shape model that was initialized in the "spiceinit" application. Units: meters.
Type
 double 
Internal Default
 Computed 
Minimum
 0.0
(exclusive)

Inclusions

