2

如何使用 pyfits 打开压缩的 fit 文件?

下面的代码读入主 hdu,这是一个图像。结果是一个 NoneType 对象。

    # read in file
    file_input_fit = "myfile.fits.fz"
    hdulist = pyfits.open(file_input_fit)
    img     = hdulist[0].data

在 pyfits.open() "disable_image_compression=True" 中使用关键字似乎无效。

4

2 回答 2

3

如果.data主 HDU 上的属性是None,则表示主 HDU 不包含数据。您可以通过检查文件信息来确认这一点:

hdulist.info()

您可能正在尝试读取多扩展 FITS 文件,而您要查找的数据在另一个城堡中,我的意思是 HDU。 disable_image_compression=True无济于事,因为这会禁用对压缩图像的支持:)

ETA:事实上,切片压缩的 FITS 图像永远不会在主 HDU 中,因为它在内部存储为二进制表,只能是扩展 HDU。

于 2013-12-31T01:23:05.797 回答
1

这作为评论会更好,但我没有发表评论的声誉,所以我不得不写一个答案。但是,答案是一样的——即压缩数据存储在第二个 HDU 中。该评论只是为了显示我在这里的压缩图像上的样子(在使用 OP 的确切行打开文件之后):

>>> hdulist.info()
Filename: /tmp/test.fits.fz
No.    Name         Type      Cards   Dimensions     Format
0    PRIMARY     PrimaryHDU       6   ()              
1                CompImageHDU     9   (24576, 6160)  float32   
于 2014-12-02T20:09:05.180 回答