我正在尝试将新卡插入/附加到FITS文件的现有标头(主要标头)。使用下面的代码,我可以在终端上看到我“成功”执行了这个操作。但是当我在DS9中打开FITS文件并检查标题信息时,我的新卡并不存在。所以我的操作没有被保存。这里我漏掉了什么?
from astropy.io import fits
with fits.open('my.fits') as hdul:
hdr = hdul[0].header
hdr.append(('NEWCARD', 'value', 'A comment.'), end=True)
hdul.info()
print(repr(hdr))提前感谢!
另外,创建一个新的标题并将我的新卡片添加到那里是不是更好?没必要回答这个问题,我只是好奇。因为我是处理fits文件的新手,所以我想知道这是不是一个更好的方法。
发布于 2020-10-13 20:46:51
实际上,对于您的代码,您并没有保存更新后的文件。您必须使用更新模式并调用.flush()
from astropy.io import fits
with fits.open('my.fits', mode='update') as hdul:
hdr = hdul[0].header
hdr.append(('NEWCARD', 'value', 'A comment.'), end=True)
hdul.flush() # changes are written back to original.fitshttps://docs.astropy.org/en/latest/io/fits/#save-file-changes
https://stackoverflow.com/questions/64272117
复制相似问题