Exemple #1
0
    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
Exemple #2
0
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
Exemple #3
0
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")
Exemple #4
0
    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
Exemple #5
0
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, :])
Exemple #6
0
    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")
Exemple #7
0

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
Exemple #8
0
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
Exemple #9
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)
Exemple #10
0
# 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")
Exemple #11
0
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)
Exemple #12
0
        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
Exemple #13
0
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 )
Exemple #14
0
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,
Exemple #15
0
#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
Exemple #16
0
                          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)
Exemple #17
0
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