ISIS Documentation

cam2cam

Project a camera image to a different camera image

The cam2cam program projects the FROM cube into the "camera space" (i.e. geometry) of the MATCH cube. Both cubes (ISIS level0 or level1) must see the same target. Each requires SPICE data and should be processed with spiceinit prior to running cam2cam.

Each MATCH cube pixel with a valid LAT/LON is checked for a corresponding LAT/LON target body intercept in the FROM cube. If the corresponding FROM cube pixel either does not intercept the target body or is occluded, it is set to NULL in the TO cube. If the corresponding FROM cube pixel does intercept the target body, interpolation (as determined by INTERP) is applied to the FROM cube pixel to calculate the output TO cube pixel DN. This process employs the rigorous application of the FROM and MATCH cube camera distortion models and ray tracing from instrument to target body.

As an example, given overlapping Mars Global Surveyor MOC and Mars Odyssey Themis cubes, cam2cam can convert the MOC image to have the same geometric camera characteristics as the Themis cube (or vice versa). Another application is to align independent bands in a camera cube. For example, a raw Themis cube (after thm2isis) will not have aligned pixels. cam2cam can be used to align the pixels without going to a map projection. To prevent pixels from falling off the edge of the cube, run pad on the cube prior to cam2cam.

The OFFBODY parameter allows for the projection of off-body data using RA/DEC (right ascension/declination) coordinates in the MATCH image. OFFBODY is FALSE by default to preserve existing cam2cam behavior. If OFFBODY is TRUE and projection with LAT/LON coordinates fails, then it is reattempted with RA/DEC coordinates. If the RA/DEC in the MATCH image exists in the FROM image, interpolation is used to calculate the output TO cube pixel DN. It may occur that the FROM image RA/DEC coordinates will also intercept the target body in the FROM cube. This would result in the assignment of an invalid LAT/LON in the TO cube. OFFBODYTRIM=TRUE prevents this by instead assigning NULL to the output pixel.

The projection of off-body pixels has proven valuable for example in the analysis of particles in orbit around the asteroid 101955 Bennu. See for example...

Hergenrother, C.W. et al. (2020). Photometry of Particles Ejected from Active Asteroid (101955) Bennu, JGR Planets, 125, e2020JE006381 doi:10.1029/2020JE006381


Categories


Related Applications to Previous Versions of ISIS

This program replaces the following application existing in previous versions of ISIS:
  • lev1tolev1

Related Objects and Documents

Applications


History

Jeff Anderson2000-05-10 Original version
Jeff Anderson2004-01-19 Converted to Isis 3.0
Jacob Danton2005-12-05 Added an appTest.
Elizabeth Miller2006-03-23 Fixed appTest to reflect changes in all camera models
Debbie A. Cook2007-06-21 Corrected setting of output file labels so that the Spice comes from the match cube and not the input cube
Steven Lambright2007-06-22 Fixed typo in documentation
Steven Lambright2008-01-23 Fixed an access on an invalid pointer that caused segmentation faults on cubes in which the camera is band-dependant.
Jeff Anderson2008-02-12 Fixed problems with reference bands on band-dependent instruments
Steven Lambright2008-05-12 Removed references to CubeInfo
Jesse Mapel2018-05-17 Changed transform to use the local radius computed by the output camera instead of having the input camera re-compute it (sometimes incorrectly) from the latitude and longitude. Fixes #5425.
Kris Becker2019-01-16 Add option to also project off-body pixels
Kris Becker2019-01-28 Add option to also project off-body pixels as well as trim pixels in this mode that may result in duplicate views of the target body. See OFFBODY and OFFBODYTRIM.
Sarah Sutton2024-01-05 Incorporated Kris Becker's keyword additions OFFBODY and OFFBODYTRIM of 1/16/2019 and 1/28/2019 from UofA codebase to Astrogeology. Added examples and updated documentation.
Kris Becker2024-10-28 OFFBODYTRIM should default to true for proper behavior. Added a standalone mapper algorithm to more easily tests these changes.
Ken Edmundson2024-12-08 Updated examples and documentation addressing OFFBODY and OFFBODYTRIM parameters. Addresses #3602.