LSST Applications g0b6bd0c080+a72a5dd7e6,g1182afd7b4+2a019aa3bb,g17e5ecfddb+2b8207f7de,g1d67935e3f+06cf436103,g38293774b4+ac198e9f13,g396055baef+6a2097e274,g3b44f30a73+6611e0205b,g480783c3b1+98f8679e14,g48ccf36440+89c08d0516,g4b93dc025c+98f8679e14,g5c4744a4d9+a302e8c7f0,g613e996a0d+e1c447f2e0,g6c8d09e9e7+25247a063c,g7271f0639c+98f8679e14,g7a9cd813b8+124095ede6,g9d27549199+a302e8c7f0,ga1cf026fa3+ac198e9f13,ga32aa97882+7403ac30ac,ga786bb30fb+7a139211af,gaa63f70f4e+9994eb9896,gabf319e997+ade567573c,gba47b54d5d+94dc90c3ea,gbec6a3398f+06cf436103,gc6308e37c7+07dd123edb,gc655b1545f+ade567573c,gcc9029db3c+ab229f5caf,gd01420fc67+06cf436103,gd877ba84e5+06cf436103,gdb4cecd868+6f279b5b48,ge2d134c3d5+cc4dbb2e3f,ge448b5faa6+86d1ceac1d,gecc7e12556+98f8679e14,gf3ee170dca+25247a063c,gf4ac96e456+ade567573c,gf9f5ea5b4d+ac198e9f13,gff490e6085+8c2580be5c,w.2022.27
LSST Data Management Base Package
Functions
lsst.pipe.tasks.associationUtils Namespace Reference

Functions

def toIndex (nside, ra, dec)
 
def toRaDec (nside, index)
 
def eq2xyz (ra, dec)
 
def eq2xyzVec (ra, dec)
 
def convert_spherical (ra, dec)
 
def convert_spherical_array (array)
 
def query_disc (nside, ra, dec, max_rad, min_rad=0)
 

Function Documentation

◆ convert_spherical()

def lsst.pipe.tasks.associationUtils.convert_spherical (   ra,
  dec 
)
Convert from ra,dec to spherical coordinates.

Used in query_disc.

Parameters
----------
ra : `float`
    RA in radians.
dec : `float`
    Declination in radians

Definition at line 124 of file associationUtils.py.

124def convert_spherical(ra, dec):
125 """Convert from ra,dec to spherical coordinates.
126
127 Used in query_disc.
128
129 Parameters
130 ----------
131 ra : `float`
132 RA in radians.
133 dec : `float`
134 Declination in radians
135 """
136 return np.dstack([np.cos(dec*np.pi/180)*np.cos(ra*np.pi/180),
137 np.cos(dec*np.pi/180)*np.sin(ra*np.pi/180),
138 np.sin(dec*np.pi/180)])[0]
139
140

◆ convert_spherical_array()

def lsst.pipe.tasks.associationUtils.convert_spherical_array (   array)
Convert from and a array ra,dec to spherical coordinates.

Used in query_disc

Parameters
----------
array : `numpy.ndarray`, (N, 2)
    (N, 2) Array of RA, DEC values.

Returns
-------
vecs : `numpy.ndarray`, (N, 3)
    Vectors on the unit sphere

Definition at line 141 of file associationUtils.py.

141def convert_spherical_array(array):
142 """Convert from and a array ra,dec to spherical coordinates.
143
144 Used in query_disc
145
146 Parameters
147 ----------
148 array : `numpy.ndarray`, (N, 2)
149 (N, 2) Array of RA, DEC values.
150
151 Returns
152 -------
153 vecs : `numpy.ndarray`, (N, 3)
154 Vectors on the unit sphere
155 """
156 ra = array[:, 0]
157 dec = array[:, 1]
158 return convert_spherical(ra, dec)
159
160

◆ eq2xyz()

def lsst.pipe.tasks.associationUtils.eq2xyz (   ra,
  dec 
)
Convert from equatorial ra,dec in degrees to x,y,z on unit sphere.

Parameters
----------
ra : `float`
    RA in degrees.
dec : `float`
    Declination in degrees

Returns
-------
xyz : `numpy.ndarray`, (3,)
    Float xyz positions on the unit sphere.

Definition at line 72 of file associationUtils.py.

72def eq2xyz(ra, dec):
73 """Convert from equatorial ra,dec in degrees to x,y,z on unit sphere.
74
75 Parameters
76 ----------
77 ra : `float`
78 RA in degrees.
79 dec : `float`
80 Declination in degrees
81
82 Returns
83 -------
84 xyz : `numpy.ndarray`, (3,)
85 Float xyz positions on the unit sphere.
86 """
87 phi = np.deg2rad(ra)
88 theta = np.pi/2 - np.deg2rad(dec)
89 sintheta = np.sin(theta)
90 x = sintheta*np.cos(phi)
91 y = sintheta*np.sin(phi)
92 z = np.cos(theta)
93 return np.array([x, y, z])
94
95

◆ eq2xyzVec()

def lsst.pipe.tasks.associationUtils.eq2xyzVec (   ra,
  dec 
)
Convert equatorial ra,dec in degrees to x,y,z on the unit sphere
parameters

Vectorized version of ``eq2xyz``

