cam2map
Convert camera image to a map projection
If you only entered the input cube (FROM) and output cube (TO) and changed no other parameters, the following are the defaults for the Mapping group. Note: this is the PVL format you'll see in both the level2 ISIS cube header and the MAP file:
Group = Mapping TargetName = "Obtained from the Instrument group" EquatorialRadius = "Obtained from TargetAttitudeShape kernel" PolarRadius = "Obtained from TargetAttitudeShape kernel" LatitudeType = Planetocentric LongitudeDirection = PositiveEast LongitudeDomain = 360 (Could be automatically adjusted to 180 by LONSEAM) MinimumLatitude = "Computed from the input camera cube" MaximumLatitude = "Computed from the input camera cube" MinimumLongitude = "Computed from the input camera cube" MaximumLongitude = "Computed from the input camera cube" ProjectionName = Sinusoidal CenterLongitude = "Average of MinimumLongitude and MaximumLongitude" PixelResolution = "Computed from the input camera cube" EndGroup
If you need to generate your own map file you can use the maptemplate program, or alternatively, hand create a file using any text editor. The file need only specify the ProjectionName, as defaults will be computed for the remaining map file parameters. The following table indicates how the defaults are established:
PARAMETER | DEFAULT |
TargetName | Read from Instrument group in the input cube labels |
EquatorialRadius
PolarRadius |
Read from SPICE PCK file set during spiceinit. The PCK file is defined in the Kernels group via the TargetAttitudeShape keyword |
LatitudeType | Planetocentric |
LongitudeDirection | PositiveEast |
LongitudeDomain | Normally 360 (0-360). However, if the 180 (-180,180) domain definition creates a smaller projected cube, then use it instead. |
MinimumLatitude
MaximumLatitude MinimumLongitude MaximumLongitude |
Computed from the input cube or read from the map file. However, any combination of the four values can then be overridden by the user. The values the user specifies are expected to be in the coordinate system of the projection. |
PixelResolution
Scale |
Computed from the input cube or read from the map file. The value can be overridden by the user. |
Alternatively, the map file can be an existing map projected (level2) cube. A level2 cube has PVL labels and contains the Mapping group. Depending on the values of the input parameters, the output cube can use some or all of the keyword values of the map file. For instance, setting MATCHMAP=yes causes all of the mapping parameters to come from the map file, resulting in an output cube having the same number of lines and samples as the map file. If MATCHMAP=yes and the map file is missing a keyword like PixelResolution, the application will fail with a PVL error. Setting MATCHMAP=no allows for some of the mapping components to be overridden by the user or computed from the FROM cube.
If you are attempting to construct a mosaic, it is essential that the PixelResolution, EquatorialRadius, PolarRadius, LatitudeType, LongitudeDirection, LongitudeDomain, ProjectionName, and projection specific parameters (e.g., CenterLongitude, CenterLatitude) are the same for all cubes. That is, you should create one map file and use it as input for all the cubes in your mosaic. Otherwise, the program will throw and error.
By letting the minimum and maximum latitude and longitude values default, the application will determine the coverage of each image. However, if the mosaic Latitude and Longitude range are entered, each output image will be projected to the full size of the mosaic resulting in large file sizes and images with many NULL pixels. The following Mapping group could be used for mosaicking:
Group = Mapping ProjectionName = Sinusoidal CenterLongitude = 0 PixelResolution = 100 <meters> EndGroup
Finally, depending on the projection, problems can occur with cubes that fall on the projection longitude seam. For example, if you are making a mosaic with LongitudeDomain=360 and your cube crosses 0/360 seam, the program will compute the default longitude range of the cube to MinimumLongitude=0 and MaximumLongitude=360. A larger than necessary output image will be created, with size inversely proportional to pixel resolution. The LONSEAM parameter allows you to selectively handle this case. If you are making mosaics near the seam you will need to understand and alter the default for this parameter. Problems at the Longitude Seams of The ISIS Workshop "Learning About Map Projections" includes an example to help illustrate the problem.
Categories
Related Applications to Previous Versions of ISIS
This program replaces the following applications existing in previous versions of ISIS:- lev1tolev2
- plansinu
- planorth
History
Kay Edwards | 1986-09-02 | Original version |
Jeff Anderson | 2003-05-02 | Converted to Isis 3.0 |
Jeff Anderson | 2003-06-05 | Added to Camera category |
Stuart Sides | 2003-07-29 | Modified filename parameters to be cube parameters where necessary |
Jeff Anderson | 2003-12-01 | Reworked defaults for user parameters |
Jeff Anderson | 2004-01-21 | Modified resolution parameters to eliminate inclusion/exclusion dependences. |
Jeff Anderson | 2004-02-13 | Added AUTOLON parameter |
Jeff Anderson | 2004-02-25 | Fixed bug with ground range user option |
Elizabeth Miller | 2005-10-25 | Added appTest |
Jacob Danton | 2005-12-02 | Updated appTest |
Elizabeth Miller | 2006-03-23 | Fixed appTest to reflect changes made in all camera models |
Tracie Sucharski | 2006-04-04 | Check to see if center of input image projects, if it does, force the tile containing center to be processed in ProcessRubberSheet. |
Jeff Anderson | 2006-04-04 | Reworked user interface |
Elizabeth Miller | 2006-04-10 | Reworked code for new user interface and added helper buttons |
Elizabeth Miller | 2006-05-18 | Depricated CubeProjection and ProjectionManager to ProjectionFactory |
Elizabeth Miller | 2006-05-30 | Moved Helper buttons and fixed error checking in helper methods |
Elizabeth Miller | 2006-09-06 | Modified call to ProjectionFactory CreateForCube method to include a value of false for the newly added sizeMatch parameter |
Jeff Anderson | 2006-12-06 | Test to see if target is sky and abort |
Jeff Anderson | 2007-03-13 | Add minimize option for DEFAULTRANGE |
Steven Lambright | 2007-06-22 | Fixed typo and corrected XML |
Steven Lambright | 2007-08-22 | Fixed lonseam option to work with minimize option correctly |
Stuart Sides | 2008-02-11 | Fixed bug where the ground range was not pulled from the map file when it was supposed to be (using DEFAULTRANGE = MAP). |
Christopher Austin | 2008-04-18 | Added the MATCHMAP option. |
Steven Lambright | 2008-05-12 | Removed references to CubeInfo |
Christopher Austin | 2008-07-15 | Changed MATCHMAP to default off |
Steven Lambright | 2008-08-04 | Changed MATCHMAP to have exclusions. If MATCHMAP is true, the PIXRES and DEFAULTRANGE options can not be set. Changed the code to enforce MATCHMAP. |
Steven Lambright | 2008-09-10 | Added the ability to change ProcessRubberSheet's tiling sizes. Now the Camera will decide upon the tiling sizes used in ProcessRubberSheet, in order to fix problems found with the push frame cameras which have small framelet sizes (less than 64 pixels tall). This is a passive ability with respect to the user; no options or differences should be noticeable. |
Christopher Austin | 2008-10-31 | Fixed DEFAULTRANGE > CAMERA option to accept MINLAT, MAXLAT, MINLON, and MAXLON as overriding values. |
Christopher Austin | 2009-01-27 | Fixed parameter names. |
Travis Addair | 2009-08-10 | Mapping group parameters are now placed into the print file. |
Steven Lambright | 2011-01-31 | Improved documentation |
Jai Rideout | 2011-02-10 | Print file now includes PixelResolution, Scale, UpperLeftCornerX, and UpperLeftCornerY in Mapping group. |
Lynn Weller and Debbie A. Cook | 2012-01-17 | Updated documentation text, added glossary links, and improved compatibility with Isis documentation. |
Jeff Anderson | 2012-04-30 | Add forward and reverse patch rubbersheeting parameters. |
Debbie A. Cook | 2012-07-06 | Updated Spice members to be more compliant with Isis coding standards. References #972. |
Debbie A. Cook | 2012-10-11 | Updated to use new Target class. References Mantis ticket number #775 and #1114. |
Tracie Sucharski | 2012-12-06 | Changed to use TProjection instead of Projection. References #775 |
Kimbelry Oyama | 2013-07-11 | Removed redundant checks for !ui.GetBoolean("MATCHMAP") from if statements. Added ui.WasEntered before some of the parameters are used. Disabled LONSEAM when MATCHMAP is selected. Fixes #1613. |
Jac Shinaman | 2016-01-29 | Added new examples #5-8 describing the TRIM parameter. Fixes #0272. |
Jac Shinaman | 2016-02-09 | Updated examples #1-4 GUI illustrations, and clarified some of the "Description" paragraphs. Fixes #2389. |
Jac Shinaman | 2016-02-09 | Brought code closer to ISIS coding standards. Added test to read NAIF body frame info from labels. References #3934 |
Curtis Rose | 2016-06-29 | Fixed an error when matchmap was true, the user could attempt to add a mapping file with a targetname that did not match the targetname of the instrument group of the cube file. Fixes #1952. |
Adam Paquette | 2020-03-02 | Added one last setImage call to check for pixel occlusion. Where any pixel is occluded when the resulting latitude, or longitude differ from the original latitude or longitude by 0.000001 degrees. |
Austin Sanders | 2020-03-02 | Added an additional parameter (occlusion) to toggle occlusion processing. |
Parameters
Files
Type | cube |
---|---|
File Mode | input |
Filter | *.cub |
Type | filename |
---|---|
File Mode | input |
Default Path | $ISISROOT/appdata/templates/maps |
Default | $ISISROOT/appdata/templates/maps/sinusoidal.map |
Filter | *.map *.cub |
Type | cube |
---|---|
File Mode | output |
Filter | *.cub |
Type | boolean |
---|---|
Default | false |
Exclusions |
|
Output Map Resolution
Type | string | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Default | CAMERA | |||||||||||||||
Option List: |
|
Type | double |
---|---|
Minimum | 0.0 (exclusive) |
Output Map Ground Range
Type | string | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Default | MINIMIZE | ||||||||||||
Option List: |
|
Type | double |
---|---|
Internal Default | Use default range |
Minimum | -90.0 (inclusive) |
Maximum | 90.0 (inclusive) |
Type | double |
---|---|
Internal Default | Use default range |
Minimum | -90.0 (inclusive) |
Maximum | 90.0 (inclusive) |
Greater Than | MINLAT |
Type | double |
---|---|
Internal Default | Use default range |
Type | double |
---|---|
Internal Default | Use default range |
Greater Than | MINLON |
If camera is selected:
- You can opt to trim or not trim
- You can trim by entering the lat/lon range
- You cannot use the minimize parameter
- You can opt to trim or not trim
- You can trim by entering lat/lon range
- You cannot use the lonseam parameter
- You cannot use the minimize parameter
Type | boolean |
---|---|
Default | FALSE |
Longitude Seam Options
Type | string | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Default | AUTO | ||||||||||||
Option List: |
|
Options
Type | string | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Default | CUBICCONVOLUTION | ||||||||||||
Option List: |
|
Type | string | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Default | AUTOMATIC | ||||||||||||
Option List: |
|
Type | integer |
---|---|
Minimum | 1 (inclusive) |
Highly dependent on DEM / image pixel resolution and accuracy of coregistration between the two.
This parameter also significantly increases projection time. It is recommended that this option is only used on images with known areas of occlusion.
Type | boolean |
---|---|
Default | false |
Example 1
Demonstrates the AUTO LONSEAM option
Command Line
cam2map from=EN0108830655M.cub map=../IN/sinu.map
to=EN0108830655M_sinu_auto.cub
GUI Screenshot
Example GUI
cam2map LONSEAM=AUTO GUI
The top of the GUI shows the parameters filled in for input
files, output file, and output map resolution.
The middle of the GUI illustrates the parameters filled in for the
output map ground range and the longitude seam options. Under
the output map ground range section, notice the grayed out
parameters. These values are computed and not allowed to be
modified when DEFAULTRANGE = MINIMIZE. This is the default.
The LONSEAM option has been set to AUTO in this example.
The bottom of the GUI shows the Options menu.
The default value for INTERP is selected (CUBICCONVOLUTION).
Input Image
Input image for LONSEAM examples
Input Messenger image
Parameter Name:
FROM
This is a Messenger narrow angle camera image.
Data File
Links open in a new window.Map file | Input map file defining the desired output map projection. This file is in PVL format. |
---|
Output Image
Example 2
Demonstrates the LONSEAM CONTINUE option
Command Line
cam2map from=EN0108830655M.cub
map=../IN/sinu.map
to=EN0108830655M_sinu_cont.cub lonseam=cont
GUI Screenshot
Example GUI
cam2map LONSEAM=CONTINUE GUI
The top of the GUI shows parameters filled in for input
files, output file, and output map resolution.
The middle of the GUI illustrates parameters filled in for the
output map ground range and the longitude seam options. Under
the output map ground range section, notice the grayed out
parameters. These values are computed and not allowed to be
modified when DEFAULTRANGE = MINIMIZE. This is the default.
The LONSEAM option has been set to CONT in this example.
The bottom of the GUI shows the Options menu.
The default value for INTERP is selected (CUBICCONVOLUTION).
Input Image
Input image for LONSEAM examples
Input Messenger image
Parameter Name:
FROM
This is a Messenger narrow angle camera image.
Data File
Links open in a new window.Map file | Input map file defining the desired output map projection. This file is in PVL format. |
---|
Output Image
Example 3
Demonstrates one of two different ways to use MATCHMAP
Command Line
cam2map from=EN0108827082M.lev1.cub map=EN0108828436M.lev2.cub
to=EN0108827082M.lev2.cub matchmap=yes
GUI Screenshot
Example GUI
cam2map MATCHMAP GUI
The top of the GUI reveals parameters filled in for input
files, output file, and output map resolution. Notice that with
MATCHMAP checked the remaining output map resolution parameters
are grayed out to show that they are no longer available for
input. All the mapping parameters will be read from the level 2
image entered for MAP.
The middle of the GUI shows parameters for the
output map ground range and the longitude seam options. Under
the output map ground range section, notice all the parameters
are grayed out. These values are all read or computed from the
parameters in the mapping group of the level 2 image entered as
the MAP and not allowed to be modified because MATCHMAP=YES.
The LONSEAM option has been set to AUTO in this example (the
default).
The bottom of the GUI shows the Options menu.
The default value for INTERP is selected (CUBICCONVOLUTION).
Input Images
Input image for MATCHMAP examples
Input Messenger image
Parameter Name:
FROM
This is a Messenger narrow angle camera image.
Input image for MATCHMAP examples
Input level 2 image used for MAP
Parameter Name:
MAP
This is a Messenger narrow angle camera image previously projected into an equirectangular map.
Output Image
Output image for cam2map LONSEAM=AUTO
Output of cam2map run with MATCHMAP=YES and map file
Parameter Name:
TO
This is the output of cam2map demonstrating the use of MATCHMAP=YES with an ISIS level 2 image as MAP. Contrast this output with the level 2 image used as MAP and with the next example which was also created with MATCHMAP=YES, but uses an ISIS map file as MAP.
Example 4
Demonstrates a second way to use MATCHMAP
Command Line
cam2map from=EN0108827082M.lev1.cub map=EN0108828436M.map
to=EN0108827082M.lev2.cub matchmap=yes
GUI Screenshot
Example GUI
cam2map MATCHMAP MAP GUI
The top of the GUI illustrates parameters filled in for input
files, output file, and output map resolution. Notice that with
MATCHMAP checked the remaining output map resolution parameters
are grayed out to show that they are no longer available for
input. All the mapping parameters will be read from the map file.
The application will throw an error if any required information
is missing.
The screen shot of the middle of GUI shows the parameters for the
output map ground range and the longitude seam options. Under
the output map ground range section, notice all the parameters
are grayed out. These values are all read or computed from the map
file values and not allowed to be modified because MATCHMAP=YES.
The LONSEAM option has been set to AUTO in this example (the
default).
The bottom of the GUI shows the Options menu.
The default value for INTERP is selected (CUBICCONVOLUTION).
Input Image
Input image for MATCHMAP examples
Input Messenger image
Parameter Name:
FROM
This is a Messenger narrow angle camera image.
Data File
Links open in a new window.Map file | Input map file defining the desired output map projection. This file is in PVL format. |
---|
Output Image
Output image for cam2map LONSEAM=AUTO
Output of cam2map run with MATCHMAP=YES and map file
Parameter Name:
TO
This is the output of cam2map demonstrating the use of MATCHMAP=YES with an Isis map file as MAP. Contrast this output with the previous example, which was also created with MATCHMAP=YES, but uses an Isis level 2 image for MAP.
Example 5
The following four examples illustrate the effects of the TRIM option
Command Line
cam2map from=P01_001489_2688_XI_88N339W.lev1eo.cub
map=./npole.map to=no_trim_P01_001489_2688_XI_88N339W.lev1eo.cubSINU18
defaultrange=camera
GUI Screenshot
Example GUI
TRIM=NO GUIScreen shot of the entire GUI with parameters filled in for FROM file, TO file, default PIXRES, and Output Map Ground Range set to the CAMERA of the input cube. The rest of the parameters are all set to the defaults.
Output Image
Example 6
The following example illustrates what happens to the same data set with TRIM=YES
Command Line
cam2map from=P01_001489_2688_XI_88N339W.lev1eo.cub map=./npole.map
to=trim2_P01_001489_2688_XI_88N339W.lev1eo.cub trim=yes defaultrange=camera
minlat=87.3 maxlat=89.11 minlon=8 maxlon=74
GUI Screenshot
Example GUI
TRIM=YES GUIScreen shot of the entire GUI with parameters filled in for FROM file, TO file, default PIXRES, Output Map Ground Range set to the CAMERA of the input cube, TRIM=YES, and MIN/MAX LAT/LON ranges are defined. The rest of the parameters are all set to the defaults.
Output Image
Example 7
Potential anomalies using Sinusoidal projections
Command Line
cam2map from=CISSWA_Enceladus.cub map=sinu180.map
to=CISSWA_Enceladus_notrim.cub defaultrange=camera
GUI Screenshot
Example GUI
TRIM=NO GUIEntire cam2map GUI with parameters filled in for FROM file, TO file, default PIXRES, and Output Map Ground Range set to the CAMERA of the input cube. The rest of the parameters are all set to the defaults. Note: the DEFAULT value for the TRIM parameter is NO, and therefore, it is not necessary to define TRIM.
Data File
Links open in a new window.Map file | Input map file defining the attributes of the desired output map projection. This file is in PVL format. |
---|
Output Image
Example 8
Solution for anomalies using Sinusoidal projections
Command Line
cam2map from=CISSWA_Enceladus.cub map=sinu180.map
to=CISSWA_Enceladus_notrim.cub defaultrange=camera trim=yes
GUI Screenshot
Example GUI
TRIM=YES GUIEntire cam2map GUI with parameters filled in for FROM file, TO file, default PIXRES, Output Map Ground Range set to the CAMERA of the input cube, and TRIM=YES. The rest of the parameters are all set to the defaults.
Data File
Links open in a new window.Map file | Input map file defining the attributes of the desired output map projection. This file is in PVL format. |
---|