astropy.io.fits:如何将新卡附加到fits文件的头?

2024-10-03 23:17:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将新卡插入/附加到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文件的新手,我想知道这是否是一种更好的方法


Tags: 文件代码fromioimport信息终端标题
1条回答
网友
1楼 · 发布于 2024-10-03 23:17:59

实际上,您的代码并没有保存更新的文件。您必须使用更新模式并调用.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.fits

https://docs.astropy.org/en/latest/io/fits/#save-file-changes

相关问题 更多 >