Parameters
----------
ra : array_like, (N,)
    Array of RA in degrees.
dec : array_like, (N,)
    Declination in degrees

Returns
-------
vec : `numpy.ndarray`, (N,3)
    Array of unitsphere 3-vectors.

Definition at line 96 of file associationUtils.py.

96def eq2xyzVec(ra, dec):
97 """Convert equatorial ra,dec in degrees to x,y,z on the unit sphere
98 parameters
99
100 Vectorized version of ``eq2xyz``
101
102 Parameters
103 ----------
104 ra : array_like, (N,)
105 Array of RA in degrees.
106 dec : array_like, (N,)
107 Declination in degrees
108
109 Returns
110 -------
111 vec : `numpy.ndarray`, (N,3)
112 Array of unitsphere 3-vectors.
113 """
114 ra = np.array(ra, dtype='f8', ndmin=1, copy=False)
115 dec = np.array(dec, dtype='f8', ndmin=1, copy=False)
116 if ra.size != dec.size:
117 raise ValueError("ra,dec not same size: %s,%s" % (ra.size, dec.size))
118
119 vec = eq2xyz(ra, dec)
120
121 return vec
122
123

◆ query_disc()

def lsst.pipe.tasks.associationUtils.query_disc (   nside,
  ra,
  dec,
  max_rad,
  min_rad = 0 
)
Get the list of healpix indices within max_rad, min_rad given in radians
around ra,dec given in degrees

Parameters
----------
nside : `int`
    Resolution of the healpixels to search/return.
ra : `float`
    RA in degrees.
dec : `float`
    Declination in degrees
max_rad : `float`
    Max distance in radians to search nearby healpixels.
min_rad : `float`, optional
    Minimum distance in radians to search healpixels. Default = 0.

Definition at line 161 of file associationUtils.py.

161def query_disc(nside, ra, dec, max_rad, min_rad=0):
162 """Get the list of healpix indices within max_rad, min_rad given in radians
163 around ra,dec given in degrees
164
165 Parameters
166 ----------
167 nside : `int`
168 Resolution of the healpixels to search/return.
169 ra : `float`
170 RA in degrees.
171 dec : `float`
172 Declination in degrees
173 max_rad : `float`
174 Max distance in radians to search nearby healpixels.
175 min_rad : `float`, optional
176 Minimum distance in radians to search healpixels. Default = 0.
177 """
178 if np.isscalar(ra):
179 ra = np.array([ra])
180 dec = np.array([dec])
181
182 pixels = np.unique(
183 [hp.query_disc(nside, eq2xyzVec(a, b), max_rad)
184 for (a, b) in zip(ra, dec)])
185
186 if min_rad > 0 and len(pixels) > 0:
187 vec0 = convert_spherical(ra, dec)
188 min_rad2 = min_rad**2
189 vecs = convert_spherical_array(toRaDec(nside, pixels))
190 dsq = np.sum((vecs - vec0)**2, axis=1)
191 match = dsq > min_rad2
192 pixels = pixels[match]
193
194 return pixels
def query_disc(nside, ra, dec, max_rad, min_rad=0)

◆ toIndex()

def lsst.pipe.tasks.associationUtils.toIndex (   nside,
  ra,
  dec 
)
Return healpix index given ra, dec in degrees

Parameters
----------
nside : `int`
    Power of 2 nside healpix resolution.
ra : `float`
    RA in degrees.
dec : `float`
    Declination in degrees

Returns
-------
index : `int`
    Unique healpix pixel ID containing point RA, DEC at resolution nside.

Definition at line 31 of file associationUtils.py.

31def toIndex(nside, ra, dec):
32 """Return healpix index given ra, dec in degrees
33
34 Parameters
35 ----------
36 nside : `int`
37 Power of 2 nside healpix resolution.
38 ra : `float`
39 RA in degrees.
40 dec : `float`
41 Declination in degrees
42
43 Returns
44 -------
45 index : `int`
46 Unique healpix pixel ID containing point RA, DEC at resolution nside.
47 """
48 return hp.pixelfunc.ang2pix(nside, np.radians(-dec + 90), np.radians(ra))
49
50

◆ toRaDec()

def lsst.pipe.tasks.associationUtils.toRaDec (   nside,
  index 
)
Convert from healpix index to ra,dec in degrees

Parameters
----------
nside : `int`
    Resolution of healpixel "grid".
index : `int`
    Index of the healpix pixel we want to find the location of.

Returns
-------
pos : `numpy.ndarray`, (2,)
    RA and DEC of healpix pixel location in degrees.

Definition at line 51 of file associationUtils.py.

51def toRaDec(nside, index):
52 """Convert from healpix index to ra,dec in degrees
53
54 Parameters
55 ----------
56 nside : `int`
57 Resolution of healpixel "grid".
58 index : `int`
59 Index of the healpix pixel we want to find the location of.
60
61 Returns
62 -------
63 pos : `numpy.ndarray`, (2,)
64 RA and DEC of healpix pixel location in degrees.
65 """
66 vec = hp.pix2ang(nside, index)
67 dec = np.rad2deg(-vec[0]) + 90
68 ra = np.rad2deg(vec[1])
69 return np.dstack((ra, dec))[0]
70
71