HensleyDraine2017¶
- class pysm3.HensleyDraine2017(map_I, map_Q, map_U, freq_ref_I, freq_ref_P, nside, max_nside=None, has_polarization=True, unit_I=None, unit_Q=None, unit_U=None, map_dist=None, mpi_comm=None, f_fe=None, f_car=None, rnd_uval=True, uval=0.2, nside_uval=256, seed=None)[source] [edit on github]¶
Bases:
Model
This is a model for modified black body emission.
- Attributes:
- I_ref, Q_ref, U_ref: ndarray
Arrays containing the intensity or polarization reference templates at frequency
freq_ref_I
orfreq_ref_P
.
This function initializes the Hensley-Draine 2017 model.
The initialization of this model consists of:
i) reading in emission templates from file, reading in data tables for the emissivity of silicate grains, silsicate grains with iron inclusions, and carbonaceous grains,
ii) interpolating these tables across wavelength and interstellar radiation field (ISRF) strength,
iii) generating a random realization of the interstellar radiation field, based on the modified Stefan-Boltzmann law, and measurements of dust temperature from Planck.
- Parameters:
- map_I, map_Q, map_U: `pathlib.Path` object
Paths to the maps to be used as I, Q, U templates.
- unit_*string or Unit
Unit string or Unit object for all input FITS maps, if None, the input file should have a unit defined in the FITS header.
- freq_ref_I, freq_ref_P: Quantity or string
Reference frequencies at which the intensity and polarization templates are defined. They should be a astropy Quantity object or a string (e.g. “1500 MHz”) compatible with GHz.
- nside: int
Resolution parameter at which this model is to be calculated.
- f_fe: float
Fractional composition of grain population with iron inclusions.
- f_car: float
Fractional composition of grain population in carbonaceous grains.
- rnd_uval: bool (optional, default=True)
Decide whether to draw a random realization of the ISRF.
- uval: float
This value is used only if rnd_uval is False, the default of 0.2 corresponds reasonably well to a Modifield Black Body model with temperature of 20K and an index of 1.54
- nside_uval: int (optional, default=256)
HEALPix nside at which to evaluate the ISRF before ud_grade is applied to get the output scaling law. The default is the resolution at which the inputs available (COMMANDER dust beta and temperature).
- seed: int
Number used to seed RNG for
uval
.
Methods Summary
Method to evaluate the frequency scaling in the HD17 model.
evaluate_mbb_scaling
(freq)Method to evaluate a simple MBB scaling model with a constant index of 1.54.
get_emission
(freqs[, weights])This function calculates the model of Hensley and Draine 2017 for the emission of a mixture of silicate, cabonaceous, and silicate grains with iron inclusions.
Methods Documentation
- evaluate_hd17_model_scaling(freq: Unit('GHz'))[source] [edit on github]¶
Method to evaluate the frequency scaling in the HD17 model. This caluculates the scaling factor to be applied to a set of T, Q, U maps in uK_RJ at some reference frequencies
self.freq_ref_I
,self.freq_ref_P
, in order to scale them to frequenciesfreqs
.- Parameters:
- freq: float
Frequency, convertible to microns, at which scaling factor is to be calculated.
- Returns:
- tuple(ndarray)
Scaling factor for intensity and polarization, at frequency
freq
. Tuple contains two arrays, each with shape (number of pixels).
- evaluate_mbb_scaling(freq: Unit('GHz'))[source] [edit on github]¶
Method to evaluate a simple MBB scaling model with a constant index of 1.54. This method is used for frequencies below the break frequency (nominally 10 GHz), as the data the HD17 model relies upon stops at 10 GHz.
At these frequencies, dust emission is largely irrelevant compared to other low frequency foregrounds, and so we do not expect the modeling assumptions to be significant. We therefore use a Rayleigh Jeans model for simplicity, and fix scale it from the SED at the break frequency.
- Parameters:
- freq: float
Frequency at which to evaluate model (convertible to GHz).
- Returns:
- tuple(ndarray)
Scaling factor for intensity and polarization, at frequency
freq
. Tuple contains two arrays, each with shape (number of pixels).
- get_emission(freqs: Unit('GHz'), weights=None)[source] [edit on github]¶
This function calculates the model of Hensley and Draine 2017 for the emission of a mixture of silicate, cabonaceous, and silicate grains with iron inclusions.
- Parameters:
- freqs: float
Frequencies in GHz. When an array is passed, this is treated as a specification of a bandpass, and the bandpass average is calculated. For a single frequency, the emission at that frequency is returned (delta bandpass assumption).
- Returns:
- ndarray
Maps of T, Q, U for the given frequency specification.
Notes
If
weights
is not given, a flat bandpass is assumed. Ifweights
is specified, it is automatically normalized.