-1

我有这个脚本可以创建一个具有多个扩展名的文件,但我想将旧文件的标题添加到扩展名中。

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 必须是 Header 对象

我怎样才能解决这个问题?

headermain = fits.getheader(file,0)
print(headermain)

http://pastebin.com/JXki7EPV

4

1 回答 1

1

通常,从文件中获取标头作为 Header 对象并不复杂。您astropy.io.fits.open()使用以下文件从 PrimaryHDU 提取文件并提取标题:

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)
于 2016-04-06T18:36:12.090 回答