2015-03-21 6 views
0

У меня есть 2 изображения .FITS. Один из них - изображение некоторых звезд и галактик. Другая - это карта значимости, которую я хочу нарисовать над ней, как контур. PyWCSGrid2 - это модуль python для этого, но я пытался наложить одно на другое на некоторое время, и я не могу заставить их обоих появляться одновременно. Любые идеи, почему это не работает?Наложить изображение FITS на другое с помощью PyWCSGrid2

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() 

UPDATE: Проблема, кажется, что эти два изображения имеют разные масштабы, так что на самом деле построения контуров, но они маленькие и Waaaay в нижнем левом углу. Мне нужно как-то их перемасштабировать.

+1

Если у вас по-прежнему возникают проблемы, вы можете попробовать попробовать APLpy (http://aplpy.github.io/) или WCSAxes (http://wcsaxes.readthedocs.org/en/latest/) – astrofrog

+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() 

Я надеюсь, что это помогает.

+0

К сожалению, это ничего не меняет. –