我正在尝试将拟合图像切成4个四分位数。我的原始拟合图像的尺寸为(4163,3821)。所以我想要4个fits文件,其中包含原始fits文件中的所有信息,但图像尺寸为(2081.5,1910.5)
我用了这个:
with fits.open("/home/andreas/Desktop/my_fileN.fits") as f:
original_data=f[0].data
original_header=f[0].header
x_dim=original_data.shape[0]
y_dim=original_data.shape[1]
deg_per_pixel = original_header["CDELT2"]
min_pixels = 20 * deg_per_pixel
min_pixels_arcsec = min_pixels * 3600
w = WCS(original_header)
w = w.celestial
position=((x_dim/4)+(0*x_dim/2)),((y_dim/4)+(0*y_dim/2))
size= ( (x_dim/2)*u.pixel, (y_dim/2)*u.pixel)
patch_data = Cutout2D(data=original_data,
position=position,
size=size,
wcs=w,
copy=True)
#create a new FITS HDU
patch_hdu = fits.PrimaryHDU(data=patch_data.data,
header=patch_data.wcs.to_header())
patch_hdu.header['BMAJ'] = original_header['BMAJ']
patch_hdu.header['BMIN'] = original_header['BMIN']
#
output_file_path = '/home/andreas/Desktop/' + str(0) + "_" + str(0) + ".fits"
patch_hdu.writeto(output_file_path, overwrite=True)
(位置0为每个四分位数-那里有一个for循环。)
所以问题是我得到了4个fit文件,但是尺寸错误,图像的一部分丢失了。我得到的尺寸是(2082,1910),(1997,1910),(2082、1653),(1997,1653)。
我也尝试过交换position =(y,x)或size =(y,x),但问题仍然存在。
任何想法为什么会这样?以及如何正确解决呢?