4 """Utilities for interfacing with healpy. Originally implemented in
5 http://github.com/LSSTDESC/dia_pipe
12 """Return healpix index given ra,dec in degrees"""
13 return hp.pixelfunc.ang2pix(nside, np.radians(-dec+90.), np.radians(ra))
17 """Convert from healpix index to ra,dec in degrees"""
18 vec = hp.pix2ang(nside, index)
19 dec = np.rad2deg(-vec[0])+90
20 ra = np.rad2deg(vec[1])
21 return np.dstack((ra, dec))[0]
25 """Convert from equatorial ra,dec in degrees to x,y,z on unit sphere"""
27 theta = np.pi/2 - np.deg2rad(dec)
28 sintheta = np.sin(theta)
29 x = sintheta * np.cos(phi)
30 y = sintheta * np.sin(phi)
32 return np.array([x, y, z])
36 """Convert equatorial ra,dec in degrees to x,y,z on the unit sphere parameters"""
37 ra = np.array(ra, dtype=
'f8', ndmin=1, copy=
False)
38 dec = np.array(dec, dtype=
'f8', ndmin=1, copy=
False)
39 if ra.size != dec.size:
40 raise ValueError(
"ra,dec not same size: %s,%s" % (ra.size, dec.size))
48 """Convert from ra,dec to spherical"""
50 return np.dstack([np.cos(dec*np.pi/180.)*np.cos(ra*np.pi/180.),
51 np.cos(dec*np.pi/180.)*np.sin(ra*np.pi/180.),
52 np.sin(dec*np.pi/180.)])[0]
56 """Convert from ra,dec to spherical from array"""
64 Get the list of healpix indices within max_rad,min_rad given in radians
65 around ra,dec given in degrees
71 pixels = np.unique([hp.query_disc(nside,
eq2vec(a, b), max_rad)
for (a, b)
in zip(ra, dec)])
73 if min_rad > 0
and len(pixels) > 0:
77 dsq = np.sum((vecs-vec0)**2, axis=1)
78 match = dsq > min_rad2
79 pixels = pixels[match]
def query_disc(nside, ra, dec, max_rad, min_rad=0)
def toRaDec(nside, index)
def convert_spherical(ra, dec)
def convert_spherical_array(array)
def toIndex(nside, ra, dec)