Python astropy WCS信息与fits文件中的标题值不同
我在使用fits文件时遇到问题。这个问题与wcs和我的文件头有关,作为信息,我的fits文件的轴是速度和度数 问题是WCS所说的和我的标题(正确)所说的不一致 特别是,如果我这样做: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.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标题中的单位区分大小写