Source code for pysm.models.cmb

import numpy as np

from .. import utils
from .. import units as u
from .template import Model

[docs]class CMBMap(Model): def __init__(self, map_I, map_Q, map_U, nside, map_dist=None): super().__init__(nside=nside, map_dist=map_dist) self.map_I = self.read_map(map_I, unit=u.uK_CMB) self.map_Q = self.read_map(map_Q, unit=u.uK_CMB) self.map_U = self.read_map(map_U, unit=u.uK_CMB)
[docs] @u.quantity_input def get_emission(self, freqs: u.GHz, weights=None) -> u.uK_RJ: freqs = utils.check_freq_input(freqs) weights = utils.normalize_weights(freqs, weights) convert_to_uK_RJ = (np.ones(len(freqs), dtype=np.double) * u.uK_CMB).to_value( u.uK_RJ, equivalencies=u.cmb_equivalencies(freqs) ) if len(freqs) == 1: scaling_factor = convert_to_uK_RJ[0] else: scaling_factor = np.trapz(convert_to_uK_RJ * weights, x=freqs.value) return (np.array([self.map_I, self.map_Q, self.map_U]) * scaling_factor) << u.uK_RJ