Astropy将校验和添加到现有的拟合文件

时间:2016-02-05 19:29:35

标签: python astropy

我已经写了一个拟合文件(有人发给我),我想在标题中添加校验和和数据。我发现使用astropy.io.fits添加校验和的唯一示例涉及在将每个部分添加到HDU时构建新的HDU and verifying it。我可以做什么,但这看起来好像需要更多的开销然后才需要。

有没有办法将校验和和数据添加到现有的HDU?

1 个答案:

答案 0 :(得分:4)

ImageHDU个对象有一个名为add_checksum()的方法。这应该完全符合你的要求。

因此,您可以在更新模式下打开FITS文件,然后再调用它并再次关闭该文件。

from astropy.io import fits

with fits.open(filename, mode='update') as hdus:
    hdus[0].add_checksum() # Fill in the arguments like you need them

with是首选,因为它会在退出close上下文时自动with文件(即使发生异常),但您也可以在没有with的情况下打开和关闭它{1}}:

from astropy.io import fits

hdul = fits.open(filename, mode='update')
hdul[0].add_checksum()
hdul.close()