Beispiel #1
0
 def inv(self, rad, vec):
     rad = Planck.parse_channel(rad)
     l.info('Rotating to detector %s' % rad)
     if self.deaberration:
         l.warning('Applying deaberration correction')
         vec -= correction.simple_deaberration(vec, self.obt, self.coord)
         qarray.norm_inplace(vec)
     vec_rad = qarray.rotate(qarray.inv(self.qsatgal_interp), vec)
     invsiam = np.linalg.inv(self.siam.get(rad))
     #invsiamquat = qarray.inv(qarray.norm(qarray.from_rotmat(self.siam.get(rad))))
     #qarray.rotate(invsiamquat, vec_rad)
     return np.array([np.dot(invsiam , row) for row in vec_rad])
Beispiel #2
0
 def get(self, rad):
     rad = Planck.parse_channel(rad)
     l.info('Rotating to detector %s' % rad)
     x = np.dot(self.siam.get(rad),[1, 0, 0])
     vec = qarray.rotate(self.qsatgal_interp, x)
     qarray.norm_inplace(vec)
     if self.deaberration:
         l.warning('Applying deaberration correction')
         vec += correction.simple_deaberration(vec, self.obt, self.coord)
         qarray.norm_inplace(vec)
     l.info('Rotated to detector %s' % rad)
     return vec