问题
I have a healpix map with galactic coordinate. I would like to convert that map into equatorial coordinate system. I know that I could plot map in equatorial coordinate using mollview() function. Do you have any way to save such transformed map?
Thanks Vinu
回答1:
The following function changes the coordinates system of a map.
def change_coord(m, coord):
""" Change coordinates of a HEALPIX map
Parameters
----------
m : map or array of maps
map(s) to be rotated
coord : sequence of two character
First character is the coordinate system of m, second character
is the coordinate system of the output map. As in HEALPIX, allowed
coordinate systems are 'G' (galactic), 'E' (ecliptic) or 'C' (equatorial)
Example
-------
The following rotate m from galactic to equatorial coordinates.
Notice that m can contain both temperature and polarization.
>>>> change_coord(m, ['G', 'C'])
"""
# Basic HEALPix parameters
npix = m.shape[-1]
nside = hp.npix2nside(npix)
ang = hp.pix2ang(nside, np.arange(npix))
# Select the coordinate transformation
rot = hp.Rotator(coord=reversed(coord))
# Convert the coordinates
new_ang = rot(*ang)
new_pix = hp.ang2pix(nside, *new_ang)
return m[..., new_pix]
The example is your case
来源:https://stackoverflow.com/questions/44443498/how-to-convert-and-save-healpy-map-to-different-coordinate-system