def fit(self,keyData,keyTheory,amplitudeRange=np.arange(0.1,2.0,0.01),debug=False,numbins=-1): # evaluate likelihood on a 1d grid and fit to a gaussian # store fit as new theory curve width = amplitudeRange[1]-amplitudeRange[0] Likelihood = lambda x: np.exp(-0.5*self.chisq(keyData,keyTheory,amp=x,numbins=numbins)) Likes = np.array([Likelihood(x) for x in amplitudeRange]) Likes = Likes / (Likes.sum()*width) #normalize ampBest,ampErr = cfit(norm.pdf,amplitudeRange,Likes,p0=[1.0,0.5])[0] if debug: fitVals = np.array([norm.pdf(x,ampBest,ampErr) for x in amplitudeRange]) pl = Plotter() pl.add(amplitudeRange,Likes,label="likes") pl.add(amplitudeRange,fitVals,label="fit") pl.legendOn() pl.done("output/debug_coreFit.png") fitKey = keyData+"_fitTo_"+keyTheory self.datas[fitKey] = {} self.datas[fitKey]['covmat'] = None self.datas[fitKey]['binned'] = self.datas[keyTheory]['binned']*ampBest #self.datas[fitKey]['unbinned'] = self.datas[keyTheory]['unbinned']*ampBest self.datas[fitKey]['label'] = keyData+" fit to "+keyTheory+" with amp "+'{0:.2f}'.format(ampBest)+"+-"+'{0:.2f}'.format(ampErr) self.datas[fitKey]['amp']=(ampBest,ampErr) self.datas[fitKey]['isFit'] = True return fitKey
def makeTemplate(l, Fl, mod, Nx, Ny, debug=False): """ Given 1d function Fl of l, creates the 2d version of Fl on 2d k-space defined by mod """ FlSpline = splrep(l, Fl, k=3) ll = np.ravel(mod) kk = (splev(ll, FlSpline)) template = np.reshape(kk, [Ny, Nx]) if debug: print(kk) myFig = Plotter("$l$", "$F_l$", scaleX="log", scaleY="log") #myFig.add(l,Fl) myFig.add(ll, kk) myFig.done(fileName="output/interp.png") plotme([mod], saveFile="output/mod.png", axoff=True, clbar=False) plotme([template], saveFile="output/temp.png", axoff=True, clbar=False) plotme([np.log(template)], saveFile="output/logtemp.png", axoff=True, clbar=False) sys.exit() return template
def stat_analysis(cutouts, binsize, arcmax, cents, modRMaps): profiles = [] for i in range(0, len(cutouts)): thetaRange = np.arange(0., arcmax, binsize) breali = bin2D(modRMaps[i] * 180. * 60. / np.pi, thetaRange) a = breali.bin(cutouts[i])[1] profiles.append(a) statistics = stats.getStats(profiles) mean = statistics['mean'] error = statistics['errmean'] covmat = statistics['cov'] corrcoef = stats.cov2corr(covmat) io.quickPlot2d(corrcoef, 'corrcoef.png') pl = Plotter(labelX='Distance from Center (arcminutes)', labelY='Temperature Fluctuation ($\mu K$)', ftsize=10) pl.add(cents, mean) pl.addErr(cents, mean, yerr=error) pl._ax.axhline(y=0., ls="--", alpha=0.5) pl.done(out_dir + "error.png")
lensedMapX = fmaps.convolveBeam(lensedMapX, modLMap, beamTemplate) lensedMapY = fmaps.convolveBeam(lensedMapY, modLMap, beamTemplate) if noiseT > 1.e-3: lensedMapX = lensedMapX + gGenT.getMap(stepFilterEll=None) if noiseT > 1.e-3: lensedMapY = lensedMapY + gGenT.getMap(stepFilterEll=None) # lensedMapYRot = np.rot90(lensedMapY.copy(),2) lensedMapX = lensedMapX * win lensedMapY = lensedMapY * win # lensedMapYRot = lensedMapYRot*win if i == 0: pl = Plotter() pl.plot2d(lensedMapX) pl.done(outDir + "lensed.png") fotX = np.nan_to_num(fft(lensedMapX, axes=[-2, -1]) / beamTemplate[:, :]) fotY = np.nan_to_num(fft(lensedMapY, axes=[-2, -1]) / beamTemplate[:, :]) # fotYRot = np.nan_to_num(fft(lensedMapYRot,axes=[-2,-1])/ beamTemplate[:,:]) if i % 1 == 0: print "Reconstructing", i, " ..." qest.updateTEB_X(fotX, alreadyFTed=True) qest.updateTEB_Y(fotY, alreadyFTed=True) kappa = qest.getKappa(polCombList[0]).real / w2 # qest.updateTEB_Y(-fotYRot,alreadyFTed=True) # kappaRot = qest.getKappa(polCombList[0]).real/w2
lmax = 3000 cosmoDict = dictFromSection(Config, cosmologyName) constDict = dictFromSection(Config, 'constants') clusterDict = dictFromSection(Config, clusterParams) cc = ClusterCosmology(cosmoDict, constDict, lmax, pickling=True) HMF = Halo_MF(cc) cambOutFile = lambda i: "/home/msyriac/software/CAMB_wa/testWaFid_matterpower_" + str( i) + ".dat" zrange = np.arange(0., 3.05, 0.05) kh, z, pk, s8 = HMF.pk(zrange) #pl = Plotter(scaleY='log',scaleX='log') pl = Plotter() Nzs = pk.shape[0] for i, z in enumerate(zrange[::-1]): kh_camb, P_camb = np.loadtxt(cambOutFile(i), unpack=True) if i == 0: kmin = max(kh_camb[0], kh[0]) kmax = min(kh_camb[-1], kh[-1]) keval = np.logspace(np.log10(kmin), np.log10(kmax), 20) pcambfunc = interp1d(kh_camb, P_camb) pfunc = interp1d(kh, pk[Nzs - i - 1, :])
inputKappaStack = 0. szStack = 0. N = numClusters for i in range(N): print i kappa = enmap.read_map(saveName + "_kappa_" + str(i) + "_" + str(snap) + ".hdf") inputKappaMap = enmap.read_map(saveName + "_inpkappa_" + str(i) + "_" + str(snap) + ".hdf") szMap = enmap.read_map(saveName + "_sz_" + str(i) + "_" + str(snap) + ".hdf") kappaStack += kappa inputKappaStack += inputKappaMap szStack += szMap pl = Plotter() pl.plot2d(kappaStack / N) pl.done(outDir + "recon_" + str(snap) + ".png") pl = Plotter() pl.plot2d(inputKappaStack / N) pl.done(outDir + "truestack_" + str(snap) + ".png") pl = Plotter() pl.plot2d(szStack / N) pl.done(outDir + "szstack_" + str(snap) + ".png")
kmin = 40 deg = 10. px = 0.5 dell = 10 cambRoot = "data/ell28k_highacc" theory = loadTheorySpectraFromCAMB(cambRoot,unlensedEqualsLensed=False,useTotal=False,lpad=9000) lmap = lm.makeEmptyCEATemplate(raSizeDeg=deg, decSizeDeg=deg,pixScaleXarcmin=px,pixScaleYarcmin=px) frange = np.arange(2.,3100.,1.) frangeC = np.arange(100.,5000.,20.) Clkk = theory.gCl("kk",frange) pl = Plotter(scaleY='log',labelX="$L$",labelY="$C_L$") for polComb in ['EB']: #for delens,lines,alpha in zip([False,True],['-','--'],[1.0,0.5]): for delens,lines,alpha in zip([False],['-'],[1.0]): sns = [] for noiseFile in ['fiducial']+glob.glob("data/colin*"): #for noiseFile in ['fiducial']+glob.glob("data/colin???.txt"): myNls = NlGenerator(lmap,theory,gradCut=gradCut) kmax = getMax(polComb,tellmaxY,pellmaxY) bin_edges = np.arange(kmin,kmax,dell)+dell
priorList['omch2'] = 0.002 priorList['ombh2'] = 0.00023 priorList['ns'] = 0.006 priorList['As'] = 5.e-12 priorList['alpha_ym'] = 0.179 priorList['b_ym'] = 0.08 priorList['beta_ym'] = 0.1 priorList['gamma_ym'] = 0.1 priorList['Ysig'] = 0.127 priorList['gammaYsig'] = 1.0 priorList['betaYsig'] = 1.0 import os if 'mnu' in fishName: pl = Plotter(labelY="$\sigma(" + paramLatexList[paramList.index("mnu")] + ")$ (meV)", labelX="Iteration", ftsize=20) elif 'w0' in fishName: pl = Plotter(labelY="$\\frac{\sigma(" + paramLatexList[paramList.index("w0")] + ")}{" + paramLatexList[paramList.index("w0")] + "}\%$", labelX="Iteration", ftsize=20) #for doBAO in [False,True]: for fishSection in ["fisher-" + fishName, "fisher-" + fishName + "-DESI"]: priorNameList = [] priorValueList = [] iterations = 0
experimentName = "SO-v2-6m" beams = listFromConfig(Config,experimentName,'beams') noises = listFromConfig(Config,experimentName,'noises') freqs = listFromConfig(Config,experimentName,'freqs') lmax = int(Config.getfloat(experimentName,'lmax')) lknee = listFromConfig(Config,experimentName,'lknee')[0] alpha = listFromConfig(Config,experimentName,'alpha')[0] fsky = Config.getfloat(experimentName,'fsky') SZProfExample = SZ_Cluster_Model(clusterCosmology=cc,clusterDict=clusterDict,rms_noises = noises,fwhms=beams,freqs=freqs,lmax=lmax,lknee=lknee,alpha=alpha,tsz_cib=True) #print SZProfExample.nl / SZProfExample.nl_new pl = Plotter() pl.add(SZProfExample.evalells,old_div(SZProfExample.nl_old, SZProfExample.nl)) pl.done("tests/new_nl_test.png") #ILC = ILC_simple(clusterCosmology=cc, rms_noises = noises,fwhms=beams,freqs=freqs,lmax=lmax,lknee=lknee,alpha=alpha) #ILC2 = ILC_simple(clusterCosmology=cc, rms_noises = noises[3:],fwhms=beams[3:],freqs=freqs[3:],lmax=lmax,lknee=lknee,alpha=alpha) #ILC3 = ILC_simple(clusterCosmology=cc, rms_noises = noises[3:6],fwhms=beams[3:6],freqs=freqs[3:6],lmax=lmax,lknee=lknee,alpha=alpha) ILC = ILC_simple(clusterCosmology=cc, rms_noises = noises,fwhms=beams,freqs=freqs,lmax=lmax,lknee=lknee,alpha=alpha) lsedges = np.arange(300,8001,100) el_ilc, cls_ilc, err_ilc, s2n = ILC.Forecast_Cellcmb(lsedges,fsky) el_ilc_c, cls_ilc_c, err_ilc_c, s2n_c = ILC.Forecast_Cellcmb(lsedges,fsky,constraint='tsz') print((s2n,s2n_c)) ILC = ILC_simple(clusterCosmology=cc, rms_noises = noises,fwhms=beams,freqs=freqs,lmax=7000,lknee=lknee,alpha=alpha)
# Read config iniFile = "input/params.ini" Config = SafeConfigParser() Config.optionxform = str Config.read(iniFile) px = 180 * 60 / 60000. gradCut = 60000. expName = "DM-18arcsec" lensName = "lensing" ls, Nls, ellbb, dlbb, efficiency = lensNoise(Config, expName, lensName, px=px, gradCut=gradCut, bigell=gradCut, plot=True) print efficiency print ls print Nls from orphics.tools.io import Plotter pl = Plotter(scaleY='log') pl.add(ls, Nls) pl._ax.set_ylim(1e-12, 1e-6) #pl._ax.set_xlim(2,4000) pl.done("nls.png")
Mexp_edges, z_edges, lndM = pickle.load(open(calFile,"rb")) HMF = Halo_MF(cc,Mexp_edges,z_edges) HMF.sigN = siggrid.copy() #MM = 10**np.linspace(13.,14.,5) #print SZProfExample.quickVar(MM,zz,tmaxN=tmaxN,numts=numts) #sys.exit() #print z_edges #print HMF.N_of_z() Nzs = HMF.N_of_z_SZ(fsky,SZProfExample)*np.diff(z_edges) zcents = old_div((z_edges[1:]+z_edges[:-1]),2.) pl = Plotter() pl.add(zcents,Nzs) pl.done("nz.png") print((HMF.Mass_err(fsky,lndM*24.0,SZProfExample))) #print "quickvar " , np.sqrt(SZProfExample.quickVar(MM,zz,tmaxN=tmaxN,numts=numts)) #print "filtvar " , np.sqrt(SZProfExample.filter_variance(MM,zz)) #print "y_m",SZProfExample.Y_M(MM,zz)
SZProf = SZ_Cluster_Model(cc,clusterDict,rms_noises = noise,fwhms=beam,freqs=freq,lknee=lknee,alpha=alpha) Ndn = HMF.N_of_mqz_SZ(lndM*massMultiplier,qbin_edges,SZProf) dNdp = old_div((getNmzq(Nup,mexp_edges,z_edges,qbin_edges)-getNmzq(Ndn,mexp_edges,z_edges,qbin_edges)),val) Nz = dNdp.copy().sum(axis=-1).sum(axis=0) Nm = dNdp.copy().sum(axis=-1).sum(axis=-1) Nq = dNdp.copy().sum(axis=0).sum(axis=0) yNzs[key].append((val,Nz,Nm,Nq)) pl = Plotter(labelX="$z$",labelY="$dN$") xstep = 0.01 for i,val in enumerate(vals): assert yNzs[key][i][0]==val pl.add(getCents(z_edges)+((i-old_div(len(vals),2))*xstep),yNzs[key][i][1],label=key+" "+str(val)) pl.legendOn(labsize=10,loc='upper right') pl.done(outDir+key+"_Nz_step.png") pl = Plotter(labelX="$M$",labelY="$dN$") xstep = 0.01 for i,val in enumerate(vals): assert yNzs[key][i][0]==val pl.add(getCents(mexp_edges)+((i-old_div(len(vals),2))*xstep),yNzs[key][i][2],label=key+" "+str(val)) pl.legendOn(labsize=10,loc='upper right') pl.done(outDir+key+"_Nm_step.png") pl = Plotter(labelX="$q$",labelY="$dN$",scaleX='log') xstep = 0.1
TCMB = Config.getfloat('general','TCMB') gradCut = Config.getint('general','gradCut') halo = Config.getboolean('general','halo') fsky = Config.getfloat('general','sqDeg')/41250. kmin = 40 deg = 10. px = 0.5 dell = 10 kellrange = np.arange(80.,2100.,10.) Nlmvinv = 0. pl = Plotter(scaleY='log') for polComb in ['TT','TE','EE','EB']: kmax = getMax(polComb,tellmaxY,pellmaxY) bin_edges = np.arange(kmin,kmax,dell)+dell lmap = lm.makeEmptyCEATemplate(raSizeDeg=deg, decSizeDeg=deg,pixScaleXarcmin=px,pixScaleYarcmin=px) myNls = NlGenerator(lmap,theory,bin_edges,gradCut=gradCut) myNls.updateBins(bin_edges) nTX,nPX,nTY,nPY = myNls.updateNoise(beamX,noiseTX,noisePX,tellminX,tellmaxX, \ pellminX,pellmaxX,beamY=beamY,noiseTY=noiseTY, \ noisePY=noisePY,tellminY=tellminY,tellmaxY=tellmaxY, \ pellminY=pellminY,pellmaxY=pellmaxY,lkneesX=(lkneeTX,lkneePX),alphasX=(alphaTX,alphaPX), \ lkneesY=(lkneeTY,lkneePY),alphasY=(alphaTY,alphaPY),lxcutTX=lxcutTX, \ lxcutTY=lxcutTY,lycutTX=lycutTX,lycutTY=lycutTY, \ lxcutPX=lxcutPX,lxcutPY=lxcutPY,lycutPX=lycutPX,lycutPY=lycutPY, \ fgFileX=fgFileX,beamFileX=beamFileX,fgFileY=fgFileY,beamFileY=beamFileY )
oml = 1. - cc.om - cc.ob - cc.omnuh2 / cc.h / cc.h print(oml) # cbias = np.zeros((mrange.size,zcents.size)) # for i,z in enumerate(zcents): # cbias[:,i] = hbias(10**mrange,zcents,cc.h,cc.om,oml) Mg, zg = np.meshgrid(10**mrange, zcents) cbias = hbias(Mg, zg, cc.h, cc.om, oml).T print(cbias) print((hb.shape)) print((cbias.shape)) #sys.exit() pl = Plotter() pl.plot2d(hb) pl.done(outDir + "hb.png") pl = Plotter() pl.plot2d(cbias) pl.done(outDir + "cbias.png") ls = "-" lab = "" pl = Plotter(labelX="$z$", labelY="b", ftsize=14) pl.add(zcents, hb[np.where(np.isclose(mrange, 14.0)), :].ravel(), ls=ls, label=lab + " 10^14 Msol/h") pl.add(zcents,
#beamRange = np.arange(1.5,9.5,0.5) #beamRange = np.arange(9.5,30.5,2.5) #beamRange = np.arange(1.5,5.0,0.5) beamX = 10.0 noiseRange = np.arange(3.0, 30.0, 4.0) swap = False #for polComb in ['TT','EB']: for polComb in ['EB']: for delens in [False, True]: if polComb == 'TT' and delens: continue pl = Plotter(scaleY='log', labelX="$L$", labelY="$C_L$") sns = [] #for beamX in beamRange: for noiseTX in noiseRange: noisePX = np.sqrt(2.) * noiseTX myNls = NlGenerator(lmap, theory, gradCut=gradCut) kmax = getMax(polComb, tellmaxY, pellmaxY) bin_edges = np.arange(kmin, kmax, dell) + dell myNls.updateBins(bin_edges) if swap: tempB = beamY beamY = beamX
alpha=alpha) fsky = 0.4 N1 = hmf.N_of_z() * fsky #hmf.sigN = np.loadtxt("temp.txt") try: hmf.sigN = np.loadtxt("tempSigN.txt") N2 = hmf.N_of_z_SZ(SZProf) * fsky except: N2 = hmf.N_of_z_SZ(SZProf) * fsky np.savetxt("tempSigN.txt", hmf.sigN) pl = Plotter() pl.plot2d(hmf.sigN) pl.done(outDir + "signRefactor.png") pl = Plotter(scaleY='log') pl.add(zs, N1) pl.add(zs, N2) Ntot1 = np.trapz(N2, zs) print(Ntot1) sn, ntot = hmf.Mass_err(fsky, outmerr, SZProf) print(ntot) #q_arr = np.logspace(np.log10(6.),np.log10(500.),64)
myNls = NlGenerator(lmap, theory, bin_edges, gradCut=gradCut) from scipy.interpolate import interp1d from orphics.tools.io import Plotter ellkk = np.arange(2, 9000, 1) Clkk = theory.gCl("kk", ellkk) clfunc = interp1d(ellkk, Clkk, bounds_error=False, fill_value="extrapolate") kellmax = 8000 cc = ClusterCosmology(cosmoDict, constDict, kellmax, pickling=True) theory = cc.theory pl = Plotter(labelX="Beam (arcmin)", labelY="$\\sigma(M)/M$ for $N=1000$", ftsize=16) for miscenter in [False, True]: for lensName, linestyle in zip(["CMB_all", "CMB_pol"], ["-", "--"]): for doFg in [False, True]: if lensName == "CMB_pol" and not (doFg): continue if lensName == "CMB_all" and not (doFg) and miscenter: continue sns = [] for beamNow in beamList: pols = Config.get(lensName, 'polList').split(',') if doFg: fgFuncY = fgFunc