High resolution templates¶
Starting from version 2.0, all input templates have been rotated to Equatorial, therefore by default the output is in Equatorial coordinates.
so_pysm_models
also provides access to templates with higher resolution and with updated
data compared to the models included in PySM.
They can be accessed with the function get_so_models()
which works similarly to the models
function available in PySM, for example:
from so_pysm_models import get_so_models
from pysm.nominal import models
from pysm import Sky
sky = Sky(component_objects=[get_so_models("SO_d0s", nside=4096)])
Consider that the so_pysm_models
models are by default in Equatorial coordinates, therefore they should not
be mixed in the same run with standard PySM components which instead are in Galactic coordinates. If you need PySM to simultaneously handle inputs in different reference frames, please open an issue in the PySM repository.
so_pysm_models
retrieves the templates when needed from NERSC via web accessing:
http://portal.nersc.gov/project/cmb/so_pysm_models_data/
Downloaded files are stored in the astropy
cache, generally astropy/cache
and are accessible using astropy.utils.data
, e.g. astropy.utils.data.get_cached_urls()
gives the list of downloaded files. If running at NERSC, the module automatically uses the files accessible locally from the /project
filesystem.
Low-resolution templates are standard PySM ones at \(N_{side}\) 512, often with updated parameters based on Planck results. High-resolution templates are computed from the low-resolution ones, by extrapolating power spectra considering a simple power law model, and by generating small scales as Gaussian realization of these spectra. High-resolution templates therefore have Gaussian small scales (for \(\ell > ~ 1000\)) modulated with large scale signal for both temperature and polarization.
You can access the high resolution parameters at \(N_{side}\) 4096 appending s
(for small scale) at the end of each model name, for example:
from so_pysm_models import get_so_models
from pysm import Sky
sky_highres = Sky(component_objects=[get_so_models("SO_d0s", nside=4096)])
Whatever the \(N_{side}\) of the input model and the requested \(N_{side}\) in get_so_models()
, PySM will automatically use healpy.ud_grade()
to adjust the map resolution.
Details about individual models¶
Append “s” after a model name to access the \(N_{side}\) 4096 template, i.e. SO_f0s
.
Dust
SO_d0: Thermal dust is modeled as a single-component modified black body, with same templates as in PySM model
d1
. There is no spatial variation of temperature and emissivity in the sky: \(T=19.6\) K and \(\beta_d=1.53\) (values taken from Planck Collaboration IX 2018).SO_d1: Thermal dust is modeled as a single-component modified black body, with same templates as in PySM model
d1
. Both spectral index and dust temperature are spatially varying up to the degree scale.
Synchrotron
SO_s0: Templates from PySM model
s1
. Power law spectral energy distribution, with fixed spectral index \(\beta_s=-3.1\) (from Planck Collaboration IX 2018).SO_s1: Templates from PySM model
s1
. Power law spectral energy distribution, with spatially varying spectral index up to the degree scale.
Free Free
SO_f0: same model as PySM
f1
, no spatial variation of spectral index equal to -2.4.
AME
SO_a0: sum of two spinning dust populations (as in PySM model
a1
) with spatially constant peak frequency. No polarization.SO_a1: sum of two spinning dust populations (as in PySM model
a1
). First one with spatially constant peak frequency, the other with spatially variable peak frequency up to the degree scale. Polarized maps simulated with thermal dust angles and nominal AME intensity, scaled globally by 1% polarization fraction.