panacea.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:Panacea 作者: grzeimann 项目源码 文件源码
def make_library_image(amp_image, header, outname, fits_list, for_bias=True):
    a,b = amp_image.shape
    overscan = []
    trimsec = []
    bias = re.split('[\[ \] \: \,]', header['BIASSEC'])[1:-1]
    biassec = [int(t)-((i+1)%2) for i,t in enumerate(bias)]  
    trim = re.split('[\[ \] \: \,]', header['TRIMSEC'])[1:-1]
    trimsec = [int(t)-((i+1)%2) for i,t in enumerate(trim)]  
    for F in fits_list:
        overscan.append(biweight_location(F[0].data[biassec[2]:biassec[3],
                                                    biassec[0]:biassec[1]]))
        del F[0].data
    A = []                
    for j,hdu in enumerate(fits_list):
        if for_bias:
            A.append(biweight_filter2d(hdu[0].data[:,i], (25,5),(5,1)) 
            - overscan[j])
        else:
            A.append(hdu[0].data - overscan[j])
    amp_image[:,i] = biweight_location(A, axis=(0,))
    good = np.isfinite(amp_image[:,i])
    amp_image[:,i] = np.interp(np.arange(a), np.arange(a)[good], 
                                   amp_image[good,i])
    for hdu in fits_list:
        del hdu[0].data
        hdu.close()

    hdu = fits.PrimaryHDU(np.array(amp_image[trimsec[2]:trimsec[3],
                                             trimsec[0]:trimsec[1]], 
                                   dtype='float32'), 
                          header=header)
    hdu.header.remove('BIASSEC')
    hdu.header.remove('TRIMSEC')
    hdu.header['DATASEC'] = '[%i:%i,%i:%i]' %(1,trimsec[1]-trimsec[0],1,a)
    hdu.writeto(outname, overwrite=True)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号