在Python中使用WCS在银河坐标中绘制Halpha地图的FITS图像

问题描述

我正在尝试从其“信息”如下的拟合图像中读取并绘制Halpha映射:

No.    Name      Ver    Type      Cards   Dimensions   Format
  0  PRIMARY       1 PrimaryHDU      66   (8640,4320)   float32

标题由以下组成:

"SIMPLE  =                    T / Written by IDL:  Sat Jan 25 22:41:24 2003      
BITPIX  =                  -32 / Number of bits per data pixel                  
NAXIS   =                    2 / Number of data axes                            
NAXIS1  =                 8640 /                                                
NAXIS2  =                 4320 /                                                
DATE    = '2003-01-26'         / Creation UTC (CCCC-MM-DD) date of FITS header  
COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy  
COMMENT and Astrophysics',volume 376,page 359; bibcode 2001A&A...376..359H    
CTYPE1  = 'GLON-CAR'           /                                                
CRPIX1  =              4320.50 /                                                
CRVAL1  =              0.00000 /                                                
CTYPE2  = 'GLAT-CAR'           /                                                
CRPIX2  =              2160.50 /                                                
CRVAL2  =              0.00000 /                                                
CD1_1   =     -0.0416666666667 /                                                
CD1_2   =        0.00000000000 /                                                
CD2_1   =        0.00000000000 /                                                
CD2_2   =      0.0416666666667 /                                                
LONPOLE =                  180 /                                                
PROJP1  =                    0 /                                                
PROJP2  =                    0 /                                                
EQUINOX =              2000.00 / "

因此,如果我理解正确,我可以使用WCS模块直接执行从像素坐标到世界坐标(在这种情况下,是银河经度和纬度)的转换。然后,我的代码编写如下:

hdu = fits.open('Halpha_map.fits')
hdr = hdu[0].header
data = hdu[0].data
wcs = WCS(header=hdr,fix = True)
ax = plt.subplot(projection=wcs)
im = ax.imshow(-np.log10(data),cmap = 'gray') #Invert logarithm gray map.

然后,我想将图限制为特定的银河经度和纬度,例如l = [50°,55°]和b = [0°,5°]。当我尝试此操作时,将获得以下图:

https://i.stack.imgur.com/uMo6i.png

所以我有一个奇怪的灰色而不是Halpha贴图的适当部分,并且坐标与我要绘制的部分不对应。对这个问题的由来有任何想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)