HEALPix (sometimes written as Healpix), an acronym for Hierarchical Equal Area isoLatitude Pixelisation of a 2-sphere, can refer to either an algorithm for pixelisation of the 2-sphere, an associated software package, or an associated class of map projections.
The HEALPix projection is a general class of spherical projections, sharing several key properties, which map the 2-sphere to the Euclidean plane. Any of these can be followed by partitioning (pixelising) the resulting region of the 2-plane. In particular, when one of these projections (the H=4, K=3 HEALPix projection), is followed by a pixelisation of the 2-plane, this is generally referred as the HEALPix pixelisation, which is widely used in physical cosmology for maps of the cosmic microwave background. This pixelisation can be thought of as mapping the sphere to twelve square facets (diamonds) on the plane followed by the binary division of these facets into pixels, though it can be derived without using the projection. The associated software package HEALPix implements the algorithm. The HEALPix projection (as a general class of spherical projections) is represented by the keyword HPX in the FITS standard for writing astronomical data files. It was approved as part of the official FITS World Coordinate System (WCS) by the IAU FITS Working Group on April 26, 2006.
The spherical projection combines a cylindrical equal area projection, the Lambert cylindrical equal-area projection, for the equatorial regions of the sphere and a pseudocylindrical equal area projection, an interrupted Collignon projection, for the polar regions.
As the name indicates, at a given level in the hierarchy the pixels are of equal area (which is done by bisecting the square in the case of the H=4, K=3 projection) and their centers lie on a discrete number of circles of latitude, with equal spacing on each circle. The scheme has a number of mathematical properties which make it efficient for certain computations, e.g. spherical harmonic transforms. In the case of the H=4, K=3 projection, the pixels are squares in the plane (which can be inversely projected back to quadrilaterals with non-geodesic sides on the 2-sphere) and every vertex joins four pixels, with the exception of eight vertices which each join only three pixels.
The pixelisation related to the H=4, K=3 projection has become widely used in cosmology for storing and manipulating maps of the cosmic microwave background.
An alternative hierarchical grid is the Hierarchical Triangular Mesh (HTM). The pixels at a given level in the hierarchy are of similar but not identical size. The scheme is good at representing complex shapes because the boundaries are all segments of circles of the sphere.
Another alternative hierarchical grid is the Quadrilateralized Spherical Cube.
The 12 "base resolution pixels" of H=4, K=3 HEALPix projection may be thought of as the facets of a rhombic dodecahedron.
The H=6 HEALPix has similarities to another alternative grid based on the icosahedron .
- HEALPix software site at SourceForge
- Mapping on the HEALPix grid, Calabretta, Roukema, 2007
- Analysis Issues for Large CMB Data Sets, K.M. Gorski, E. Hivon, B.D. Wandelt, 1998
- HEALPix: A Framework for High-Resolution Discretization and Fast Analysis of Data Distributed on the Sphere, K. M. Górski, E. Hivon, A. J. Banday, B. D. Wandelt, F. K. Hansen, M. Reinecke, M. Bartelmann, 2005
- Pence, William D. "FITS World Coordinate System (WCS)". High Energy Astrophysics Science Archive Research Center (HEASARC). Retrieved 2007-01-09.
- discussion and HEALPix maps of the Earth
- "SkyServer.org - HTM: Hierarchical Triangular Mesh". SkyServer. June 6, 2006. Retrieved 2007-02-05.
- Szalay, Alex; Jim Gray, Gyorgy Fekete, Peter Kunszt, Peter Kukol, Ani Thakar (September 2005). "Indexing the Sphere with the Hierarchical Triangular Mesh". Microsoft. Retrieved 2007-02-05.
- What is the best way to pixelize a sphere?
- Official implementation with many languages support (C, C++, Fortran90, IDL, Java and Python) for resolutions up to 0.4 mas (milliarcsecond)
- Java port of original Fortran code by Nikolay Kuropatkin, supporting resolutions up to 0.3 arcsec
- Java port optimized to use RangeSet, very good for high resolutions
- healpy : Python wrapper