复制一个 FITS header

Copy a FITS header

假设我读了一个 FITS 文件

from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename

image_file = get_pkg_data_filename('tutorials/FITS-images/HorseHead.fits')
cube = fits.open(image_file)[0]

而且我想复制它的 header 这样我就可以在不改变原件的情况下修改副本 header

header_copy = cube.header
header_copy.remove('OBJCTY')

但是,这也会修改 cube.header

我将如何着手制作 header 的实际副本,而不是创建指向 header 的新指针?

header_copy = ?

来自 astropy.io.fitsHeader class 有一个 copy function

header_copy = cube.header.copy()
header_copy.remove('OBJCTY')

然后 header_copy 是对象的实际副本,而不是指向 cube.header

的指针
if cube.header['OBJECTY'] != header_copy['OBJECTY']:
    print('All ok')

>>> All ok