如何使用pyfits打开压缩拟合文件?
下面的代码读入主要的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”似乎无效。
答案 0 :(得分:3)
如果主HDU上的.data
属性为None
,则表示主HDU不包含任何数据。您可以通过检查文件信息来确认:
hdulist.info()
您可能正在尝试阅读多扩展FITS文件,而您正在寻找的数据位于另一座城堡,我的意思是HDU。 disable_image_compression=True
无效,因为这会禁用对压缩图像的支持:)
ETA:实际上,平铺压缩的FITS图像永远不会位于主HDU中,因为它在内部存储为二进制表,只能是扩展HDU。
答案 1 :(得分: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