Exemple #1
0
def liteMapFromDataAndWCS(data, wcs):
    """
    @brief Given a np array: data and a astLib.astWCS instance: wcs creates a liteMap
    
    """
    ltmap = liteMap()

    ltmap.data = data.copy()

    [ltmap.Ny, ltmap.Nx] = ltmap.data.shape
    ltmap.wcs = wcs.copy()
    ltmap.header = ltmap.wcs.header

    #[ltmap.x0,ltmap.x1,ltmap.y0,ltmap.y1] = wcs.getImageMinMaxWCSCoords()
    ltmap.x0, ltmap.y0 = wcs.pix2wcs(0, 0)
    ltmap.x1, ltmap.y1 = wcs.pix2wcs(ltmap.Nx - 1, ltmap.Ny - 1)

    if ltmap.x0 > ltmap.x1:
        ltmap.pixScaleX = np.abs(ltmap.x1-ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    else:
        ltmap.pixScaleX = np.abs((360.-ltmap.x1)+ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    ltmap.pixScaleY = np.abs(ltmap.y1 - ltmap.y0) / ltmap.Ny * np.pi / 180.

    #print 0.5*(ltmap.y0+ltmap.y1)
    ltmap.area = ltmap.Nx * ltmap.Ny * ltmap.pixScaleX * ltmap.pixScaleY * (
        180. / np.pi)**2
    #print np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    flTrace.issue("flipper.liteMap",1, "Map dimensions (Ny,Nx) %d %d"%\
                (ltmap.Ny,ltmap.Nx))
    flTrace.issue("flipper.liteMap",1, "pixel scales Y, X (degrees) %f %f"%\
                (ltmap.pixScaleY*180./np.pi,ltmap.pixScaleX*180./np.pi))

    return ltmap
Exemple #2
0
def liteMapFromDataAndWCS(data,wcs):
    """
    @brief Given a np array: data and a astLib.astWCS instance: wcs creates a liteMap
    
    """
    ltmap = liteMap()
        
    ltmap.data = data.copy()

    [ltmap.Ny,ltmap.Nx] = ltmap.data.shape
    ltmap.wcs = wcs.copy()
    ltmap.header = ltmap.wcs.header
    
    #[ltmap.x0,ltmap.x1,ltmap.y0,ltmap.y1] = wcs.getImageMinMaxWCSCoords()
    ltmap.x0,ltmap.y0 = wcs.pix2wcs(0,0)
    ltmap.x1,ltmap.y1 = wcs.pix2wcs(ltmap.Nx-1,ltmap.Ny-1)

    if ltmap.x0 > ltmap.x1:
        ltmap.pixScaleX = np.abs(ltmap.x1-ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    else:
        ltmap.pixScaleX = np.abs((360.-ltmap.x1)+ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    ltmap.pixScaleY = np.abs(ltmap.y1-ltmap.y0)/ltmap.Ny*np.pi/180.
    
    #print 0.5*(ltmap.y0+ltmap.y1)
    ltmap.area = ltmap.Nx*ltmap.Ny*ltmap.pixScaleX*ltmap.pixScaleY*(180./np.pi)**2
    #print np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    flTrace.issue("flipper.liteMap",1, "Map dimensions (Ny,Nx) %d %d"%\
                (ltmap.Ny,ltmap.Nx))
    flTrace.issue("flipper.liteMap",1, "pixel scales Y, X (degrees) %f %f"%\
                (ltmap.pixScaleY*180./np.pi,ltmap.pixScaleX*180./np.pi))
    
    return ltmap
Exemple #3
0
def new_wcs(wcs, p):

    new_wcs = wcs.copy()

    new_wcs.header['CRPIX1'] = p[0]
    new_wcs.header['CRPIX2'] = p[1]

    cos_a = 1.  #numpy.cos(p[2])
    sin_a = 0.  #numpy.sin(p[2])

    new_wcs.header[
        'CD1_1'] = wcs.header['CD1_1'] * cos_a + wcs.header['CD1_2'] * sin_a
    new_wcs.header[
        'CD1_2'] = wcs.header['CD1_2'] * cos_a - wcs.header['CD1_1'] * sin_a
    new_wcs.header[
        'CD2_1'] = wcs.header['CD2_1'] * cos_a + wcs.header['CD2_2'] * sin_a
    new_wcs.header[
        'CD2_2'] = wcs.header['CD2_2'] * cos_a - wcs.header['CD2_1'] * sin_a
    new_wcs.updateFromHeader()

    return new_wcs
Exemple #4
0
def liteMapFromFits(fileName, extension=0):
    """
    @brief Reads in a FITS file and creates a liteMap object out of it.
    @param extension specify the FITS HDU where the map image is stored
    """
    ltmap = liteMap()
    hdulist = pyfits.open(fileName)
    header = hdulist[extension].header
    flTrace.issue('flipper.liteMap', 3, "Map header \n %s" % header)

    ltmap.data = hdulist[extension].data.copy()

    [ltmap.Ny, ltmap.Nx] = ltmap.data.shape

    wcs = astLib.astWCS.WCS(fileName, extensionName=extension)
    ltmap.wcs = wcs.copy()
    ltmap.header = ltmap.wcs.header
    ltmap.x0, ltmap.y0 = wcs.pix2wcs(0, 0)
    ltmap.x1, ltmap.y1 = wcs.pix2wcs(ltmap.Nx - 1, ltmap.Ny - 1)

    #[ltmap.x0,ltmap.x1,ltmap.y0,ltmap.y1] = wcs.getImageMinMaxWCSCoords()
    if ltmap.x0 > ltmap.x1:
        ltmap.pixScaleX = np.abs(ltmap.x1-ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    else:
        ltmap.pixScaleX = np.abs((360.-ltmap.x1)+ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))

    ltmap.pixScaleY = np.abs(ltmap.y1 - ltmap.y0) / ltmap.Ny * np.pi / 180.
    #print 0.5*(ltmap.y0+ltmap.y1)
    ltmap.area = ltmap.Nx * ltmap.Ny * ltmap.pixScaleX * ltmap.pixScaleY * (
        180. / np.pi)**2
    #print np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    flTrace.issue('flipper.liteMap', 1, 'Reading file %s' % (fileName))
    flTrace.issue("flipper.liteMap",1, "Map dimensions (Ny,Nx) %d %d" %\
                (ltmap.Ny,ltmap.Nx))
    flTrace.issue("flipper.liteMap",1, "pixel scales Y, X (degrees) %f %f" %\
                (ltmap.pixScaleY*180./np.pi,ltmap.pixScaleX*180./np.pi))

    return ltmap
Exemple #5
0
def liteMapFromFits(fileName,extension=0):
    """
    @brief Reads in a FITS file and creates a liteMap object out of it.
    @param extension specify the FITS HDU where the map image is stored
    """
    ltmap = liteMap()
    hdulist = pyfits.open(fileName)
    header = hdulist[extension].header
    flTrace.issue('flipper.liteMap',3,"Map header \n %s"%header)
    
    ltmap.data = hdulist[extension].data.copy() 

    [ltmap.Ny,ltmap.Nx] = ltmap.data.shape

    wcs = astLib.astWCS.WCS(fileName,extensionName = extension)
    ltmap.wcs = wcs.copy()
    ltmap.header = ltmap.wcs.header
    ltmap.x0,ltmap.y0 = wcs.pix2wcs(0,0)
    ltmap.x1,ltmap.y1 = wcs.pix2wcs(ltmap.Nx-1,ltmap.Ny-1)
    
    #[ltmap.x0,ltmap.x1,ltmap.y0,ltmap.y1] = wcs.getImageMinMaxWCSCoords()
    if ltmap.x0 > ltmap.x1:
        ltmap.pixScaleX = np.abs(ltmap.x1-ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    else:
        ltmap.pixScaleX = np.abs((360.-ltmap.x1)+ltmap.x0)/ltmap.Nx*np.pi/180.\
                          *np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
        
    ltmap.pixScaleY = np.abs(ltmap.y1-ltmap.y0)/ltmap.Ny*np.pi/180.
    #print 0.5*(ltmap.y0+ltmap.y1)
    ltmap.area = ltmap.Nx*ltmap.Ny*ltmap.pixScaleX*ltmap.pixScaleY*(180./np.pi)**2
    #print np.cos(np.pi/180.*0.5*(ltmap.y0+ltmap.y1))
    flTrace.issue('flipper.liteMap',1,'Reading file %s' % (fileName))
    flTrace.issue("flipper.liteMap",1, "Map dimensions (Ny,Nx) %d %d" %\
                (ltmap.Ny,ltmap.Nx))
    flTrace.issue("flipper.liteMap",1, "pixel scales Y, X (degrees) %f %f" %\
                (ltmap.pixScaleY*180./np.pi,ltmap.pixScaleX*180./np.pi))
    
    return ltmap