astropy适合多个标题

2024-09-27 09:24:19 发布

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

我试图用Python创建一个FITS文件,但是在将头文件和PrimaryHDU一起编译时似乎遇到了问题。在

我做了一个简单的例子,给出了我得到的错误:

import numpy as np
from astropy.io import fits

a = np.ones([5,5])
hdu = fits.PrimaryHDU(a)
hdr = fits.Header()
hdr['NPIX1'] = 60
hdr['NPIX2'] = 60
hdr['CRPIX1'] = 0
hdr['CRPIX2'] = 0
primary_hdu = fits.PrimaryHDU(header=hdr)
hdul = fits.HDUList([primary_hdu, hdu])
hdul.writeto('table4.fits')

运行此代码时,出现以下错误:

VerifyError: Verification reported errors: HDUList's element 1 is not an extension HDU. Note: astropy.io.fits uses zero-based indexing.

我看到一些帖子声称这可能是因为PrimaryHDU需要在HDUList中第一个导出,但是看看我的代码,我相信我已经做到了。在

如有任何帮助,我们将不胜感激,谢谢。在


Tags: 代码ioimporthdr错误npfitsprimary
1条回答
网友
1楼 · 发布于 2024-09-27 09:24:19

请注意错误消息:

VerifyError: Verification reported errors: HDUList's element 1 is not an extension HDU. Note: astropy.io.fits uses zero-based indexing.

HDUList中的第二项是也是aPrimaryHDU,这不是一个有效的扩展HDU(Primary在这里基本上意味着第一个和唯一的)。在

使HDU成为ImageHDU,事情就会起作用:

import numpy as np
from astropy.io import fits

a = np.ones([5,5])
hdu = fits.ImageHDU(a)     # Don't use a `PrimaryHDU` here
hdr = fits.Header()
hdr['NPIX1'] = 60
hdr['NPIX2'] = 60
hdr['CRPIX1'] = 0
hdr['CRPIX2'] = 0
primary_hdu = fits.PrimaryHDU(header=hdr)
hdul = fits.HDUList([primary_hdu, hdu])
hdul.writeto('table4.fits')

相关问题 更多 >

    热门问题