График соответствует изображению с помощью matplotlib.imshow с WCS по осям X и Y
Мне было интересно, знает ли кто-нибудь, как построить подходящее изображение с помощью пакета python matplotlib.imshow с соответствующими значениями мировой системы координат или, возможно, даже с прямым восхождением или склонением в качестве значений x и y, а не с физическими значениями пикселей, аналогично нижнему. сюжет этой страницы: http://astroplotlib.stsci.edu/page_images.htm
К сожалению, предоставленный скрипт находится в IDL... что-то, чем я еще не владею...
Возможно, было бы полезно, если бы я обрисовал в общих чертах свой макет gridspec:
fig = pyplot.figure(figsize=(11,11))
gridspec_layout = gridspec.GridSpec(3,3)
gridspec_layout.update(hspace=0.0, wspace=0.0)
hdulist_org_M33_UVM2 = fits.open('myfits.fits')
wcs = WCS(hdulist_org_M33_UVM2[0].header)
pyplot_2 = fig.add_subplot(gridspec_layout[2])
ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs)
pyplot_2.add_axes(ax)
Но не повезло.
Большое спасибо.
1 ответ
Одним из решений может быть использование subplot
параметр дляFITSFigure
и получить границы из вашей сетки.
Что-то вроде следующего:
from matplotlib import pyplot
from matplotlib import gridspec
import aplpy
fig = pyplot.figure(figsize=(11, 11))
gridspec_layout = gridspec.GridSpec(3, 3)
gridspec_layout.update(hspace=0.0, wspace=0.0)
axes = fig.add_subplot(gridspec_layout[2])
m33 = aplpy.FITSFigure('wfpcii.fits', figure=fig,
subplot=list(gridspec_layout[2].get_position(fig).bounds),
# dimensions and slices are not normally necessary;
# my test-figure has 3 axes
dimensions=[0, 1], slices=[0])
print(dir(gridspec_layout[2]))
print(gridspec_layout[2].get_position(fig).bounds)
m33.show_colorscale()
pyplot.show()
Не очень красиво, но это сработает. если я найду более простой способ прикрепить FITSFigure
прямо к оси, я поправлю этот ответ или поставлю новый.