Exemplo n.º 1
0
    def tan2fp(self, xtan, ytan, adc1, adc2):
        """
        Converts tangent plane coordinates xtan,ytan -> focal plane xfp,yfp
        """
        
        scale,rotation,offset_x,offset_y,zbcoeffs = self.interpolate_coeffs(adc1,adc2)
        
        mean_adc_rad = (adc1+adc2)/2. *np.pi/180.
        ca = np.cos(mean_adc_rad)
        sa = np.sin(mean_adc_rad)

        rxtan, rytan = _reduce_xytan(xtan,ytan)

        # rotate then derotate to account
        # for average ADC angle
        # this leave 20 microns residuals, I don't understand why ...
        rrxtan = ca*rxtan + sa*rytan
        rrytan = -sa*rxtan + ca*rytan
        rrxfp, rryfp   = transform(rrxtan, rrytan, scale, rotation, offset_x, offset_y, self.zbpolids, zbcoeffs)
        rxfp = ca*rrxfp - sa*rryfp
        ryfp = sa*rrxfp + ca*rryfp

        xfp, yfp     = _expand_xyfp(rxfp, ryfp)
        
        return xfp, yfp
Exemplo n.º 2
0
 def fvc2fp(self, xpix, ypix, xerr=None, yerr=None):
     """
     Converts fiber view camera pixel x,y -> focal plane x,y
     """
     rx, ry = _reduce_xyfvc(xpix, ypix)
     rxfp, ryfp = transform(rx, ry, self.scale, self.rotation,
                            self.offset_x, self.offset_y, self.zbpolids,
                            self.zbcoeffs)
     xfp, yfp = _expand_xyfp(rxfp, ryfp)
     return xfp, yfp