def get_sim(self,season,patch,array,sim_num, save_alm=True, save_map=False, set_idx=0,mask_patch=None,fgflux="15mjy"): shape,wcs = self.noise_gen.load_covsqrt(season,patch,array,coadd=True,mask_patch=mask_patch,get_geometry=True) # (nfreqs,nsplits,npol,Ny,Nx) noises,ivars = self.get_noise(season=season,patch=patch,array=array, sim_num=sim_num,mask_patch=mask_patch,set_idx=set_idx,apply_ivar=False) #noises,ivars = self.get_noise(season=season,patch=patch,array=array, sim_num=0,mask_patch=mask_patch,set_idx=set_idx,apply_ivar=False) afreqs = self.noise_gen.dm.array_freqs[array] #afreqs = ['pa1_f090', 'pa1_f150'] signals = [] for afreq in afreqs: # This could be improved if self.model=='act_mr3': pfreq = afreq.split('_')[1] elif self.model=='planck_hybrid': pfreq = afreq assert season is None season = "planck" patch = "planck" array = "planck" imap = self.get_signal(season, patch, array, pfreq, sim_num, save_alm=save_alm, save_map=save_map, set_idx=set_idx,oshape=shape,owcs=wcs,fgflux=fgflux) signals.append(imap) owcs = imap.wcs # (nfreqs,npol,Ny,Nx) signals = enmap.enmap(np.stack(signals),owcs)[:,None,...] del imap assert wcsutils.equal(wcs,noises.wcs) assert wcsutils.equal(owcs,noises.wcs) return self._footprint(noise.apply_ivar_window(signals + noises,ivars))
def test_wcsunequal(self): shape1,wcs1 = enmap.geometry(pos=(0,0),shape=(100,100),res=1*u.arcmin,proj='car') shape1,wcs2 = enmap.geometry(pos=(0,0),shape=(100,100),res=1*u.arcmin,proj='cea') shape1,wcs3 = enmap.geometry(pos=(10,10),shape=(100,100),res=1*u.arcmin,proj='car') shape1,wcs4 = enmap.geometry(pos=(0,0),shape=(100,100),res=2*u.arcmin,proj='car') assert not(wcsutils.equal(wcs1,wcs2)) assert not(wcsutils.equal(wcs1,wcs3)) assert not(wcsutils.equal(wcs1,wcs4))
def test_lensing(self): lensed,unlensed = get_lens_result(1.,400,np.float64) lensed0 = enmap.read_map(DATA_PREFIX+"MM_lensed_%s.fits" % lens_version) unlensed0 = enmap.read_map(DATA_PREFIX+"MM_unlensed_%s.fits" % lens_version) y,x = lensed0.posmap() assert np.all(np.isclose(lensed,lensed0)) assert np.all(np.isclose(unlensed,unlensed0)) assert wcsutils.equal(lensed.wcs,lensed0.wcs) assert wcsutils.equal(unlensed.wcs,unlensed0.wcs) assert wcsutils.equal(unlensed.wcs,lensed.wcs)
def test_offset(self): obs_pos,grad,raw_pos = get_offset_result(1.) obs_pos0 = enmap.read_map(DATA_PREFIX+"MM_offset_obs_pos_%s.fits" % lens_version) grad0 = enmap.read_map(DATA_PREFIX+"MM_offset_grad_%s.fits" % lens_version) raw_pos0 = enmap.read_map(DATA_PREFIX+"MM_offset_raw_pos_%s.fits" % lens_version) assert np.all(np.isclose(obs_pos,obs_pos0)) assert np.all(np.isclose(raw_pos,raw_pos0)) assert np.all(np.isclose(grad,grad0)) assert wcsutils.equal(grad.wcs,grad0.wcs) assert wcsutils.equal(obs_pos.wcs,obs_pos0.wcs) assert wcsutils.equal(raw_pos.wcs,raw_pos0.wcs)
def test_lensing(): lensed, unlensed = get_lens_result(1., 400, np.float64) path = os.path.dirname(enmap.__file__) + "/../tests/" lensed0 = enmap.read_map(path + "data/MM_lensed_042219.fits") unlensed0 = enmap.read_map(path + "data/MM_unlensed_042219.fits") y, x = lensed0.posmap() assert np.all(np.isclose(lensed, lensed0)) assert np.all(np.isclose(unlensed, unlensed0)) assert wcsutils.equal(lensed.wcs, lensed0.wcs) assert wcsutils.equal(unlensed.wcs, unlensed0.wcs) assert wcsutils.equal(unlensed.wcs, lensed.wcs)
def test_offset(): obs_pos, grad, raw_pos = get_offset_result(1.) path = os.path.dirname(enmap.__file__) + "/../tests/" obs_pos0 = enmap.read_map(path + "data/MM_offset_obs_pos_042219.fits") grad0 = enmap.read_map(path + "data/MM_offset_grad_042219.fits") raw_pos0 = enmap.read_map(path + "data/MM_offset_raw_pos_042219.fits") assert np.all(np.isclose(obs_pos, obs_pos0)) assert np.all(np.isclose(raw_pos, raw_pos0)) assert np.all(np.isclose(grad, grad0)) assert wcsutils.equal(grad.wcs, grad0.wcs) assert wcsutils.equal(obs_pos.wcs, obs_pos0.wcs) assert wcsutils.equal(raw_pos.wcs, raw_pos0.wcs)
def test_extract(self): # Tests that extraction is sensible shape, wcs = enmap.geometry(pos=(0, 0), shape=(500, 500), res=0.01) imap = enmap.enmap(np.random.random(shape), wcs) smap = imap[200:300, 200:300] sshape, swcs = smap.shape, smap.wcs smap2 = enmap.extract(imap, sshape, swcs) pixbox = enmap.pixbox_of(imap.wcs, sshape, swcs) # Do write and read test filename = "temporary_extract_map.fits" # NOT THREAD SAFE enmap.write_map(filename, imap) smap3 = enmap.read_map(filename, pixbox=pixbox) os.remove(filename) assert np.all(np.isclose(smap, smap2)) assert np.all(np.isclose(smap, smap3)) assert wcsutils.equal(smap.wcs, smap2.wcs) assert wcsutils.equal(smap.wcs, smap3.wcs)
def check_equality(imap1, imap2): assert np.all(imap1.shape == imap2.shape) assert wcsutils.equal(imap1.wcs, imap2.wcs) try: assert np.all(np.isclose(imap1, imap2)) except: from orphics import io io.plot_img(imap1, "i1.png", lim=[-1.5, 2]) io.plot_img(imap2, "i2.png", lim=[-1.5, 2]) io.plot_img((imap1 - imap2) / imap1, "ip.png", lim=[-0.1, 0.1]) assert 1 == 0
# get an edge taper map and apodize taper = maps.get_taper( l_stamp.shape, l_stamp.wcs, taper_percent=tap_per, pad_percent=pad_per, weight=None, ) taper = taper[0] # get geometry and Fourier info shape = kstamp.shape wcs = kstamp.wcs modlmap = enmap.modlmap(shape, wcs) assert wcsutils.equal(kstamp.wcs, lstamp.wcs) # evaluate the 2D Gaussian beam on an isotropic Fourier grid beam2d = maps.gauss_beam(modlmap, fwhm) # build Fourier space masks for lensing reconstruction xmask = maps.mask_kspace(shape, wcs, lmin=xlmin, lmax=xlmax) ymask = maps.mask_kspace(shape, wcs, lmin=ylmin, lmax=ylmax, lxcut=ylcut, lycut=ylcut) kmask = maps.mask_kspace(shape, wcs, lmin=klmin, lmax=klmax) # get theory spectrum and build interpolated 2D Fourier CMB from theory and maps