具有多个 headers 的 astropy FITS
astropy FITS with multiple headers
我正在尝试在 Python 中创建一个 FITS 文件,但在同时编译 headers 和 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 中的第一个有关,但查看我的代码,我相信我已经这样做了。
如有任何帮助,将不胜感激,谢谢。
注意错误信息:
VerifyError: Verification reported errors: HDUList's element 1 is not an extension HDU. Note: astropy.io.fits uses zero-based indexing.
HDUList
中的第二项是also a PrimaryHDU
,这不是有效的扩展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')
我正在尝试在 Python 中创建一个 FITS 文件,但在同时编译 headers 和 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 中的第一个有关,但查看我的代码,我相信我已经这样做了。
如有任何帮助,将不胜感激,谢谢。
注意错误信息:
VerifyError: Verification reported errors: HDUList's element 1 is not an extension HDU. Note: astropy.io.fits uses zero-based indexing.
HDUList
中的第二项是also a PrimaryHDU
,这不是有效的扩展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')