79 assert version
in (0, 1),
"Unrecognised version: %s" % (version,)
85 for i
in range(config.numRings):
86 startDec = self.
_ringSize*(i + 0.5) - 0.5*math.pi
88 dec = min(math.fabs(startDec), math.fabs(stopDec))
91 super(RingsSkyMap, self).
__init__(numTracts, config, version)
126 """Generate TractInfo for the specified tract index."""
129 ra, dec = 0, -0.5*math.pi
131 ra, dec = 0, 0.5*math.pi
133 dec = self.
_ringSize*(ringNum + 1) - 0.5*math.pi
134 ra = ((2*math.pi*tractNum/self.
_ringNums[ringNum])*geom.radians
210 _dec = np.deg2rad(dec)
212 _ra = np.atleast_1d(ra)
213 _dec = np.atleast_1d(dec)
216 indexes = np.full(_ra.size, -1, dtype=np.int32)
219 firstRingStart = self.
_ringSize*0.5 - 0.5*np.pi
220 ringNums = np.zeros(len(_dec), dtype=np.int32)
222 ringNums[_dec < firstRingStart] = -1
223 ringNums[_dec > -1*firstRingStart] = self.
configconfig.numRings
225 mid = (_dec >= firstRingStart) & (_dec <= -1*firstRingStart)
226 ringNums[mid] = ((_dec[mid] - firstRingStart)/self.
_ringSize).astype(np.int32)
228 indexes[ringNums == -1] = 0
233 inRange, = np.where(indexes < 0)
237 _ringCumulative = np.cumsum(np.insert(_ringNumArray, 0, 0))
239 deltaWrap = (_ra[inRange] - self.
_raStart.asRadians()) % (2.*np.pi)
240 tractNum = (deltaWrap/(2.*np.pi/_ringNumArray[ringNums[inRange]]) + 0.5).astype(np.int32)
242 tractNum[tractNum == _ringNumArray[ringNums[inRange]]] = 0
247 offByOne, = np.where((tractNum == 0)
248 & (ringNums[inRange] != 0))
249 ringNums[inRange[offByOne]] += 1
251 indexes[inRange] = _ringCumulative[ringNums[inRange]] + tractNum + 1