Verify dust templatesΒΆ

[ ]:
import os

os.environ[
    "OMP_NUM_THREADS"
] = "64"  # for jupyter.nersc.gov otherwise the notebook only uses 2 cores
[ ]:
import pysm3
import healpy as hp
import numpy as np
import matplotlib.pyplot as plt
[ ]:
cd /global/cfs/cdirs/cmb/www/pysm-data
[ ]:
cd dust_gnilc/
[ ]:
#name = "template"
#name = "Td"
name = "beta"
[ ]:
pol = (0,1,2) if name == "template" else (0,)
[ ]:
template_date = "_2023.06.06" if name in ["beta", "Td"] else ""
[ ]:
m = hp.read_map(f"gnilc_dust_{name}_nside4096{template_date}.fits", pol)
[ ]:
m2048 = hp.read_map(f"gnilc_dust_{name}_nside2048{template_date}.fits", pol)
[ ]:
m8192 = hp.read_map(f"gnilc_dust_{name}_nside8192{template_date}.fits", pol)
[ ]:
cl = hp.anafast(m, lmax=int(2.5*4096)).reshape((len(pol), -1))
[ ]:
cl8192 = hp.anafast(m8192, lmax=int(2*8192)).reshape((len(pol), -1))
[ ]:
cl2048 = hp.anafast(m2048, lmax=int(2.5*2048)).reshape((len(pol), -1))
[ ]:
from pathlib import Path
[ ]:
datadir = Path("raw")
[ ]:
if name == "template":
    name = "logpoltens"
    suffix="_complex64"
else:
    suffix = ""
[ ]:
alm_large_scale = hp.read_alm(
    datadir / f"gnilc_dust_largescale_template_{name}_alm_nside2048_lmax1024{suffix}.fits.gz",
    hdu=1,
)
[ ]:
cl_small_scale = hp.read_cl(
    datadir / f"gnilc_dust_small_scales_{name}_cl_lmax16384{template_date}.fits.gz"
).reshape((len(pol), -1))
[ ]:
if name == "logpoltens":
    name = "template"
[ ]:
pol_label = "TEB"
[ ]:
for p in pol:
    plt.figure(figsize=(12,6))
    plt.loglog(cl8192[p], label=f"map at Nside=8192")
    plt.loglog(cl[p], label="map at Nside=4096")
    plt.loglog(cl2048[p], label=f"map at Nside=2048")
    if name != "template":
        plt.loglog(hp.alm2cl(alm_large_scale.astype(complex).reshape((len(pol), -1)))[p], "--", label="large scale")
        plt.loglog(cl_small_scale[p], "--", label="small scales")
    plt.legend()
    plt.title(f"{name} maps spectra comparison {pol_label[p]}")
    plt.grid();
[ ]: