HEALPix Library for MATLAB

This library provides some useful functions for using the HEALPix pixelization implemented on MATLAB. The HEALPix is a pixelization scheme of a spherical surface having advantageous features as follows.

Each pixel covers the same surface area

The pixel centers occur on rings of constant latitude

Its pixel indexing scheme enables easier implementation of the Haar wavelet transform on spherical surfaces

It provides equal-area and iso-latitude map projection

Originally, a purpose of this sampling method is an efficient storage and processing of large sets of data for astronomical research. Also the method is beneficial when we want to handle mathematical functions defined on spherical surface.

This library provides the following functions.

Generation of the HEALPix sampling points on spherical surfaces

Implementation of the Haar transform in spherical sampling

Visualization of functions on sphere by means of the HEALPix projection

Visualization of pixel meshes of the HEALPix

Operation of this library have confirmed on the following environments.

MATLAB 7.1

MATLAB 2009a, 2009b

MATLAB 2010a, 2010b

Downloads are available from here.

As for details, refer "Readme.txt" which is included in package. Usages of the top level functions are written as help comment in each file.

Given a resolution of the grid, "HealpixGenerateSampling.m" generates spherical coordinates or two-dimensional ring index of each sampling pixel. The pixels are ordered by so-called nested indexing.

The below is execution result of "HealpixTest.m" which plots sampling pixels of HEALPix. A resolution of grid is configurable by editing the "n" value in the script. In the example below, n = 16.

The below is execution result of "for_print.m" which displays a mesh tessellation of HEALPix. A resolution of grid is configurable by editing the "n" value in the script. In the example below, n = 4.

"HealpixPlaneProjBmp.m" calculates projection of 3D spherical surfaces onto 2D planes. Given both a resolution of the HEALPix grid, and 2D plane, "HealpixPlaneProjBmp" creates 2D bitmap of the specified resolution. If a resolution of 2D plane was higher than the one of 3D surface, bitmap is rendered by means of linear interpolation.

The above figure is execution result of "ProjectionTest.m" which displays HEALPix projection of a function defined in "DebugFunc.m." Its resolution parameters are specified by the variable n, n_x, and n_y in the script. In this example, n = 32, n_x = 512, and n_y = 256.

The figure below is execution result of "HaarTest.m" which displays a histogram of coefficients of the Haar transform on HEALPix. Easy explanation about definition of the Haar transform on HEALPix is shown in Jason McEwen, "Data compression on the sphere with spherical Haar wavelets," Astronomical Data Analysis V, Crete, 2008. In this example, transform target data is defined by "DebugFunc.m."

You can easily confirm sparsity of the signal when expressed in the wavelet basis, which is exploitable for many purposes such as data compression and compressed sensing.

2011/02/05 Version 1.0 The first issue

The author does not compensate any possible harms caused by this application.

Only those who have agreed this have the right to use this application.

Yousuke NARUSE