Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
        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)$'
Ejemplo n.º 3
0
    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])
Ejemplo n.º 4
0
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))
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
        '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:
Ejemplo n.º 7
0
 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)$')    
Ejemplo n.º 8
0
 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,
Ejemplo n.º 9
0
         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