我有一个 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')