Python astropy WCS信息与fits文件中的标题值不同

Python astropy WCS信息与fits文件中的标题值不同,python,header,astropy,fits,pyfits,Python,Header,Astropy,Fits,Pyfits,我在使用fits文件时遇到问题。这个问题与wcs和我的文件头有关,作为信息,我的fits文件的轴是速度和度数 问题是WCS所说的和我的标题(正确)所说的不一致 特别是,如果我这样做: fits.open('file.fits')[0].header['CRVAL2'] ,我得到了6012.0,并且 fits.open('pv749290_gu.fits')[0].header['CDELT2'] ,我得到4.0分 到目前为止还不错。当我这样做的时候,问题就出现了 w = WCS('file.

我在使用fits文件时遇到问题。这个问题与wcs和我的文件头有关,作为信息,我的fits文件的轴是速度和度数

问题是WCS所说的和我的标题(正确)所说的不一致

特别是,如果我这样做:

fits.open('file.fits')[0].header['CRVAL2']
,我得到了6012.0,并且

fits.open('pv749290_gu.fits')[0].header['CDELT2']
,我得到4.0分

到目前为止还不错。当我这样做的时候,问题就出现了

w = WCS('file.fits')
,因为我得到:

 CRVAL : 0.0  6012000.0 

 CDELT : 2.999833375699044  4000.0  
所以,正如你所看到的,我最初对CRVAL2和CDELT2的值突然大了3个数量级,这影响了我的图像绘制,因为我使用“w”作为投影来绘制轴。
有人能帮我解决这个问题吗?提前谢谢

所以,如果有人有一天也有同样的问题:

问题是,为了尽可能清楚,我向文件的CUNIT2添加了一个值,即使最初该关键字不在标题中。在本例中,我使用的是hdr['CUNIT2']='KM/S',但在查看WCS(file.fits)时,CRVAL2的值似乎以m/S而不是KM/S为单位,因此我认为WCS的默认值与我给出的单位(?)之间存在一定的紧张关系


在任何情况下,通过再次移除标题的CUNIT2标签,并再次读取WCS(file.fits),WCS和标题之间的差异消失,文件现在具有正确的维度,尽管关键字中未指定单位(但当然,您可以向CRVAL2添加注释,明确说明单位)

WCS(
CUNIT1
CUNIT2
)的单位是什么?您有带有
CDELT
CROTA
的老式WCS,还是带有
CDi_j
矩阵的新款WCS?你能在某处发布完整的WCS吗…?嗨@Astrosnaper,非常感谢你的帮助。事实上,你的评论让我对我的城市有了更多的思考,我发现了问题所在!嗯,您应该始终尝试使数据/拟合标题尽可能清晰。。。如果将
CUNIT2
设置为
'm/s'
(小写),它是否工作?从2012年开始,FITS标题中的单位区分大小写