我正在尝试使用 FITS 文件。我有以下代码:
from astropy.io import fits
from astropy.wcs import WCS
hdul = fits.open(fitsfilename)[0]
wcs = WCS(hdul.header)
它给了我这些警告:
WARNING: VerifyWarning: Verification reported errors: [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'A_2_0' is not FITS standard (invalid value string: '3.29341755408e-05'). Fixed 'A_2_0' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Note: astropy.io.fits uses zero-based indexing. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'A_1_1' is not FITS standard (invalid value string: '1.51709339878e-05'). Fixed 'A_1_1' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'A_0_2' is not FITS standard (invalid value string: '5.17973753556e-06'). Fixed 'A_0_2' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'B_2_0' is not FITS standard (invalid value string: '2.97627426087e-06'). Fixed 'B_2_0' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'B_1_1' is not FITS standard (invalid value string: '2.71948126373e-05'). Fixed 'B_1_1' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'B_0_2' is not FITS standard (invalid value string: '1.66848449653e-05'). Fixed 'B_0_2' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'AP_1_0' is not FITS standard (invalid value string: '1.79541533196e-06'). Fixed 'AP_1_0' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'AP_0_1' is not FITS standard (invalid value string: '9.20624843151e-07'). Fixed 'AP_0_1' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'AP_2_0' is not FITS standard (invalid value string: '-3.29292923201e-05'). Fixed 'AP_2_0' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'AP_1_1' is not FITS standard (invalid value string: '-1.51738446887e-05'). Fixed 'AP_1_1' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'AP_0_2' is not FITS standard (invalid value string: '-5.18321445978e-06'). Fixed 'AP_0_2' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'BP_1_0' is not FITS standard (invalid value string: '8.99029048217e-07'). Fixed 'BP_1_0' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'BP_0_1' is not FITS standard (invalid value string: '1.15967736014e-06'). Fixed 'BP_0_1' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'BP_2_0' is not FITS standard (invalid value string: '-2.97837492348e-06'). Fixed 'BP_2_0' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'BP_1_1' is not FITS standard (invalid value string: '-2.71998518336e-05'). Fixed 'BP_1_1' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'BP_0_2' is not FITS standard (invalid value string: '-1.66872388359e-05'). Fixed 'BP_0_2' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'WCSR_PRJ' is not FITS standard (invalid value string: '3.6679e-07'). Fixed 'WCSR_PRJ' card to meet the FITS standard. [astropy.io.fits.verify]
WARNING: VerifyWarning: Card 'WCSR_PIX' is not FITS standard (invalid value string: '8.2565e-05'). Fixed 'WCSR_PIX' card to meet the FITS standard. [astropy.io.fits.verify]
这意味着什么修复了“A_2_0”卡以满足 FITS 标准?卡 A_2_0 所引用的数据发生了什么?我也对它的含义感兴趣警告:验证警告:注意:astropy.io.fits 使用从零开始的索引.
io.fits
具有以下功能:验证标头的有效性 http://docs.astropy.org/en/stable/io/fits/usage/verification.html#verification-at-each-card,甚至会修复微小的格式错误(它会尽力只编写完全有效的 FITS 文件)。
尽管可以选择如何在写出文件时执行验证,但在某些情况下,它也在读取时执行自动验证,特别是在解析标头时。它是长期悬而未决的问题 https://github.com/astropy/astropy/issues/3668(这只是一个相关的示例;还有几个)当前没有很好的方法来控制读取时验证/修复。如果有一种更简单的方法来消除此问题或完全禁用它可能会很好。我认为解决这个问题并不太难,我想只是没有人有足够的动力。尽管目前,如果您希望消除警告,可以使用标准Python警告系统 http://docs.astropy.org/en/stable/warnings.html.
排除这一点,至于警告本身的含义,我认为这可能是使用e
代替E
以科学记数法表示(FITS 标准可以追溯到 FORTRAN 时代,我认为后者更为常见)。如果该消息能够更好地准确解释它正在修复的内容,那就太好了。
Note: astropy.io.fits uses zero-based indexing.
从技术上讲,这只是第一个警告消息的一部分,并且主要是出于历史原因。事实上,它被添加到此消息中甚至有点错误,因为该消息甚至提到了任何索引(过去它可能说了一些关于“卡 [N] 中的错误”的内容,其中N
将是卡片的索引)。此消息的原因只是提醒那些更习惯 FORTRAN 和/或 IRAF 的用户,它们使用基于 1 的索引,而PyFITS/astropy.io.fits
使用 C 和 Python 所使用的基于 0 的索引给出 HDU 编号和头卡编号。此时,它可能会被删除,或者至少修复为仅附加到与其实际相关的警告消息中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)