Posts Tagged ‘projections’

SkyView to include HEALPix and WMAP

Wednesday, December 31st, 2008

For some while we have been looking at how to put the data from the Wilkinson Microwave Anistropy Probe (WMAP) into SkyView. The WMAP data are central to our current understanding of cosmology. However WMAP images are generally stored in a the HEALPix format. HEALPix is a recursive projection where each pixel has equal area, and pixels are arranged in rings of constant latitude. This is illustrated in the image below

HEALPix pixelization

Pixels are successively refined with each pixel dividing into four subpixels. The pixels are normally stored as a linear array of pixels using one of two standard orders — not as an image.

Since HEALPix didn’t seem to be a normal projection, we’d held off supporting it. The original Gorski paper does suggest that you can represent the HEALPix data in a projection plane. However the HEALPix pixels are diamonds, not rectangles — and that doesn’t fit in with how we store images.

Recently we realized that by thinking just slightly outside the box, we can get around this and treat HEALPix as a standard projection. Although the HEALPix pixels normally look like:

Standard HEALPix

in the plane where the equator runs horizontally, we’re not restricted to that. If we use a projection plane rotated by 45 degrees then those same HEALPix pixels look like

Rotated Healpix

In this frame the pixels are perfectly normal, so SkyView can treat HEALPix just like any other projection. SkyView doesn’t care that the equator isn’t horizontal!

In practice we still do some special handling of the HEALPix data. To use our existing code we would have to reformat HEALPix-formatted FITS files as more standard images in the rotated HEALPix frame. Instead we choose to use the original format and use a new HealPixImage class. This makes a HEALPix file look like a regular image to the rest of SkyView. We’re in the process of testing the WMAP data and the HEALPix projection but they should be showing up in the released version of SkyView shortly.

[Added:] A paper by Mark Calabretta and B.F. Roukema discusses this in much more detail and in a more general context of HEALPix like projections. I’ve read this paper in the past, so it’s not unlikely that it’s ultimately where the I got the idea as well.

Features in the Gallery: Looking at the Big Picture

Monday, December 15th, 2008

This image from 2008-12-10 09:39:28 is pretty interesting…

SkyView COMPTEL image

It looks like we are seeing some very special object with rings around it. What’s going on here?

This is a COMPTEL image, one of the lowest resolution surveys we have in SkyView. It’s taken in the hard X-ray/Soft gamma ray regime where it’s very difficult to build an imaging detector at all. The method used requires a complex deconvolution and yields at best a resolution of a few degrees. So the pixels are very large and the image would – absent distortions – cover almost the entire sky. However, you can’t project such a large region of the sky onto a single plane image without very large distortions. In fact the default projection that SkyView uses, the Tangent plane or Gnomonic projection, only shows half the sky no matter how big we make our image. The great circle 90 degrees from the center of the field of view is off at infinity. It’s rather like the way Mercator maps get enormously distorted as you near the poles — and even so you can never quite get there.

The middle of the image is reasonable enough, but as we approach the edges pixels are being stretched out in a radially symmetric pattern.

Another projection can show the whole sky in a more understandable fashion. One might try an Aitoff or Cartesian projection if you know that you want to see the entire sky. However if you want to make sure that a given point is at the center of the map, then something like the ZEA (for Zenithal Equal Area) projection might be nice. Here we’ve redone the picture in that projection:

Comptel data: ZEA projection

The entire sky is shown here with the point opposite the requested center forming an infinitesimally thin ring around the image. So it is still distorted, but in a way that doesn’t obscure the global features as much. Every pixel represents the same area in the sky. The plane of our Galaxy shows up clearly as a circle of enhanced emission and the bright spot is the Crab nebula.

The lesson here is that you need to adapt your projection to the application. Some projections, e.g., the Tangent or Sine projections just won’t do very well for large fields of view. Others, e.g., the Cartesian projection near the pole, can be a poor choice when looking at a particular small region of the sky.

Reference Coordinates in Fixed Projections

Monday, April 28th, 2008

SkyView treats a number of projections (Aitoff, Cartesian, Sansom-Flamsteed/Sinusoidal) as fixed projections. Regardless of the position you specify, the sky is projected to the plane in the same way. All that your coordinate entry changes is the center of the image you get. Thus if you ask for an image near the pole in a Cartesian projection, you’ll find that there’s a large distortion since you are near a singularity in the projection. By contrast, projections like the Tangent and Sine projections are centered at the position you specify: that’s the point of minimum distortion.

If you wanted to make an Aitoff or Cartesian map really centered on some point other than the coordinate origin, older versions of SkyView couldn’t help you. With the version we’re releasing today, you can specify the new RefCoords setting. It takes a pair of decimal coordinates and uses that as the coordinate center for fixed projections. E.g., use RefCoords=0.,90. Position=0.,90. projection=Ait to ask for an Aitoff projection centered around the pole. Note that you still need to specify a position.