def recon_from_config(Config, recon_section, parray, theory, lmax, grad_cut=None, pol=False, u_equals_l=True): min_ell = fmaps.minimum_ell(parray.shape, parray.wcs) lb = ellbounds_from_config(Config, recon_section, min_ell) tellmin = lb['tellminY'] tellmax = lb['tellmaxY'] pellmin = lb['pellminY'] pellmax = lb['pellmaxY'] kellmin = lb['kellmin'] kellmax = lb['kellmax'] lxmap_dat, lymap_dat, modlmap_dat, angmap_dat, lx_dat, ly_dat = fmaps.get_ft_attributes_enmap( parray.shape, parray.wcs) template_dat = fmaps.simple_flipper_template_from_enmap( parray.shape, parray.wcs) nT = parray.nT nP = parray.nP kbeam_dat = parray.lbeam fMaskCMB_T = fmaps.fourierMask(lx_dat, ly_dat, modlmap_dat, lmin=tellmin, lmax=tellmax) fMaskCMB_P = fmaps.fourierMask(lx_dat, ly_dat, modlmap_dat, lmin=pellmin, lmax=pellmax) fMask = fmaps.fourierMask(lx_dat, ly_dat, modlmap_dat, lmin=kellmin, lmax=kellmax) with oio.nostdout(): from alhazen.quadraticEstimator import Estimator qest = Estimator(template_dat, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT, nP, nP], noiseY2dTEB=[nT, nP, nP], fmaskX2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskY2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskKappa=fMask, kBeamX=kbeam_dat, kBeamY=kbeam_dat, doCurl=False, TOnly=not (pol), halo=True, uEqualsL=u_equals_l, gradCut=grad_cut, bigell=lmax) return tellmin, tellmax, pellmin, pellmax, kellmin, kellmax, qest
def _init_qests(self): mlist = ['e','s','r'] self.qest = {} tellminY = 500 tellmaxY = 3000 pellminY = 500 pellmaxY = 3000 tellminX = 500 tellmaxX = 3000 pellminX = 500 pellmaxX = 3000 kellmin = 80 kellmax = 3000 self.kellmin = kellmin self.kellmax = kellmax for m in mlist: lxmap_dat,lymap_dat,modlmap_dat,angmap_dat,lx_dat,ly_dat = fmaps.get_ft_attributes_enmap(self.shape[m],self.wcs[m]) nT = modlmap_dat.copy()*0. nP = modlmap_dat.copy()*0. lbeam = modlmap_dat.copy()*0.+1. template_dat = fmaps.simple_flipper_template_from_enmap(self.shape[m],self.wcs[m]) fMaskCMB_TX = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=tellminX,lmax=tellmaxX) fMaskCMB_TY = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=tellminY,lmax=tellmaxY) fMaskCMB_PX = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=pellminX,lmax=pellmaxX) fMaskCMB_PY = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=pellminY,lmax=pellmaxY) fMask = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=kellmin,lmax=kellmax) with io.nostdout(): self.qest[m] = Estimator(template_dat, self.theory, theorySpectraForNorm=None, noiseX2dTEB=[nT,nP,nP], noiseY2dTEB=[nT,nP,nP], fmaskX2dTEB=[fMaskCMB_TX,fMaskCMB_PX,fMaskCMB_PX], fmaskY2dTEB=[fMaskCMB_TY,fMaskCMB_PY,fMaskCMB_PY], fmaskKappa=fMask, kBeamX = lbeam, kBeamY = lbeam, doCurl=False, TOnly=True, halo=True, uEqualsL=True, gradCut=None,verbose=False, bigell=self.lmax)
) * 0. + gGenT.power / beamTemplate[:, :]**2. / TCMB**2. filt_noiseE = fot.copy( ) * 0. + gGenP1.power / beamTemplate[:, :]**2. / TCMB**2. filt_noiseB = fot.copy( ) * 0. + gGenP2.power / beamTemplate[:, :]**2. / TCMB**2. if k == 0: qest = Estimator(lensedTLm, theory, theorySpectraForNorm=None, noiseX2dTEB=[filt_noiseT, filt_noiseE, filt_noiseB], noiseY2dTEB=[filt_noiseT, filt_noiseE, filt_noiseB], fmaskX2dTEB=[fMaskCMB] * 3, fmaskY2dTEB=[fMaskCMB] * 3, fmaskKappa=fMask, doCurl=False, TOnly=tonly, halo=True, gradCut=cmbellmax, verbose=True, loadPickledNormAndFilters=loadFile, savePickledNormAndFilters=saveFile) print "Reconstructing", i, " ..." qest.updateTEB_X(fot, foe, fob, alreadyFTed=True) qest.updateTEB_Y(alreadyFTed=True) for j, polComb in enumerate(polCombList): kappa = qest.getKappa(polComb)
kellmax = 4000 fMaskCMB = fmaps.fourierMask(lx, ly, modLMap, lmin=cmbellmin, lmax=cmbellmax) fMask = fmaps.fourierMask(lx, ly, modLMap, lmin=kellmin, lmax=kellmax) qest = Estimator(smap, theory, theorySpectraForNorm=None, noiseX2dTEB=[filt_noiseT, filt_noiseE, filt_noiseB], noiseY2dTEB=[filt_noiseT, filt_noiseE, filt_noiseB], fmaskX2dTEB=[fMaskCMB] * 3, fmaskY2dTEB=[fMaskCMB] * 3, fmaskKappa=fMask, doCurl=False, TOnly=True, halo=True, gradCut=gradCut, verbose=False, loadPickledNormAndFilters=None, savePickledNormAndFilters=None) lensedMapX = stamp.copy() * win lensedMapY = stamp.copy() * win try: fotX = np.nan_to_num( fft(lensedMapX, axes=[-2, -1]) / beamTemplate[:, :]) except:
lmax=pellmax) fMask = fmaps.fourierMask(lx_dat, ly_dat, modlmap_dat, lmin=kellmin, lmax=kellmax) qest = Estimator(template_dat, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT, nP, nP], noiseY2dTEB=[nT, nP, nP], fmaskX2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskY2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskKappa=fMask, kBeamX=kbeampass, kBeamY=kbeampass, doCurl=False, TOnly=not (pol), halo=True, uEqualsL=True, gradCut=gradCut, verbose=False, bigell=lmax) clkk2d = theory.gCl('kk', modlmap_dat) for k, index in enumerate(my_tasks): if rank == 0: print( ("Rank ", rank, " doing job ", k + 1, " / ", len(my_tasks), "..."))
lxMap,lyMap,modLMap,thetaMap,lx,ly = fmaps.getFTAttributesFromLiteMap(templateMap) print "Making white noise..." nT,nP = fmaps.whiteNoise2D([noiseT,noiseP],beamArcmin,modLMap,TCMB=TCMB) fMask = fmaps.fourierMask(lx,ly,modLMap,lmin=cmbellmin,lmax=cmbellmax) fMaskK = fmaps.fourierMask(lx,ly,modLMap,lmin=kellmin,lmax=kellmax) qest = Estimator(templateMap, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT,nP,nP], noiseY2dTEB=[nT,nP,nP], fmaskX2dTEB=[fMask]*3, fmaskY2dTEB=[fMask]*3, fmaskKappa=fMaskK, doCurl=False, TOnly=len(polCombList)==1, halo=True, gradCut=10000, verbose=True, loadPickledNormAndFilters=loadFile, savePickledNormAndFilters=saveFile) modLMap = qest.N.modLMap bin_edges = np.arange(2,kellmax,10) pl = Plotter(scaleY='log',scaleX='log') pl.add(ellkk,4.*Clkk/2./np.pi) # CHECK THAT NORM MATCHES HU/OK
ly_dat, modlmap_dat, lmin=kellmin, lmax=kellmax) with io.nostdout(): qest = Estimator(template_dat, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT, nP, nP], noiseY2dTEB=[nT, nP, nP], fmaskX2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskY2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskKappa=fMask, kBeamX=kbeampass, kBeamY=kbeampass, doCurl=False, TOnly=not (pol), halo=True, uEqualsL=True, gradCut=10000, verbose=False, loadPickledNormAndFilters=None, savePickledNormAndFilters=None, bigell=9000) taper_percent = 14.0 pad_percent = 2.0 Ny, Nx = shape_dat taper = fmaps.cosineWindow(Ny, Nx,
lmin=kellmin, lmax=kellmax) if deconvolve_beam: kbeampass = None else: kbeampass = kbeam_dat qest = Estimator(template_dat, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT, nP, nP], noiseY2dTEB=[nT, nP, nP], fmaskX2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskY2dTEB=[fMaskCMB_T, fMaskCMB_P, fMaskCMB_P], fmaskKappa=fMask, kBeamX=kbeampass, kBeamY=kbeampass, doCurl=False, TOnly=not (pol), halo=True, gradCut=gradCut, verbose=False, loadPickledNormAndFilters=None, savePickledNormAndFilters=None) if maxlike: qest_maxlike = Estimator( template_dat, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT, nP, nP],
nT,nP,nP = fmaps.whiteNoise2D([1.0,1.0,1.0],1.0,modLMap,TCMB = TCMB) gradCut = 2000 cmbellmin = 200 cmbellmax = 8000 kellmin = 100 kellmax = 8000 fMaskCMB = fmaps.fourierMask(lx,ly,modLMap,lmin=cmbellmin,lmax=cmbellmax) fMask = fmaps.fourierMask(lx,ly,modLMap,lmin=kellmin,lmax=kellmax) qest = Estimator(templateLM, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT,nP,nP], noiseY2dTEB=[nT,nP,nP], fmaskX2dTEB=[fMaskCMB]*3, fmaskY2dTEB=[fMaskCMB]*3, fmaskKappa=fMask, doCurl=False, TOnly=not(pol), halo=True, gradCut=gradCut,verbose=True, loadPickledNormAndFilters=None, savePickledNormAndFilters=None) # bin_edges = np.arange(kellmin,kellmax,20) # b = bin2D(modLMap,bin_edges) # ls,Nls = b.bin(qest.N.Nlkk['EB']) # pl = Plotter(scaleY='log') # pl.add(bin_edges,theory.gCl("kk",bin_edges)) # pl.add(ls,Nls)
nT = parray_dat.nT nP = parray_dat.nP kbeam_dat = parray_dat.lbeam kbeampass = kbeam_dat fMaskCMB_T = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=tellmin,lmax=tellmax) fMaskCMB_P = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=pellmin,lmax=pellmax) fMask = fmaps.fourierMask(lx_dat,ly_dat,modlmap_dat,lmin=kellmin,lmax=kellmax) with io.nostdout(): qest = Estimator(template_dat, theory, theorySpectraForNorm=None, noiseX2dTEB=[nT,nP,nP], noiseY2dTEB=[nT,nP,nP], fmaskX2dTEB=[fMaskCMB_T,fMaskCMB_P,fMaskCMB_P], fmaskY2dTEB=[fMaskCMB_T,fMaskCMB_P,fMaskCMB_P], fmaskKappa=fMask, kBeamX = kbeampass, kBeamY = kbeampass, doCurl=False, TOnly=not(pol), halo=True, uEqualsL=True, gradCut=args.grad_cut,bigell=lmax) covseed = 0 def l(cseed,kseed,returnk=False,index=None): cname = fout_dir+"lensed_covseed_"+str(args.covseed).zfill(3)+"_cmbseed_"+str(cseed).zfill(5)+"_kseed_"+str(kseed).zfill(5)+".hdf" if unlensed: seedroot = (covseed)*Nsets*Nsims