使用PyWCSGrid2在另一个上叠加FITS图像

时间:2015-03-21 04:59:31

标签: python matplotlib astropy pyfits

我有2张.FITS图片。一个是一些恒星和星系的图像。另一个是我要在其上绘制的重要图,作为轮廓。 PyWCSGrid2是执行此操作的python模块,但是我试图在一段时间内将一个叠加在另一个上,而我无法让它们同时出现。任何想法为什么这不起作用?

import matplotlib.pyplot as plt
import sys
import pyfits
import pywcsgrid2
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable


imagename=str("example1.fits")

def setup_axes():
ax = pywcsgrid2.subplot(111, header=f_radio[0].header)
return ax

# GET IMAGE1
data = f_radio[0].data #*1000
ax = setup_axes()

# prepare figure & axes
fig = plt.figure(1)

#GET CONTOUR SOURCE:
f_contour_image = pyfits.open("IMAGE2.fits")
data_contour = f_contour_image[0].data

# DRAW CONTOUR
cont = ax.contour(data_contour, [5, 6, 7, 8, 9],
                   colors=["r","r","r", "r", "r"], alpha=0.5)

# DRAW IMAGE
im = ax.imshow(data, cmap=plt.cm.gray, origin="lower", interpolation="nearest",alpha=1.0)
plt.show()

更新:问题似乎是两个图像具有不同的比例,所以它实际上是绘制轮廓,但它们很小并且在左下角等待。我需要以某种方式重新缩放它们。

1 个答案:

答案 0 :(得分:1)

您可能正在绘制图像下方的轮廓? 你这样做:

# DRAW CONTOUR
cont = ax.contour(data_contour, [5, 6, 7, 8, 9],
                   colors=["r","r","r", "r", "r"], alpha=0.5)

# DRAW IMAGE
im = ax.imshow(data, cmap=plt.cm.gray, origin="lower", interpolation="nearest",alpha=1.0)
plt.show()

但我认为这可能更好:

# DRAW IMAGE
im = ax.imshow(data, cmap=plt.cm.gray, origin="lower",interpolation="nearest",alpha=1.0)
# Overlay -> DRAW CONTOUR
cont = ax.contour(data_contour, [5, 6, 7, 8, 9],
                   colors=["r","r","r", "r", "r"], alpha=0.5)
plt.show()

我希望它有所帮助。