是什么意思,一个卡固定,以满足FITS标准?(What does it mean that a ca

2019-09-26 16:46发布

我试图用一个FITS文件。 我有以下代码:

from astropy.io import fits
from astropy.wcs import WCS

hdul = fits.open(fitsfilename)[0]

wcs = WCS(hdul.header)

它给了我这些警告:

警告:VerifyWarning:验证报告的错误:[astropy.io.fits.verify]警告:VerifyWarning:卡 'A_2_0' 不适用于标准(无效的字符串值: '3.29341755408e-05')。 固定“A_2_0”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:注:astropy.io.fits使用从零开始的索引。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'A_1_1' 不是FITS标准(无效值字符串: '1.51709339878e-05')。 固定“A_1_1”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'A_0_2' 不​​是FITS标准(无效值字符串: '5.17973753556e-06')。 固定“A_0_2”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'B_2_0' 不是FITS标准(无效值字符串: '2.97627426087e-06')。 固定“B_2_0”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'B_1_1' 不是FITS标准(无效值字符串: '2.71948126373e-05')。 固定“B_1_1”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'B_0_2' 不​​是FITS标准(无效值字符串: '1.66848449653e-05')。 固定“B_0_2”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'AP_1_0' 不是FITS标准(无效值字符串: '1.79541533196e-06')。 固定“AP_1_0”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'AP_0_1' 不是FITS标准(无效值字符串: '9.20624843151e-07')。 固定“AP_0_1”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'AP_2_0' 不是FITS标准(无效值字符串: '-3.29292923201e-05')。 固定“AP_2_0”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'AP_1_1' 不是FITS标准(无效值字符串: '-1.51738446887e-05')。 固定“AP_1_1”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'AP_0_2' 不​​是FITS标准(无效值字符串: '-5.18321445978e-06')。 固定“AP_0_2”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'BP_1_0' 不是FITS标准(无效值字符串: '8.99029048217e-07')。 固定“BP_1_0”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'BP_0_1' 不是FITS标准(无效值字符串: '1.15967736014e-06')。 固定“BP_0_1”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'BP_2_0' 不是FITS标准(无效值字符串: '-2.97837492348e-06')。 固定“BP_2_0”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'BP_1_1' 不是FITS标准(无效值字符串: '-2.71998518336e-05')。 固定“BP_1_1”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'BP_0_2' 不​​是FITS标准(无效值字符串: '-1.66872388359e-05')。 固定“BP_0_2”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'WCSR_PRJ' 不是FITS标准(无效值字符串: '3.6679e-07')。 固定“WCSR_PRJ”卡,以满足FITS标准。 [astropy.io.fits.verify]警告:VerifyWarning:卡 'WCSR_PIX' 不是FITS标准(无效值字符串: '8.2565e-05')。 固定“WCSR_PIX”卡,以满足FITS标准。 [astropy.io.fits.verify]

这是什么意思的是固定“A_2_0”卡,以满足FITS标准 ? 交该卡A_2_0指的是数据发生了什么事? 我也有兴趣在警告的含义:VerifyWarning:注:astropy.io.fits使用从零开始的索引

Answer 1:

正如在评论中已经指出, io.fits有功能验证头的有效性 ,甚至会修复较小的琐碎格式错误(它会尽可能只写完全有效的FITS文件作为最好的)。

尽管对于如何在写了一个文件时执行验证的选项,也有一些情况下,它在读取时进行自动验证过,尤其是在解析头。 这是一个长期存在的悬而未决的问题 (这仅仅是一个相关的例子,有几个),该公司目前旗下有控制读时验证/链接地址没有很好的方法。 这可能是好的,有一个简单的方法来关闭此,或完全禁用它。 我想这不会是太难解决,只是从来没有人得到充分的动机,我猜。 虽然目前,如果你想保持沉默的警告,你可以使用标准这样做的Python警告系统 。

有了这样的方式,来警告自己的意思,我想它可能是使用的e代替E在科学记数法(千篇一律的标准可以追溯到FORTRAN的天,其中后者是更常见的,我认为)。 如果消息解释它固定好正是这将是很好。

注“注:astropy.io.fits使用从零开始的索引。” 在技​​术上只是第一个警告消息的一部分,而且是主要有历史原因。 它被添加到该消息的事实是有点错误的甚至,因为消息也甚至提任何指标(在过去,它可能会说一些关于“错误卡[N]”,其中N将是一个指数卡)。 这样做的原因是信息只是作为一种提醒用户谁更习惯于FORTRAN和/或IRAF,它使用基于1的索引,而PyFITS / astropy.io.fits给出了使用基于索引0号HDU和头卡号所使用的C和Python。 在这一点上很可能被移除,或者至少固定,只被附加到警告信息,它实际上是相关的。



文章来源: What does it mean that a card is fixed to meet FITS standard?