将 header 复制到新文件 astropy
Copy header into new file astropy
我有这个脚本可以创建一个具有多个扩展名的文件,但我想将 headers 从旧文件添加到扩展名。
new_hdul = fits.HDUList()
new_hdul.append(fits.PrimaryHDU(header=headermain))
new_hdul.append(fits.ImageHDU(nod1, header=header1, name='Chop1'))
new_hdul.append(fits.ImageHDU(nod2, header=header2, name='Chop2'))
new_hdul.append(fits.ImageHDU(diff1, name='Dif'))
现在我试过了:
headermain = fits.getheader(file,0)
和
headermain = fits.open(file).header.copy()
但两者都给我错误说
ValueError: header must be a Header object
我该如何解决这个问题?
headermain = fits.getheader(file,0)
print(headermain)
通常从文件中获取 header 作为 Header object 并不复杂。您 astropy.io.fits.open()
文件并使用以下命令从 PrimaryHDU 中提取 Header:
from astropy.io import fits
filename = 'test.fits'
with fits.open(filename) as hdus:
headermain = hdus[0].header
或 getheader
:
headermain = fits.getheader(filename) # Defaults to primary header!
结果将是一个 fits.Header
-object,您可以在写作时使用。
但是如果您的文件不是有效的 FITS 文件,则可能会出现问题。如果这不起作用,您可以编辑您的问题并显示这两个函数中任何一个的输出吗?
print(headermain)
我有这个脚本可以创建一个具有多个扩展名的文件,但我想将 headers 从旧文件添加到扩展名。
new_hdul = fits.HDUList()
new_hdul.append(fits.PrimaryHDU(header=headermain))
new_hdul.append(fits.ImageHDU(nod1, header=header1, name='Chop1'))
new_hdul.append(fits.ImageHDU(nod2, header=header2, name='Chop2'))
new_hdul.append(fits.ImageHDU(diff1, name='Dif'))
现在我试过了:
headermain = fits.getheader(file,0)
和
headermain = fits.open(file).header.copy()
但两者都给我错误说
ValueError: header must be a Header object
我该如何解决这个问题?
headermain = fits.getheader(file,0)
print(headermain)
通常从文件中获取 header 作为 Header object 并不复杂。您 astropy.io.fits.open()
文件并使用以下命令从 PrimaryHDU 中提取 Header:
from astropy.io import fits
filename = 'test.fits'
with fits.open(filename) as hdus:
headermain = hdus[0].header
或 getheader
:
headermain = fits.getheader(filename) # Defaults to primary header!
结果将是一个 fits.Header
-object,您可以在写作时使用。
但是如果您的文件不是有效的 FITS 文件,则可能会出现问题。如果这不起作用,您可以编辑您的问题并显示这两个函数中任何一个的输出吗?
print(headermain)