Downloading Montage

Downloading Montage in whole or in part implies that you agree with the terms stated here.

Montage is available as a g-zipped tar file. The current version is Montage v6.0, which does not contain new functionality but deploys Python binary extensions, so version 5.0 is also supported. Older versions are also available for download but are no longer supported.

The file kept here is the last code formally tested. We are continually updating the code with new feature and bug fixes and this version is maintained in GitHub:

We strongly suggest that most users download that instead of the tarball here.

Montage Version Download Link


Source code from GitHub:

Source code tar file: Montage_v6.0.tar.gz

MontagePy, for Python from PyPI:

  • Use the command: $ pip install MontagePy

MontagePy wheel file for Python:

5.0 Montage_v5.0.tar.gz
4.0 Montage_v4.0.tar.gz
3.3 Montage_v3.3.tar.gz
3.2 beta4 Montage_v3.2_beta4.tar.gz
3.0 Montage_v3.0.tar.gz

See the detailed Change History for a thorough description of updates for each version.

Keep Up With Montage

If you would like to connect with other Montage users and be notified of software updates, please visit our Community page to subscribe to a mailing list, read the Montage blog, or follow us on Facebook.

Version History

Release Version Release Date Major Changes

Montage 6.0



MontagePy contains a set of Python binary extensions of existing Montage modules; no new functionality has been introduced. Click here to see a list of all supported modules.

The Python extensions have been created by transforming the C code into a library, with driver code fully separated to reproduce the calling sequence of the command-line tools; and then adding Python and C linkage code with the Cython library, which acts as a bridge between general C libraries and the Python interface. These binary extensions offer image processing at compiled speeds in the Python environment.

See the User Guide for Running Montage Under Python for system requirements and installation instructions.

Montage 5.0 12/21/16

Version 5.0 offers a new fast reprojection module, mProjectQL, that is suitable for creating images for visualization; support for FITS files containing data written in the HEALPix sky-tesselation scheme; and support for creating images that can be consumed by the World Wide Telescope (WWT). This release also allows the core modules to be built and used as a statically or dynamically linked library. The Montage library is built at the same time as the toolbox modules with the make command; no special build procedure is needed. A list of the library functions and the library API is here.

mProjectQL uses the Lanczos image interpolation scheme to provide higher performance in reprojection at the expense of conservation of flux; we recommend mProjectQL primarily for creating images for quick-look visualization rather than for science analysis. It offers a speed-up of approximately x20 over mProject.

Support for HEALPix: Montage treats HEALPix as if it were a spherical projection that can processed with the existing reprojection routines in Montage. It is managed through a local version of the WCStools library (users who prefer to use the SAO library should note that will lose HEALPix and TOAST support). The distribution includes a copy of the HPXcvt module to convert HEALPix data from FITS table form to FITS image form; this module is part of the WCSLib distribution at (Copyright (C) 1995-2016, Mark Calabretta).

Support for the WWT: As with HEALPix, Montage treats TOAST, the sky-tessellation scheme used by the WWT, as if they were a spherical projection that can processed with the existing reprojection routines in Montage. It is managed through the same local version of the WCStools library used to manage HEALPix data. The WWT consumes PNG or JPEG files organized and named to conform to the TOAST sky-tessellation scheme. Montage includes custom routines to organize TOAST files for display in the WWT. These modules are:

  • mHdrWWT: Create a TOAST tile header file given a tile ID (in Z-order digits such as"2320") and an output file name.

  • mHdrWWTExec: Recursively creates all the headers for an all-sky set using mHdrWWT.

  • mProjWWTExec: Runs mProjectQL to reproject an all-sky input image into a set of FITS tile images using the headers created by mHdrWWT and mHdrWWTExec . It writes all these into a directory, given an an argument.

  • mPNGWWTExe: Runs mViewer for each FITS file, using a pregenerated histogram and a color table given as arguments. The histogram is generated by mHistogram and can be based on one of the WWT image set or from the original image(s)from which the WWT images were derived.
Montage 4.0 9/30/15

New modules to support working with data cubes:

mCubeProj-- Based on mProject, this new module allows for three- and four-dimensional data files (and is easily extended to more dimensions if we ever find data in that form that needs to be projected). mCubeProj is for now kept separate from mProject even though the spatial code is identical to avoid slowing or introducing bugs into that heavily-used module. We may merge them back together in the future.

mCubeProj requires that the first two axes are spatial. See mTranspose if the cube needs to be reorganized into this form.

mTranspose -- Dealing with reprojection and reselection of axes at the same time is much more complicated than either of those operations and makes the code much more likely to harbor bugs. We have opted for requiring the spatial dimensions to be the first two in the cube and providing a "transpose" utility to allow reorganizing files where this is not the case.

mAddCube -- Coadds the reprojected cubes in an inputlist to form an output mosaic with FITS header keywords specified in a header file.

mSubCube -- Creates a subimage (or "cutout") of a FITS file containing a data cube.

mShrinkCube -- Rescale the spatial dimension of a cube. Resampling or even averaging in the third dimension is generally not safe, so we do not attempt it.

