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)
评论列表
文章目录