在拟合图像中包含WCS坐标

2024-09-28 22:41:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个2D纽比阵列'ZEA_nu'u sky'最初创建为

n=128
ZEA_N_sky=np.zeros((n,n))

后来,一些值被分配给这个数组的每个像素。我可以用下面的代码将这个数组绘制成FITS图像(可以由ds9打开),但是我也希望看到WCS坐标。也就是说,当我在图像上滚动鼠标时,我应该能够看到gal long、gal lat;Right Asc、Dec等等。我该如何实现呢?我需要手动执行还是有一些header()技巧?在

使用WCS包和use all-pix2world()提供的文档似乎不起作用(相反,我似乎不理解它)。如果有人能帮我查密码吗?谢谢!在

^{pr2}$

我已经取得了一些进展。这是我现在使用的代码,我确实获得了WCS参数,但是我在FITS图像上得到的经度值是错误的!我想我在ZEA投影参数值上犯了错误。在

NSGP=1 #Parameter for North side projection, -1 for south side

w = wcs.WCS(naxis=2)
w.wcs.crpix = [SCALE,SCALE] # SCALE is half the value of my pixel range in the image. n/2=128/2=64
w.wcs.cdelt = np.array([-NSGP*90.0/float(SCALE) * 0.90032, NSGP*90.0/float(SCALE) * 0.90032]) # increments in degrees per pixel
w.wcs.crval = [NSGP*90.0, NSGP*90.0] #RA and dec values in hours and degrees    
w.wcs.ctype = ["GLON-ZEA", "GLAT-ZEA"]
#w.wcs.set_pv([(180, NSGP, float(SCALE))])

out_file_name = 'N_Mateu_ZEA_stream_mask.fits'
# Now, write out the WCS object as a FITS header
header = w.to_header()
hdu = fits.PrimaryHDU(ZEA_N_sky,header=header)
hdu.writeto(out_file_name, clobber=True)

Tags: thein图像np数组floatoutheader
1条回答
网友
1楼 · 发布于 2024-09-28 22:41:50

尝试使用正确的WCS参数为图像生成WCS对象,然后调用header = wcs.to_header,并将图像数据和头存储在FITS文件中。 参见示例here。在

通常你自己也可以从wc文件中创建一些文件。在这种情况下,wcs = WCS(header)从FITS头创建WCS对象。 参见示例here。在

相关问题 更多 >