复制FITS文件HDU和数据

时间:2014-06-30 03:08:15

标签: python pyfits

我正在尝试使用新的数据列更新FITS文件。我的文件有一个主HDU和另外两个HDU,每个HDU包括一个表。

由于在已经存在的FITS文件的表中添加新列是一种痛苦(无法解决,请参阅herehere),我改变主意并尝试专注于创建新文件带有修改过的表格。

这意味着我必须从原始文件(主要HDU,其他HDU等)复制所有其余部分。有没有标准的方法来做到这一点?或者,什么是最好的(最快?)方式,可能避免逐个复制每个元素"手工"?

1 个答案:

答案 0 :(得分:0)

关于添加新列的主题,您看过this documentation了吗?这是添加新列创建新表的最直接方法。这必然涉及创建新的二进制表HDU,因为它描述了不同的数据。

或者你看过Astropy表界面了吗?它支持读写FITS表。见here。它基本上以相同的方式工作,但更多的努力隐藏细节。这是PyFITS / astropy.io.fits接口逐渐被替换的接口,因为它实际上提供了一个很好的表接口。

添加新的HDU或替换现有FITS文件中的现有HDU只需打开该文件并更新HDUList数据结构(其工作方式类似于普通的Python列表)并编写更新的{{ 1}}到一个新文件。

完整示例可能类似于:

HDUList

大致相同的东西应该有效。一旦新的Table界面完全集成,这在Astropy中会更容易,但现在它涉及的内容。没有理由做任何事情"手工"可以这么说。