def hessPlot(targ_ra, targ_dec, data, iso, g_radius, nbhd):
"""Hess plot"""
mag_g = data[mag_g_dred_flag]
mag_r = data[mag_r_dred_flag]
filter_s = star_filter(data)
plt.title('Hess')
c1 = SkyCoord(targ_ra, targ_dec, unit='deg')
r_near = 2.*g_radius # annulus begins at 3*g_radius away from centroid
r_far = np.sqrt(5.)*g_radius # annulus has same area as inner area
inner = (c1.separation(SkyCoord(data['RA'], data['DEC'], unit='deg')).deg < g_radius)
outer = (c1.separation(SkyCoord(data['RA'], data['DEC'], unit='deg')).deg > r_near) & (c1.separation(SkyCoord(data['RA'], data['DEC'], unit='deg')).deg < r_far)
xbins = np.arange(-0.5, 1.1, 0.1)
ybins = np.arange(16., 24.5, 0.5)
foreground = np.histogram2d(mag_g[inner & filter_s] - mag_r[inner & filter_s], mag_g[inner & filter_s], bins=[xbins, ybins])
background = np.histogram2d(mag_g[outer & filter_s] - mag_r[outer & filter_s], mag_g[outer & filter_s], bins=[xbins, ybins])
fg = foreground[0].T
bg = background[0].T
fg_abs = np.absolute(fg)
bg_abs = np.absolute(bg)
mask_abs = fg_abs + bg_abs
mask_abs[mask_abs == 0.] = np.nan # mask signficiant zeroes
signal = fg - bg
signal = np.ma.array(signal, mask=np.isnan(mask_abs)) # mask nan
cmap = matplotlib.cm.viridis
cmap.set_bad('w', 1.)
plt.pcolormesh(xbins, ybins, signal, cmap=cmap)
plt.colorbar()
ugali.utils.plotting.drawIsochrone(iso, lw=2, c='k', zorder=10, label='Isocrhone')
plt.axis([-0.5, 1.0, 16, 24])
plt.gca().invert_yaxis()
plt.gca().set_aspect(1./4.)
plt.xlabel('g-r (mag)')
plt.ylabel('g (mag)')
#ax = plt.gca()
#divider = make_axes_locatable(ax)
#cax = divider.append_axes('right', size = '5%', pad=0)
#plt.colorbar(cax=cax)
评论列表
文章目录