HEALPix is an acronym for Hierarchical Equal Area isoLatitude Pixelation of a sphere. As suggested in the name, this pixelation produces a subdivision of a spherical surface in which each pixel covers the same surface area as every other pixel.


The original motivation for devising HEALPix was one of necessity. Satellite missions to measure the cosmic microwave background (CMB) anisotropy -- NASA's Wilkinson Microwave Anisotropy Probe (WMAP), and currently operating ESA's mission Planck -- have been producing multi-frequency data sets sufficient for the construction of full-sky maps of the microwave sky at an angular resolution of a few arcminutes. The principal requirements in the development of HEALPix were to create a mathematical structure which supports a suitable discretization of functions on a sphere at sufficiently high resolution, and to facilitate fast and accurate statistical and astrophysical analysis of massive full-sky data sets.

HEALPix satisfies these requirements because it possesses the following three essential properties:

  1. The sphere is hierarchically tessellated into curvilinear quadrilaterals. The lowest resolution partition is comprised of 12 base pixels. Resolution of the tessellation increases by division of each pixel into four new ones. The figure below illustrates (clockwise from upper-left to bottom-left) the resolution increase by three steps from the base level (i.e., the sphere is partitioned, respectively, into 12, 48, 192, and 768 pixels).
  2. Areas of all pixels at a given resolution are identical.
  3. Pixels are distributed on lines of constant latitude. This property is essential for all harmonic analysis applications involving spherical harmonics. Due to the iso-latitude distribution of sampling points the speed of computation of integrals over individual spherical harmonics scales as ~N1/2 with the total number of pixels, as opposed to the ~N scaling for the non-iso-latitude sampling distributions (examples of which are the Quadrilateralized Spherical Cube used for the NASA's COBE data, and any distribution based on the symmetries of the icosahedron).

HEALPix Grid Examples

Applications of HEALPix to data processing and visualization have now spread well outside the original CMB field, as can be seen from the Resources and Gallery pages.

Main Features of HEALPix Software

The HEALPix software is available in C, C++, Fortran90, IDL, Java and Python. In each of these languages are available an extensive library of HEALPix specific tools and their supporting routines as well as a suite of programs implementing the key features of HEALPix. Each package allows all of, or most of, the following (and more):

  • Spherical Harmonics Transforms:
    • Fast simulation and analysis of full-sky maps of CMB temperature and polarization anisotropy (sky maps preview) up to sub-arcminute angular resolution
    • Filtering of sky maps with arbitrary circular window
    • Constrained and non-Gaussian realization facilities
    • Highly optimised Spherical Harmonics Transforms library (libsharp) used by all implementations for better performance
    • Forward and backward scalar and spin-weighted Spherical Harmonics Transforms
    • Programs to manage, modify and rotate spherical harmonic coefficients of arbitrary maps
  • Pixel manipulation:
    • Pixelation of the sphere supported down to a pixel size of 0.4 mas (milli-arcseconds), corresponding to potentially 3.5 1018 pixels on the sphere
    • Pixel queries in discs, triangles, polygons and strips
    • Programs to search the maps for pixel neighbours and extrema of a random field
    • Median filtering of sky maps
    • Mask processing facilities
  • General:
  • Visualization:
    • Visualization facilities available in C++, Fortran 90, IDL, Java and Python
    • Facilities to output HEALPix maps into Google Earth/Google Sky compliant images and into DomeMaster format used in planetariums.
  • Input/Output:
    • routines to manipulate and visualize the FITS files generally used for I/O

For a detailed list of the new features added in the latest HEALPix release, see the Getting HEALPix page.
For third party implementations in other languages (including Matlab/Octave and Yorick), see this HEALPix wiki page.
For third party extensions of HEALPix capabilities, see the Resources page.