8.2. Mars Reconnaissance Orbiter HiRISE¶
HiRISE is one of the most challenging cameras to use when making 3D models because HiRISE exposures can be several gigabytes each. Working with this data requires patience as it will take time.
One important fact to know about HiRISE is that it is composed of multiple linear CCDs that are arranged side by side with some vertical offsets. These offsets mean that the CCDs will view some of the same terrain but at a slightly different time and a slightly different angle. Mosaicking the CCDs together to a single image is not a simple process and involves living with some imperfections.
One cannot simply use the HiRISE RDR products, as they do not have the
required geometric stability. Instead, the HiRISE EDR products must be
assembled using ISIS
noproj. The USGS distributes a script in use
by the HiRISE team that works forward from the team-produced ‘balance’
cubes, which provides a de-jittered, noproj’ed mosaic of a single
observation, which is perfectly suitable for use by the Stereo
Pipeline (this script was originally engineered to provide input for
SOCET SET). However, the ‘balance’ cubes are not available to the
general public, and so we include a program (
(Section 16.25), written in Python, that will take PDS
available HiRISE EDR products and walk through the processing steps
required to provide good input images for
The program takes all the red CCDs and projects them using the ISIS
noproj command into the perspective of the RED5 CCD. From there,
hijitreg is performed to work out the relative offsets between CCDs.
Finally the CCDs are mosaicked together using the average offset listed
hijitreg using the
handmos command, and the mosaic is
cubenorm. Below is an outline of the processing.
hi2isis # Import HiRISE IMG to Isis
hical # Calibrate
histitch # Assemble whole-CCD images from the channels
spicefit # For good measure
noproj # Project all images into perspective of RED5
hijitreg # Work out alignment between CCDs
handmos # Mosaic to single file
cubenorm # Normalize the mosaic
To use our script, first download a set of HiRISE data. Here is an example, using wget to fetch all RED CCDs for a dataset and process them.
wget -r -l1 -np \
Alternately, you can pass the
--download-folder option to
hiedr2mosaic.py and pass in the URL of the web page containing the
EDR files as the only positional argument. This will cause the tool to
first download all of the RED CCD images to the specified folder and
then continue with processing.
hiedr2mosaic.py --download-folder hirise_example/ \
Assuming you downloaded the files manually, go to the directory
containing the files. You can run the
without any arguments to view a short help statement, with the
option to view a longer help statement, or just run the program on the
EDR files like so:
If you have more than one observation’s worth of EDRs in that directory,
then limit the program to just one observation’s EDRs at a time, e.g.
hiedr2mosaic.py PSP_001513_1655*IMG. If you run into problems, try
-k option to retain all of the intermediary image files to
help track down the issue. The
hiedr2mosaic.py program will create a
single mosaic file with the extension
warned that the operations carried out by
hiedr2mosaic.py can take
many hours to complete on the very large HiRISE images.
If you get any errors, make sure you have ISIS and its data installed,
and the environmental variable
ISISDATA is set (Section 2.1.2).
An example of using ASP with HiRISE data is included in the
examples/HiRISE directory (just type ‘make’ there).
8.2.1. The dataset¶
Download all 20 of the RED EDR
.IMG files for each observation.
ISIS> hiedr2mosaic.py PSP_001513_1655_RED*.IMG
ISIS> hiedr2mosaic.py PSP_001777_1650_RED*.IMG
ISIS> cam2map4stereo.py PSP_001777_1650_RED.mos_hijitreged.norm.cub \
ISIS> parallel_stereo PSP_001513_1655.map.cub \
See Section 6 for a discussion about various speed-vs-quality choices.
corr-kernel value can usually be safely reduced to 21 pixels
to resolve finer detail and faster processing for images with good