HEALPix

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
HEALPix H=4, K=3 projection of the world.

HEALPix (sometimes written as Healpix), an acronym for Hierarchical Equal Area isoLatitude Pixelisation of a 2-sphere, is an algorithm for pixelisation of the 2-sphere, and the associated class of map projections. [1]

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.[2][3] The associated software package HEALPix implements the algorithm.[2][3] 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.[4]

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.[5]

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).[6][7] 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 .[8]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Analysis Issues for Large CMB Data Sets, K.M. Gorski, E. Hivon, B.D. Wandelt, 1998
  3. 3.0 3.1 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
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. discussion and HEALPix maps of the Earth
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. What is the best way to pixelize a sphere?

External links

  • 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