def get_COV(fileCov, binFile): boxZN = float(os.path.basename(fileCov).split('_')[1]) print boxZN hf, boxLength, boxName, boxRedshift, logmp, boxLengthComoving, massCorrection = lib.get_basic_info(fileCov, boxZN, delta_wrt='mean') bins = n.log10( 10**n.loadtxt(binFile) * massCorrection ) logmass = ( bins[1:] + bins[:-1] )/2. mass = 10**logmass dX = ( 10**bins[1:] - 10**bins[:-1] ) dlnbin = (bins[1:] - bins[:-1])*n.log(10) m2sigma = interp1d(hf.M, hf.sigma ) sigma_i = m2sigma( mass ) data_i=cPickle.load(open(fileCov,'r')) counts_i = n.sum(data_i, axis=0) ok = (counts_i>10) data = data_i.T[ok].T counts = n.sum(data, axis=0) sigma = sigma_i[ok] count_matrix = n.outer(counts, counts)/1000. cv = (n.cov(data.T, ddof=0)/count_matrix)**0.5 ctotal = cv + count_matrix**(-0.5) xcv, ycv = n.meshgrid(sigma, sigma) s1_i = n.hstack((n.log10(xcv))) s2_i = n.hstack((n.log10(ycv))) val_i = n.hstack((n.log10(ctotal))) ok = (val_i != n.inf) & (n.isnan(val_i) == False ) return s1_i[ok], s2_i[ok], val_i[ok]
def get_COV(fileCov, binFile): boxZN = float(os.path.basename(fileCov).split('_')[1]) print boxZN hf, boxLength, boxName, boxRedshift, logmp, boxLengthComoving, massCorrection = lib.get_basic_info( fileCov, boxZN, delta_wrt='mean') bins = n.log10(10**n.loadtxt(binFile) * massCorrection) logmass = (bins[1:] + bins[:-1]) / 2. mass = 10**logmass dX = (10**bins[1:] - 10**bins[:-1]) dlnbin = (bins[1:] - bins[:-1]) * n.log(10) m2sigma = interp1d(hf.M, hf.sigma) sigma_i = m2sigma(mass) data_i = cPickle.load(open(fileCov, 'r')) counts_i = n.sum(data_i, axis=0) ok = (counts_i > 10) data = data_i.T[ok].T counts = n.sum(data, axis=0) sigma = sigma_i[ok] count_matrix = n.outer(counts, counts) / 1000. cv = (n.cov(data.T, ddof=0) / count_matrix)**0.5 ctotal = cv + count_matrix**(-0.5) xcv, ycv = n.meshgrid(sigma, sigma) s1_i = n.hstack((n.log10(xcv))) s2_i = n.hstack((n.log10(ycv))) val_i = n.hstack((n.log10(ctotal))) ok = (val_i != n.inf) & (n.isnan(val_i) == False) return s1_i[ok], s2_i[ok], val_i[ok]
def plot_CRCoef_mvir(fileC, fileS, binFile): boxZN = float(os.path.basename(fileC).split('_')[1]) print boxZN hf, boxLength, boxName, boxRedshift, logmp, boxLengthComoving, massCorrection = lib.get_basic_info(fileC, boxZN, delta_wrt='mean') bins = n.log10( 10**n.loadtxt(binFile) * massCorrection ) logmass = ( bins[1:] + bins[:-1] )/2. mSel = (logmass > 9) & (logmass < 15) mass = 10**logmass dX = ( 10**bins[1:] - 10**bins[:-1] ) dlnbin = (bins[1:] - bins[:-1])*n.log(10) m2sigma = interp1d(hf.M, hf.sigma ) sigma = m2sigma( mass ) data=cPickle.load(open(fileC,'r')) dataS=cPickle.load(open(fileS,'r')) counts = n.sum(data, axis=0) count_matrix = n.outer(counts, counts)/1000. cv = (n.cov(data.T, ddof=0)/count_matrix)**0.5 cr = n.corrcoef(data.T) cvS = (n.cov(dataS.T, ddof=0)/count_matrix)**0.5 crS = n.corrcoef(dataS.T) ctotal = cv + count_matrix**(-0.5) mass2X = interp1d(logmass, n.arange(len(logmass))) sigma2X = interp1d(sigma, n.arange(len(logmass))) fig = p.figure(0,(6,6)) mat = p.matshow(cr) p.xticks(n.arange(0,len(logmass),5), logmass[n.arange(0,len(logmass),5)],rotation=45) p.yticks(n.arange(0,len(logmass),5), logmass[n.arange(0,len(logmass),5)]) p.axvline(mass2X(logmp+2), lw=2, color='k') p.axhline(mass2X(logmp+2), lw=2, color='k') #p.axvline(mass2X(logmp+1), lw=2, color='k') #p.axhline(mass2X(logmp+1), lw=2, color='k') cb = p.colorbar(shrink=0.8) cb.set_label(r"R") p.xlabel(r'log$_{10}[M_{vir}/(h^{-1}M_\odot)]$') p.ylabel(r'log$_{10}[M_{vir}/(h^{-1}M_\odot)]$') p.grid() p.savefig(join(os.environ['MVIR_DIR'],plotDir,"mvir-cr-"+boxName+".png")) p.clf() fig = p.figure(0,(6,6)) mat = p.matshow(cr) p.xticks(n.arange(0,len(sigma),5), n.round(sigma[n.arange(0,len(sigma),5)],3),rotation=45) p.yticks(n.arange(0,len(sigma),5), n.round(sigma[n.arange(0,len(sigma),5)],3)) cb = p.colorbar(shrink=0.8) cb.set_label(r"R($\sigma_1, \sigma_2$)") p.xlabel(r'$\sigma$') p.ylabel(r'$\sigma$') p.grid() p.savefig(join(os.environ['MVIR_DIR'],plotDir,"sigma-cr-"+boxName+".png")) p.clf() id = int(mass2X(logmp+2.5)) print id, len(logmass) return cr, cv, logmass, sigma, id, ctotal
def plot_CRCoef_mvir(fileC, fileS, binFile): boxZN = float(os.path.basename(fileC).split('_')[1]) print boxZN hf, boxLength, boxName, boxRedshift, logmp, boxLengthComoving, massCorrection = lib.get_basic_info(fileC, boxZN, delta_wrt='mean') bins = n.log10( 10**n.loadtxt(binFile) * massCorrection ) logmass = ( bins[1:] + bins[:-1] )/2. mSel = (logmass > 9) & (logmass < 15) mass = 10**logmass dX = ( 10**bins[1:] - 10**bins[:-1] ) dlnbin = (bins[1:] - bins[:-1])*n.log(10) m2sigma = interp1d(hf.M, hf.sigma ) sigma = m2sigma( mass ) data=cPickle.load(open(fileC,'r')) dataS=cPickle.load(open(fileS,'r')) counts = n.sum(data, axis=0) count_matrix = n.outer(counts, counts)/1000. cv = (n.cov(data.T, ddof=0)/count_matrix)**0.5 cr = n.corrcoef(data.T) cvS = (n.cov(dataS.T, ddof=0)/count_matrix)**0.5 crS = n.corrcoef(dataS.T) ctotal = cv + count_matrix**(-0.5) mass2X = interp1d(logmass, n.arange(len(logmass))) sigma2X = interp1d(sigma, n.arange(len(logmass))) fig = p.figure(0,(6,6)) mat = p.matshow(cr) p.xticks(n.arange(0,len(logmass),5), logmass[n.arange(0,len(logmass),5)],rotation=45) p.yticks(n.arange(0,len(logmass),5), logmass[n.arange(0,len(logmass),5)]) p.axvline(mass2X(logmp+2), lw=2, color='k') p.axhline(mass2X(logmp+2), lw=2, color='k') #p.axvline(mass2X(logmp+1), lw=2, color='k') #p.axhline(mass2X(logmp+1), lw=2, color='k') cb = p.colorbar(shrink=0.8) cb.set_label(r"R") p.xlabel(r'log$_{10}[M_{vir}/(h^{-1}M_\odot)]$') p.ylabel(r'log$_{10}[M_{vir}/(h^{-1}M_\odot)]$') p.grid() p.savefig(join(os.environ['MULTIDARK_LIGHTCONE_DIR'], 'mvir',"covariance","mvir-cr-"+boxName+".png")) p.clf() fig = p.figure(0,(6,6)) mat = p.matshow(cr) p.xticks(n.arange(0,len(sigma),5), n.round(sigma[n.arange(0,len(sigma),5)],3),rotation=45) p.yticks(n.arange(0,len(sigma),5), n.round(sigma[n.arange(0,len(sigma),5)],3)) cb = p.colorbar(shrink=0.8) cb.set_label(r"R($\sigma_1, \sigma_2$)") p.xlabel(r'$\sigma$') p.ylabel(r'$\sigma$') p.grid() p.savefig(join(os.environ['MULTIDARK_LIGHTCONE_DIR'], 'mvir',"covariance","sigma-cr-"+boxName+".png")) p.clf() id = int(mass2X(logmp+2.5)) print id, len(logmass) return cr, cv, logmass, sigma, id, ctotal
def plot_COV(fileCov, binFile): boxZN = float(os.path.basename(fileCov).split('_')[1]) print boxZN hf, boxLength, boxName, boxRedshift, logmp, boxLengthComoving, massCorrection = lib.get_basic_info(fileCov, boxZN, delta_wrt='mean') bins = n.log10( 10**n.loadtxt(binFile) * massCorrection ) logmass = ( bins[1:] + bins[:-1] )/2. mass = 10**logmass dX = ( 10**bins[1:] - 10**bins[:-1] ) dlnbin = (bins[1:] - bins[:-1])*n.log(10) m2sigma = interp1d(hf.M, hf.sigma ) sigma_i = m2sigma( mass ) data_i=cPickle.load(open(fileCov,'r')) counts_i = n.sum(data_i, axis=0) ok = (counts_i>10) data = data_i.T[ok].T counts = n.sum(data, axis=0) sigma = sigma_i[ok] count_matrix = n.outer(counts, counts)/1000. cv = (n.cov(data.T, ddof=0)/count_matrix)**0.5 ctotal = cv + count_matrix**(-0.5) xcv, ycv = n.meshgrid(sigma, sigma) model = {"MD_0.4Gpc": dn_cov_L04, "MD_1Gpc": dn_cov_L10, "MD_2.5Gpc": dn_cov_L25, "MD_4Gpc": dn_cov_L40,"MD_2.5GpcNW": dn_cov_L25, "MD_4GpcNW": dn_cov_L40 } fig, (ax1, ax2) = p.subplots(1,2, sharex=True, sharey=True) ax1.set_title(boxName) sca = ax1.scatter(-n.log10(xcv), -n.log10(ycv), c=n.log10(ctotal), s=10, edgecolors='none',vmin=-4,vmax=0) #cb = sca.colorbar(shrink=0.8) #cb.set_label("C($\sigma_1, \sigma_2$)") ax1.set_xlabel(r'$log_{10}(\sigma_1^{-1})$') ax1.set_ylabel(r'$log_{10}(\sigma_2^{-1})$') ax1.set_xlim((-0.7, 0.6)) ax1.set_ylim((-0.7, 0.6)) ax1.grid() #ax2=fig.add_subplot(122, sharex=ax1, sharey=ax1) ax2.set_title("model") ax2.scatter(-n.log10(xcv), -n.log10(ycv), c=n.log10(model[boxName](xcv, ycv)), s=10, edgecolors='none',vmin=-4,vmax=0) ax2.set_xlim((-0.7, 0.6)) ax2.grid() ax2.set_ylim((-0.7, 0.6)) ax2.set_xlabel(r'$log_{10}(\sigma_1^{-1})$') fig.savefig(join(os.environ['MULTIDARK_LIGHTCONE_DIR'], 'mvir',"covariance","covariance_matrix_"+boxName+".png")) fig.clf()