座標系を含むヘッダーを持つ 4545x4545 ピクセルの FITS ファイルがあります。DS9 (FITS 画像を表示および処理するための別のソフトウェア) は、カラー マップのスケーリングをより適切に処理するため、次のようなアイデアがありました。
- DS9 を使用して FITS ファイルを開き、画像のカラー マップを微調整します。
- この画像を 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')