Как правильно объединить данные PNG и FITS в одну фигуру Matplotlib в Python?

У меня есть файл FITS 4545x4545 пикселей с заголовком, содержащим его систему координат. Поскольку DS9 (другое программное обеспечение для просмотра и обработки изображений FITS) лучше обрабатывает масштабирование цветовой карты, у меня возникла идея:

  1. откройте файл FITS с помощью DS9, чтобы настроить цветовую карту изображения,
  2. сохранить это изображение в файл PNG,
  3. загрузите этот файл 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')

0 ответов

Другие вопросы по тегам