如何在Python中将PNG和FITS数据正确组合到一个Matplotlib图形中?

如何在Python中将PNG和FITS数据正确组合到一个Matplotlib图形中?,python,matplotlib,astropy,fits,ds9,Python,Matplotlib,Astropy,Fits,Ds9,我有一个4545x4545像素的FITS文件,文件头包含坐标系。由于DS9(另一种查看和处理FITS图像的软件)能够更好地处理彩色地图缩放,因此我想到: 使用DS9打开FITS文件以调整图像的颜色贴图 将此图像保存在PNG文件中 在matplotlib中加载此PNG文件,并从原始FITS文件中添加标题,以便我可以将坐标系添加到PNG文件中 但是坐标显示不正确,因为像素化在每一步都会改变为不同的值。如何才能正确地执行此操作 这是我的代码的相关部分: from astropy.io import f

我有一个4545x4545像素的FITS文件,文件头包含坐标系。由于DS9(另一种查看和处理FITS图像的软件)能够更好地处理彩色地图缩放,因此我想到:

  • 使用DS9打开FITS文件以调整图像的颜色贴图
  • 将此图像保存在PNG文件中
  • 在matplotlib中加载此PNG文件,并从原始FITS文件中添加标题,以便我可以将坐标系添加到PNG文件中
  • 但是坐标显示不正确,因为像素化在每一步都会改变为不同的值。如何才能正确地执行此操作

    这是我的代码的相关部分:

    from astropy.io import fits
    import matplotlib.pyplot as plt
    import aplpy
    from wcsaxes import WCSAxes
    from astropy import wcs
    import sys
    import matplotlib.image as mpimg
    
    image_fits = 'image_in.fits'
    image_png = 'image_in.png' # this came from the one before, has different pixelization
    
    image_data_png = mpimg.imread(image_png)
    image_head_fits = fits.getheader(image_fits)
    hdu_list = fits.open(image_fits)
    
    F = aplpy.FITSFigure(hdu_list, figure=plt.figure(1))
    
    fig = plt.figure()
    mywcs = wcs.WCS(image_head_fits)
    ax = WCSAxes(fig,[0.1, 0.1, 0.8, 0.8],wcs=mywcs)
    
    fig.add_axes(ax)
    
    ax.imshow(image_data_png)
    
    plt.savefig('image_out.png')
    
    pyavm()用于将FITS头添加到png图像中。你也可以看看。下面是一个相当复杂的示例,说明如何做到这一点:。这些都不是答案,但它们可能会为您指明正确的方向pyavm()的目的是为png图像添加FITS标题。你也可以看看。下面是一个相当复杂的示例,说明如何做到这一点:。这些都不是答案,但它们可能会为你指明正确的方向