Library directory names have been changed to reflect version numbers since most of these are outside packages that can be replaced by the user if desired (e.g. to change to a newer version of the WCS library if it has new projections).

Some modules (checkHdr.c, mAddExec.c, mBgModel.c, mCoverageCheck.c, mDiff.c, mMakeImg.c, mProject.c, mProjectPP.c, mPutHdr.c, mShrink.c, mSubimage.c) have been modified slightly to avoid messages from newer versions of compilers (especially on Mac OS X). No algorithmic changes; mostly proper handling of returns, etc.

We have augmented the "JPEG generator" with enough new functionality that we are rebranding it as a new tool, mViewer. mViewer support grayscale, pseudocolor and full color (three image) rendering into JPEG or PNG files. There are several overlays possible, including coordinate grids (of any sort and number) catalog overlays (scaled and colored symbols with several shapes), image metadata outlines, labels and custom markers, and so on. mJPEG remains in the distribution but we do not plan further development. The JPEG files contain AVM tags that allow them to be ingested into the World Wide Telescope.

This utility can be used standalone, in pipelines, or as the basis of an interactive (AJAX GUI) interaction toolkit. A beta version of the Python wrapper around mViewer has been included in the distribution.

There have been minor updates to several other modules:

  • Image metadata collection for mImgtbl ran into trouble with missing or invalid WCS keywords. Changed to handle more gracefully.
  • mBgModel had a realloc bug where it was point to the wrong array index.
  • An optional parameter was added to mMakeHdr to set a maximum number of pixels on an image side.
  • mOverlaps now checks to see if the image metadata already has the image four corners rather than (re)generating them.
  • mTblSort had a bug where an empty table would loop forever.

Finally, there have been a few additions of minor tools for which need arose:

  • mPad -- Pad a FITS image with null pixel regions (e.g. so mViewer can have a border).
  • mExamine-- Return basic information on a image and optionally on a cone region.
Montage v3.3 12/14/2010

The following modules have been updated. See the Change History for detailed descriptions.

New Utility:

Updated Modules:

Updated Utilities:

Montage v3.0 1/5/2007 The emphasis has been on solidifying Montage use in a distributed Grid environment to allow the building of large-scale mosaics from 2MASS, SDSS, and DPOSS.

See detailed Change History for a thorough description of updates.
New modules include:

Core Modules: Utilities:
Montage v2.2 7/20/2004 Makefiles have been updated and the CFITSIO library modified (see docs/ExternalLibraries.txt for details) to allow the use of 64-bit addressing (files larger than 2 GByte) on LINUX platforms.
Montage v2.1 7/1/2004 Changes have been made to several modules. The biggest change, however, is the addition of mTANHdr (and associated changed to mProjectPP) which allow the fast reprojection of non-tangent-plane projections if they can be approximated as distorted TAN images.
Montage v2.0.4 3/16/2004 -mAdd no longer allocates the entire output image up front, and so uses even less memory.
-level-only flag has been added to mBgModel.
-New module mShrink added to make scaled versions of an image (e.g. image with pixel scale 5.5 times larger than the original)
-New modules mRadHit and mRadHitExec added to try and remove "radiation hit" type artifacts from original unprojected images by comparing pixel values to local medians.
-New modules mDagTbls and mConcatFit added to aid in GRID computing use of Montage. The first generates a set of tables (lists of images, overlap analysis) for use in setting up a batch processing run. The second combines the output of difference fitting (presumably in this context done via separate threads) into a single table for use by mBgModel.
Montage v2.0.3 2/4/2004 mAdd has been updated to better manage memory and a fast reprojection (plane-to-plane) module has been added (mProjectPP).
Montage v2.0.2 1/13/2004 Fixed several problems with 'boundaries' library (used by mMakeHdr). Also fixed a realloc() bug in mMakeHdr.
Montage v2.0.1 11/25/2003 Fixed background matching (specifically mDiff bug) and made various other minor changes.
Montage v2.0 9/17/2003 Status file option added to all modules to support GRID (Montage-G DAG) processing. Fixed a couple of bugs in mProject: FITS reading was being done incorrectly (which caused occassional error conditions) and pixel "handedness" was sometime computed incorrectly for CD matrices.
Montage v1.7 5/30/03 Corrected defect reports from testing of version 1.6.
Montage v1.6 4/24/03 Added support for DSS projection. Corrected defect reports from testing of version 1.5.
Montage v1.5 04/01/03 Improved handling of command line parameters, using the Unix command getopt(). Path handling in mImgtbl modified to use filenames only; paths are fed in via arguments to individual modules.
Montage v1.4 01/27/03 Background matching improved.
Montage v1.3 10/03/02 Workaround for defect in WCS library affecting cylindrical projections; fix for LINUX defect in svc control library.
Montage v1.2 9/25/02 Ported to Linux
Montage v1.1-beta 7/27/02 Updated pixel overlap to remove repeated (within positional tolerance) points. Otherwise the Girard() calculation gets confused.
Montage v1.0 7/01/02 Initial limited release