Как правильно объединить данные PNG и FITS в одну фигуру Matplotlib в Python?
У меня есть файл FITS 4545x4545 пикселей с заголовком, содержащим его систему координат. Поскольку DS9 (другое программное обеспечение для просмотра и обработки изображений FITS) лучше обрабатывает масштабирование цветовой карты, у меня возникла идея:
- откройте файл FITS с помощью DS9, чтобы настроить цветовую карту изображения,
- сохранить это изображение в файл PNG,
- загрузите этот файл PNG в matplotlib и добавьте заголовок из исходного файла 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')