User Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Contributor Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Quick Links

Software Manual
API Reference

Documentation Versions

Public Release


Technical Documents

ISIS Application Documentation


Printer Friendly View | TOC | Home

Update camera pointing (SPICE) on a single cube

Overview Parameters


This program will update the camera pointing (CK) in the labels of a Level1 cube using a map projected, Level2 "Base" cube to determine the latitude/longitude of control points. Angles 1 and 2 of the camera pointing stored in the cube labels will be adjusted to align the coordinate of each sample/line from the "Match" level 1 cube with the latitude/longitude from the "Base" map projected cube. To solve for all three camera angles select the TWIST radio button in the Qtie Tool window. At least two control points will need to be selected for the TWIST option.

The application will adjust the camera angles to align all control points with the latitude/longitude values from the "Base" cube with minimal errors using an iterative least-squares bundle adjustment. The number of iterations and tolerance (sigma0) for convergence can be selected from the Qtie Tool window. Solving for two angles only is similar to a translation of the image. Solving for twist will result in both a translation and a rotation of the image.

This is the interactive version of the program "deltack". Like "jigsaw" and "deltack", it works on both framing cameras and line scanners. Note that only the camera pointing is solved for with qtie and deltack (solving for radius and spacecraft position are not options with these applications, refer to jigsaw for more options).

To run qtie, you will enter a base map cube (map projected) and a match cube (unprojected) which will be the cube which will have the camera pointing updated. The unprojected match cube must have been initialized with the "spiceinit" program using ATTACH="YES". Optionally, an existing control network containing control points between the "Match" cube and a basemap, may be entered.

There are 2 core windows used in this application.

Qtie window

The main qtie window is similar to the qview application. You will see many of the same tools, such as "Band Selection", "Zoom", "Pan", "Stretch" and "Find" along the right border. The "Tie" tool is the last button along the right toolbar. It will be the default tool selected when qtie is launched.

In this window, select the "Open images" button or the Open action (from File menu). You will be prompted to enter the base map cube first followed by the level 1 (unprojected) cube to be tied to the base map. You then have the option of opening an existing control network which has control points between the "Match" cube and a basemap. Click the "Cancel" button to create a new control points.

When the "Tie" tool is activated, the mouse buttons have the following function in the cube viewports of the main qtie window:
(Note: Mouse events will only work on the "Match" cube)
  • Left Button: Modify the closest control point
  • Middle Button: Delete the closest control point
  • Right Button: Create new control point

Qtie Tool window

This is the point editor window of qtie for modifying or creating a point. The window will display the cube that is the base map on the left and the level 1 cube on the right. Both measures ("Base" and "Match") may be moved.

Changing Measure Locations

The measure location can be adjusted by:

  • Move the cursor location under the crosshair by clicking the left mouse button
  • Move 1 pixel at a time by using arrow keys on the keyboard, or using arrow buttons located above the measure views

Other point editor functions

In the File menu:

  • Save Control Network As Save the ground points in a control network.
  • Close Close the Tie Point Tool.

In the Options menu:

  • Registration Set or view and save registration templates.

Along the top of the window:

  • Twist Turning off twist will solve for right ascension and declination only which is a translation of the image. Solving for twist includes both translation and rotation.
  • Maximum Iterations Maximum number of iterations to try for convergence to tolerance before stopping.
  • Sigma0 Standard deviation of unit weight. Solution converges on stabilization

Along the right border of the window:

  • Geom: Geometrically match the right view to the left view
  • Rotate: Rotate the right view using either the dial or entering degrees
  • Show control points: Draw crosshairs at all control point locations visible within the view
  • Show crosshair: Show a red crosshair across the entire view
  • Circle Draw circle which may help center measure on a crater

Below the left view:

  • Blink controls: Blink the left and right view in the left view window using the "Blink Start" button (with play icon) and "Blink Stop" button (with stop icon). Both arrow keys above the right view and the keyboard arrow keys may be used to move the right view while blinking.
  • Find: Center the right view so that the same latitude / longitude is under the crosshair as the left view. Shortcut: F

Below the right view:

  • Register: Sub-pixel register the right view to the left view. Shortcut: R
  • Undo Registration: Undo the sub-pixel registration. Shortcut: U
  • Save Measure: Save the control measure under the right view to the edit control point. Shortcut: M

Along the bottom:

  • Solve Attempt the bundle solution using the control points picked with the given input parameters such as Twist, Maximum Iterations and Sigma0. If the solution converges, a window will be displayed showing the bundle adjustment results. The option is given to update the camera pointing on the labels of the "Match" cube.
  • Once the camera pointing labels have been updated (Match cube labels), there are various ways to evaluate the results. The 'Find' tool with the "Match" cube and "Base" cube can give a visual indication how correlated the features are between the two images. The updated "Match" cube can be projected to a map projection (cam2map), the projected result can then be displayed with other reference images (for example, the "Base" image) in qview. If the results of the updated "Match" cube are unsatisfactory, the original 'CK/camera pointing' can recovered by re-running spiceinit on the "Match" cube.



Tracie Sucharski2008-12-03 Original version
Tracie Sucharski2008-12-30 Add option to save ground points to a ControlNet.
Tracie Sucharski2008-01-20 Correct user documentation in qtie.xml.
Tracie Sucharski2009-06-10 Added error checking when opening files and allow new files to be opened.
Eric Hyer2010-03-22 Discontinued forcing of gui style to windows
Tracie Sucharski2011-09-15 Updated for binary control networks.
Tracie Sucharski2011-10-05 Updated documentation with input from Tammy Becker.
Tracie Sucharski2011-10-12 Added links to definitions and made corrections to documentation based on suggestions from Trent Hare.
Tracie Sucharski2012-05-15 Fixed bug when opening new sets of files (base,match,cnet). Moved error checking from QtieTool to QtieFileTool.
Tracie Sucharski2013-05-16 Fixed bugs when attempting to delete a point in an empty network, deleting all measures in a point. Fixed repetitive warnings when the current edit point does not fall on the ground source. References #1493.
Ian Humphrey2015-10-07 Updated icons. Fixes #1041.
Ian Humphrey2015-11-19 Added shortcuts to Qtie Tool window for selecting right measures, registration, saving measures, and find. Fixes #2324.
Marjorie Hahn2016-08-02 Prevented qtie from crashing when user attempts to select a registration template. Fixes #2375.
Jeannie Backer2016-08-18 Modified to use the CholMod sparse decomposition matrix solve method instead of the "SpecialK" solve method (deprecated). Results are expected to be identical. References #4162.
Tyler Wilson2016-10-19 Cleaned up heap allocated objects after the program returns in the main function of qtie.cpp. This was not being done before like it is in other qisis apps such as qnet and qview, and was causing a segfault due to the new Qt5 libraries IPCE uses. Fixes #4471.