use*_*120 2 python fits astropy
我正在尝试在 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')
Run Code Online (Sandbox Code Playgroud)
运行此代码时,我收到以下错误:
verifyError:验证报告错误:HDUList 的元素 1 不是扩展 HDU。注意:astropy.io.fits 使用从零开始的索引。
我看过一些帖子,声称这可能与导出时 PrimaryHDU 需要成为 HDUList 中的第一个有关,但看看我的代码,我相信我已经这样做了。
任何帮助将不胜感激,谢谢。
小智 5
请注意错误消息:
verifyError:验证报告错误:HDUList 的元素 1 不是扩展 HDU。注意:astropy.io.fits 使用从零开始的索引。
中的第二项HDUList也是a ,它不是有效的扩展 HDU (这里本质上意味着第一个和唯一的)。PrimaryHDUPrimary
将该 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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1687 次 |
| 最近记录: |