def corr_xy_SFR(H, v, tSF__T, iT, mask_radius = False): C.debug_var(debug, corr = v) C.debug_var(debug, iT = iT) C.debug_var(debug, tSF = tSF__T[iT]) if v == 'aSFRSD': dim = 'rg' else: dim = 'g' x = H.get_data_h5('%s__T%s' % (v, dim))[iT] y = H.get_data_h5('%s_Ha__%s' % (v, dim)) xm, ym = C.ma_mask_xyz(x, y) if mask_radius is True: m = (H.zone_dist_HLR__g > 0.5) xm[~m] = np.ma.masked ym[~m] = np.ma.masked Rs, _ = st.spearmanr(xm.compressed(), ym.compressed()) Rp, _ = st.pearsonr(xm.compressed(), ym.compressed()) C.debug_var(debug, Rs = Rs) C.debug_var(debug, Rp = Rp) return Rs, Rp
kwargs_zbins.update(f = f) #f, axArr = plt.subplots(NRows, NCols) #page_size_inches = (NCols * 3, NRows * 1.5) page_size_inches = A4Size_inches f.set_size_inches(page_size_inches) grid_shape = (NRows, NCols) #f, axArr = plt.subplots(1, 3) #f.set_dpi(100) #f.set_size_inches(15, 8) f.suptitle(suptitle, fontsize = 9) tau_V_norm__rg = H.tau_V__Trg[iT] / H.tau_V_oneHLR__Tg[iT] aSFRSD_norm__rg = H.aSFRSD__Trg[iT] / H.aSFRSD_oneHLR__Tg[iT] x1, y1 = C.ma_mask_xyz(np.ma.log10(H.tau_V__Tg[iT]), np.ma.log10(H.SFRSD__Tg[iT] * 1e6), mask = mask__g) x2, y2 = C.ma_mask_xyz(np.ma.log10(H.tau_V__Trg[iT]), np.ma.log10(H.aSFRSD__Trg[iT] * 1e6), mask = mask__rg) x3, y3 = C.ma_mask_xyz(np.ma.log10(tau_V_norm__rg), np.ma.log10(aSFRSD_norm__rg), mask = mask__rg) x4, y4 = C.ma_mask_xyz(np.ma.log10(H.tau_V_oneHLR__Tg[iT]), np.ma.log10(H.aSFRSD_oneHLR__Tg[iT] * 1e6), mask = mask_GAL__g) x5, y5 = C.ma_mask_xyz(np.ma.log10(H.integrated_tau_V__g), np.ma.log10(H.integrated_SFRSD__Tg[iT] * 1e6), mask = mask_GAL__g) x1label = r'$\log\ \tau_V^{\star}$' y1label = r'$\log\ \Sigma_{SFR}^\star(t_\star)\ [M_\odot yr^{-1} kpc^{-2}]$' x2label = r'$\log\ \tau_V^{\star}(R)$' y2label = r'$\log\ \Sigma_{SFR}^\star(t_\star, R)\ [M_\odot yr^{-1} kpc^{-2}]$' x3label = r'$\log\ \frac{\tau_V^\star(R)}{\tau_V^\star(@1HLR)}$' y3label = r'$\log\ \frac{\Sigma_{SFR}^\star(R)}{\Sigma_{SFR}^\star(@1HLR)}$' x4label = r'$\log\ \tau_V^\star(@1HLR)$' y4label = r'$\log\ \Sigma_{SFR}^\star(@1HLR)$' x5label = r'$\log\ \tau_V^\star (int)$' y5label = r'$\log\ \Sigma_{SFR}^\star (int)$'
for iT in iT__t: tSF = tSF__T[iT] corr = ['SFR', 'SFRSD', 'aSFRSD', 'integrated_SFR', 'integrated_SFRSD' ] R = [ [RsSFR, RpSFR], [RsSFRSD, RpSFRSD], [RsaSFRSD, RpaSFRSD], [RsiSFR, RpiSFR], [RsiSFRSD, RpiSFRSD] ] for i, c in enumerate(corr): R[i][0][iT], R[i][1][iT] = corr_xy_SFR(H, c, tSF__T, iT, mask_radius) SFRSD_norm_GAL__g = (H.aSFRSD__Trg[iT][10, :] + H.aSFRSD__Trg[iT][9, :] / 2.) aSFRSD_norm__rg = H.aSFRSD__Trg[iT] / SFRSD_norm_GAL__g aSFRSD_Ha_norm__rg = H.aSFRSD__Trg[iT] / SFRSD_norm_GAL__g C.debug_var(debug, iT = iT) C.debug_var(debug, tSF = tSF__T[iT]) xm, ym = C.ma_mask_xyz(aSFRSD_norm__rg, aSFRSD_Ha_norm__rg) if mask_radius is True: m = (H.zone_dist_HLR__g > 0.5) xm[~m] = np.ma.masked ym[~m] = np.ma.masked Rs, _ = st.spearmanr(xm.compressed(), ym.compressed()) Rp, _ = st.pearsonr(xm.compressed(), ym.compressed()) C.debug_var(debug, Rs = Rs) C.debug_var(debug, Rp = Rp) RsaSFRSDn[iT] = Rs RpaSFRSDn[iT] = Rp c_label = ['SFR', r'$\Sigma_{SFR}$', r'$\Sigma_{SFR}$(R)', r'$SFR^{int}$', r'$\Sigma_{SFR}^{int}$' ] f = plt.figure(figsize = (10, 8), dpi = 100) ax = f.gca() for i, c in enumerate(corr): ax.plot(H.tSF__T, R[i][0], label = c_label[i])
SFR_int = get_h5_data_masked(h5, 'SFR_int__Tg', **dict(dtype = np.float_)) SFR_Ha_int = get_h5_data_masked(h5, 'SFR_Ha_int__Tg', **dict(dtype = np.float_)) SFR_Ha_int_masked = get_h5_data_masked(h5, 'SFR_Ha_int_masked__Tg', **dict(dtype = np.float_)) O3N2_int_masked = get_h5_data_masked(h5, 'O3N2M13_int_masked__Tg', **dict(dtype = np.float_)) O3N2_int = np.array(h5['data/O3N2M13_int__g'].value, dtype = np.float_) O3N2_int = np.ma.masked_array(O3N2_int, mask = np.isnan(O3N2_int)) sc_kwargs = dict(marker = 'o', s = 50, edgecolor = 'none', label = '') kwargs_ols_plot = dict(c = 'r', ls = '--', lw = 2, label = 'OLS') kwargs_ols = dict(c = 'k', pos_x = 0.98, pos_y = 0.01, fs = 12, rms = True, text = True, kwargs_plot = kwargs_ols_plot) f = plt.figure() grid_shape = (1, 2) ax1 = plt.subplot2grid(grid_shape, loc = (0, 0)) ax2 = plt.subplot2grid(grid_shape, loc = (0, 1)) xm1, ym1 = C.ma_mask_xyz(x = O3N2_int, y = np.ma.log10(SFR_int[1]) - np.ma.log10(SFR_Ha_int[1])) ax1.scatter(xm1, ym1, **sc_kwargs) _ = plotOLSbisectorAxis(ax1, xm1.compressed(), ym1.compressed(), **kwargs_ols) ax1.set_xlabel(r'12 + $\log$ O/H M13') ax1.set_ylabel(r'$\Delta$SFR (syn - $H\alpha$)') sc = ax2.scatter(np.ma.log10(SFR_int[1]), np.ma.log10(SFR_Ha_int[1]), c = O3N2_int, cmap = 'viridis', **sc_kwargs) ax2.set_xlabel(r'$\log$ SFR(syn) [$M_\odot\ yr^{-1}$]') ax2.set_ylabel(r'$\log$ SFR(H$\alpha$) [$M_\odot\ yr^{-1}$]') f.colorbar(sc) f.savefig('Zneb_SFR.pdf') f.subplots_adjust(bottom = 0.15, hspace = 0.15, wspace = 0., right = 0.95, left = 0.10) f = plt.figure() grid_shape = (1, 2) ax1 = plt.subplot2grid(grid_shape, loc = (0, 0)) ax2 = plt.subplot2grid(grid_shape, loc = (0, 1))
mask__g = np.bitwise_or(np.ma.log10(H.SFRSD__Tg[iT] * 1e6).mask, np.ma.log10(H.tau_V__Tg[iT]).mask) mask__g = np.bitwise_or(mask__g, np.ma.log10(H.SFRSD_Ha__g * 1e6).mask) mask__g = np.bitwise_or(mask__g, np.ma.log10(H.tau_V_neb__g).mask) mask__g = np.bitwise_or(mask__g, H.logO3N2_M13__g.mask) #mask__g = np.bitwise_or(mask__g, np.less(H.EW_Ha__g, 3.)) mask__g = np.bitwise_or(mask__g, np.less(H.reply_arr_by_zones(H.ba_GAL__g), ba_max)) mask__g = np.bitwise_or(mask__g, ~maskRadiusOk__g) mask__g = np.bitwise_or(mask__g, ~gals_slice__g) mask__rg = mask__rg = np.bitwise_or(~maskRadiusOk__rg, np.less(H.reply_arr_by_radius(H.ba_GAL__g), ba_max)) mask__rg = np.bitwise_or(mask__rg, ~gals_slice__rg) NgalsOkZones = len(np.unique(H.reply_arr_by_zones(H.califaIDs)[~mask__g])) NgalsOkRbins = len(np.unique(H.reply_arr_by_radius(H.califaIDs_all)[~mask__rg])) xm, ym, zm = C.ma_mask_xyz(x = np.ma.log10(H.tau_V__Tg[iT]), y = np.ma.log10(H.SFRSD__Tg[iT] * 1e6), z = np.ma.log10(H.x_Y__Tg[iT]), mask = mask__g) C.OLS_bisector(xm, ym, debug = True) print ((~mask__g).sum()),((~mask__rg).sum()), NgalsOkZones, NgalsOkRbins count = 0 fraclim = 5 for gal in np.unique(H.reply_arr_by_zones(H.califaIDs)[~mask__g]): zoneDistance_HLR = H.get_prop_gal(H.zone_dist_HLR__g, gal) igal_all = H.califaIDs_all.tolist().index(gal) igal = H.califaIDs.tolist().index(gal) Nz = len(zoneDistance_HLR[zoneDistance_HLR >= minR]) mask__z = H.get_prop_gal(mask__g, gal) mask__r = H.get_prop_gal(mask__rg, gal) NzOk = (~(mask__z)).astype(int).sum()
'logWHaWHbR' : dict(lim = [-0., 0.8]), 'tauVdiffR' : dict(lim = [-0.75, 1.5]), 'tauVRatioR' : dict(lim = [0., 6.]), 'baR' : dict(lim = [0, 1.]), } xkeys = [ 'RadDist', 'morfTypeR', 'atfluxR', 'alogZmassR', 'logO3N2S06R', 'logMcorSDR', 'xYR', 'logWHaWHbR', 'tauVdiffR', 'tauVRatioR', 'baR' ] for iT in iT_values: tSF = H.tSF__T[iT] xk, xv = H.get_plot_dict(iT = iT, iU = -1, key = 'logtauVR') yk, yv = H.get_plot_dict(iT = iT, iU = -1, key = 'alogSFRSDR') xname = H.get_plot_dict(iT = iT, iU = -1)[xk[:-1]]['legendname'] yname = H.get_plot_dict(iT = iT, iU = -1)[yk[1:-1]]['legendname'] xm, ym = C.ma_mask_xyz(xv['v'], yv['v']) a, b, sig_a, sig_b = OLS_bisector(xm, ym) R = ym - (a * xm + b) Yrms = R.std() Yrms_str = r' : $y_{rms}$:%.2f' % Yrms if b > 0: txt_y = r'$y_{OLS}$ = %.2f %s + %.2f %s' % (yname, a, xname, b, Yrms_str) else: txt_y = r'$y_{OLS}\ \equiv$ %s = %.2f %s - %.2f %s' % (yname, a, xname, b * -1., Yrms_str) C.debug_var(debug, txt_y = txt_y) for xk in xkeys: fnamepref = 'SKdevOLS_%s' % xk if xk != 'RadDist': _, xv = H.get_plot_dict(iT = iT, iU = -1, key = xk) xv.update(updates.get(xk, {})) else:
m_gal_not_OK = np.bitwise_or(m_gal_not_OK, N2_obs.mask) m_gal_not_OK = np.bitwise_or(m_gal_not_OK, np.ma.less(SN_Ha_obs, 3)) m_gal_not_OK = np.bitwise_or(m_gal_not_OK, np.ma.less(SN_Hb_obs, 3)) m_gal_not_OK = np.bitwise_or(m_gal_not_OK, np.ma.less(SN_O3_obs, 3)) m_gal_not_OK = np.bitwise_or(m_gal_not_OK, np.ma.less(SN_N2_obs, 3)) tau_V_lines = AV_lines * 1. / (2.5 * np.log10(np.exp(1.))) logO3Hb, logN2Ha, logO3N2 = calc_O3N2(Hb_obs, O3_obs, Ha_obs, N2_obs, m_gal_not_OK, tau_V_lines, correct = True) logOH_M13 = 8.533 - 0.214 * logO3N2 xm, ym = CALIFAUtils.ma_mask_xyz(x = logOH_M13, y = Zneb_mpa) #EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE # f = plt.figure() # f.set_dpi(100) # f.set_size_inches(10, 8) # ax = f.gca() # ax.scatter(logN2Ha, logO3Hb, marker = '.', s = 1, c = '0.7', edgecolor = 'none', alpha = 0.6, label = '') # #m_aux = l.maskAbovelinebpt('K01', logN2Ha, logO3Hb) # ax.scatter(logN2Ha[~(Zneb_mpa.mask | m_aux)], logO3Hb[~(Zneb_mpa.mask | m_aux)], marker = '.', s = 5, c = 'b', edgecolor = 'none', alpha = 0.6, label = '') # for line in l.linesbpt: # ax.plot(l.x[line], l.y[line], label = line) # #axis = [-2.5, 1.0, -1.6, 1.6] # ax.set_xlim(-2.5, 1.0) # ax.set_ylim(-1.6, 1.6) # ax.set_xlabel(r'$\log\ ([NII]\lambda 6584 / H\alpha)$')
f, axArr = plt.subplots(1, 2) f.set_dpi(100) f.set_size_inches(14, 8) ax = f.gca() i = 0 filename = '%s_%s_%s_%.2fMyr.png' % (xk, yk, zk, tSF / 1e6) suptitle = r'NGals:%d tSF:%.2f Myr $x_Y$(min):%.0f%% $\tau_V^\star$(min):%.2f $\tau_V^{neb}$(min):%.2f $\epsilon\tau_V^{neb}$(max):%.2f' % (H.N_gals, (tSF / 1e6), H.xOkMin * 100., H.tauVOkMin, H.tauVNebOkMin, H.tauVNebErrMax) cbarr = [ False, False ] for Rn in [ 0.5, 1.0 ]: print '######' , i x = np.ma.copy(xv['v']) y = np.ma.copy(yv['v']) if mask_radius is True: x[~(H.RbinCenter__r > Rn)] = np.ma.masked y[~(H.RbinCenter__r > Rn)] = np.ma.masked xm, ym, zm = CALIFAUtils.ma_mask_xyz(x = x.flatten(), y = y.flatten(), z = H.reply_arr_by_radius(H.morfType_GAL__g).flatten()) zticks_mask = [ np.ma.bitwise_or(np.ma.equal(zm, 9.), np.ma.equal(zm, 9.5)), np.ma.equal(zm, 10), np.ma.equal(zm, 10.5), np.ma.bitwise_or(np.ma.equal(zm, 11.), np.ma.equal(zm, 11.5)), ] #zticks_mask = [(zm == 9), (zm == 9.5), (zm == 10), (zm == 10.5), (zm == 11.), (zm == 11.5)] zticks = [9., 9.5, 10, 10.5, 11., 11.5] zticklabels = ['Sa', 'Sab', 'Sb', 'Sbc', 'Sc', 'Scd'] zbins_colors = ['r', 'g', 'y', 'b'] #zbins_labels = ['Sa + Sab: %d' % len(xm[zticks_mask[0]]), 'Sb: %d' % len(xm[zticks_mask[1]]), 'Sbc: %d' % len(xm[zticks_mask[2]]), 'Sc + Scd: %d' % len(xm[zticks_mask[3]])] zbins_labels = ['Sa + Sab', 'Sb', 'Sbc', 'Sc + Scd'] #zbins_labels = ['Sa', 'Sab', 'Sb', 'Sbc', 'Sc', 'Scd'] kw = plot_zbins( return_kwargs = True,
v = np.ma.log10((H.Mcor_GAL__g[..., np.newaxis] * np.ones((20))).T), label = r'$\log\ M_\star^{GAL}$ [$M_\odot$]', ) for xk, xv in xaxis.iteritems(): for yk, yv in yaxis.iteritems(): if xk != yk: tSF = H.tSF__T[iT] f = plt.figure() f.set_dpi(100) f.set_size_inches(14, 8) ax = f.gca() i = 0 filename = '%s_%s_%s_%.2fMyr.png' % (xk, yk, zk, tSF / 1e6) suptitle = r'NGals:%d tSF:%.2f Myr $x_Y$(min):%.0f%% $\tau_V^\star$(min):%.2f $\tau_V^{neb}$(min):%.2f $\epsilon\tau_V^{neb}$(max):%.2f' % (H.N_gals, (tSF / 1e6), H.xOkMin * 100., H.tauVOkMin, H.tauVNebOkMin, H.tauVNebErrMax) xm, ym, zm = CALIFAUtils.ma_mask_xyz(x = xv['v'], y = yv['v'], z = np.ma.log10((H.Mcor_GAL__g[..., np.newaxis] * np.ones((20))).T)) zticks_mask = [ np.ma.bitwise_and(np.ma.greater_equal(zm, 8.8), np.ma.less(zm, 9.6)), np.ma.bitwise_and(np.ma.greater_equal(zm, 9.6), np.ma.less(zm, 10.1)), np.ma.bitwise_and(np.ma.greater_equal(zm, 10.1), np.ma.less(zm, 10.6)), np.ma.bitwise_and(np.ma.greater_equal(zm, 10.6), np.ma.less(zm, 10.9)), np.ma.bitwise_and(np.ma.greater_equal(zm, 10.9), np.ma.less(zm, 11.2)), np.ma.bitwise_and(np.ma.greater_equal(zm, 11.2), np.ma.less(zm, 11.6)), ] zbins_labels = ['9.6--8.8', '10.1--9.6', '10.6--10.1', '10.9--10.6', '11.2--10.9', '11.6--11.2'] kw = plot_zbins( return_kwargs = True, f = f, ax = ax, debug = debug, x = xv['v'],
NCols = 4 page_size_inches = (NCols * 3.5, NRows * 4) grid_shape = (NRows, NCols) f = plt.figure() f.set_size_inches(page_size_inches) f.suptitle(txt_suptitle, fontsize = 10) ax = plt.subplot2grid(grid_shape, loc = (0, 0)) ax.set_axis_on() tmp_mask = ~(maskRadiusOk__rg & gals_slice__rg) y = BR_DGR_ols__rg #y_norm = y / (0.5 * (y[10, :] + y[9, :])) y_norm = y xm, ym_BR_DGR_ols = C.ma_mask_xyz(x = x_norm, y = np.ma.log10(y_norm), mask = tmp_mask) rs_BR_DGR_ols = runstats(xm.compressed(), ym_BR_DGR_ols.compressed(), nBox = 20, **rs_kwargs) y = BR_DGR_up_ols__rg #y_norm = y / (0.5 * (y[10, :] + y[9, :])) y_norm = y xm, ym_BR_DGR_up_ols = C.ma_mask_xyz(x = x_norm, y = np.ma.log10(y_norm), mask = tmp_mask) rs_BR_DGR_up_ols = runstats(xm.compressed(), ym_BR_DGR_up_ols.compressed(), nBox = 20, **rs_kwargs) y = BR_DGR_down_ols__rg #y_norm = y / (0.5 * (y[10, :] + y[9, :])) y_norm = y xm, ym_BR_DGR_down_ols = C.ma_mask_xyz(x = x_norm, y = np.ma.log10(y_norm), mask = tmp_mask) rs_BR_DGR_down_ols = runstats(xm.compressed(), ym_BR_DGR_down_ols.compressed(), nBox = 20, **rs_kwargs) y = SK_DGR__rg