patchcoll = matplotlib.collections.PatchCollection(patches, match_original=True) patchcoll.zorder = 10 ax.add_collection(patchcoll) ax.axis([x.min(), x.max(), y.min(), y.max()]) pv = pvextractor.extract_pv_slice(cube.data['PRIMARY'], P, wcs=cube.data.coords.wcs) pvwidget = PVSliceWidget(image=pv.data, wcs=wcs.WCS(pv.header), image_client=cube_viewer, x=x, y=y, interpolation='nearest') pv_viewer = app.add_widget(pvwidget, label="Orbit PV Slice") ax2 = pvwidget.axes dl = (table['l'][1:] - table['l'][:-1]) db = (table['b'][1:] - table['b'][:-1]) dist = (dl**2 + db**2)**0.5 cdist = np.zeros(dist.size + 1) * u.deg cdist[1:] = dist.cumsum() * u.deg #pixscale = ((x[1]-x[0])**2+(y[1]-y[0])**2)**0.5 pixscale = wcs.utils.celestial_pixel_scale(cube.data.coords.wcs) spwcs = cube.data.coords.wcs.sub([wcs.WCSSUB_SPECTRAL]) spax = spwcs.wcs_world2pix(table["v'los"] * 1e3, 0)[0] ax2.plot(cdist / pixscale, spax, 'r-', linewidth=2, alpha=0.5) ax2.set_axis_bgcolor('black') # SERIOUSLY, DO IT
wcs=cube.data.coords.wcs) for patch in patches: patch.set_linewidth(0.5) patch.set_alpha(0.5) patch.zorder = 50 patchcoll = matplotlib.collections.PatchCollection(patches, match_original=True) patchcoll.zorder=10 ax.add_collection(patchcoll) ax.axis([x.min(),x.max(),y.min(),y.max()]) pv = pvextractor.extract_pv_slice(cube.data['PRIMARY'], P, wcs=cube.data.coords.wcs) pvwidget = PVSliceWidget(image=pv.data, wcs=wcs.WCS(pv.header), image_client=cube_viewer, x=x, y=y, interpolation='nearest') pv_viewer = app.add_widget(pvwidget, label="Orbit PV Slice") ax2 = pvwidget.axes dl = (table['l'][1:]-table['l'][:-1]) db = (table['b'][1:]-table['b'][:-1]) dist = (dl**2+db**2)**0.5 cdist = np.zeros(dist.size+1) * u.deg cdist[1:] = dist.cumsum() * u.deg #pixscale = ((x[1]-x[0])**2+(y[1]-y[0])**2)**0.5 pixscale = wcs.utils.celestial_pixel_scale(cube.data.coords.wcs) spwcs = cube.data.coords.wcs.sub([wcs.WCSSUB_SPECTRAL]) spax = spwcs.wcs_world2pix(table["v'los"]*1e3, 0)[0] ax2.plot(cdist/pixscale, spax, 'r-', linewidth=2, alpha=0.5) ax2.set_axis_bgcolor('black') # SERIOUSLY, DO IT