def _get_component(tag): if '_' in tag: components = sum([_get_component(c) for c in tag.split('_')], []) elif tag == 'fixedpowerlaw': components = [cm.PowerLaw(nu0=30, beta_pl=1.1)] elif tag == 'powerlaw': components = [cm.PowerLaw(nu0=30)] components[0].defaults = [1.5] elif tag == 'curvedpowerlaw': components = [cm.PowerLaw(nu0=30, nu_pivot=40, running=None)] components[0].defaults = [-1.5, 1.8] else: raise ValueError('Unsupported tag: %s' % tag) return components
def setUp(self): np.random.seed(0) self.LMAX = 100 N_FREQ = 4 N_STOKES = 3 self.TOL = 1e-1 F = 1e-3 self.BINS_WIDTH = 10 self.ids = np.arange( (N_STOKES + 1) * (self.LMAX + 1)) // self.BINS_WIDTH self.cl = (self.ids + 1.).reshape((N_STOKES + 1), self.LMAX + 1) self.cl = 3 * (self.cl / self.cl[-2].max())**3 self.cl = self.cl[..., ::-1] self.cl[-1] *= 0.0 # TE is zero self.cl_noise = np.ones_like(self.cl) self.cl_noise *= self.TOL * F self.cl_noise[-1] *= 0.0 self.nside = 2**int(np.log2((self.LMAX + 1) / 3)) self.npix = hp.nside2npix(self.nside) self.s = hp.synfast(self.cl, self.nside, new=True, verbose=False) noise = [ hp.synfast(self.cl_noise, self.nside, new=True, verbose=False) for i in range(N_FREQ) ] noise = np.array(noise) self.freqs = np.logspace(1, 2, N_FREQ) self.components = [cm.PowerLaw(10., 0.1, units='K_RJ')] sed = self.components[0].eval(self.freqs).reshape(-1, 1, 1) self.a = sed[:, 0] self.d = sed * self.s self.d += noise
def setUp(self): np.random.seed(0) self.NSIDE = 128 N_FREQ = 4 N_STOKES = 3 self.TOL = 1e-1 F = 1e-3 npix = hp.nside2npix(self.NSIDE) self.freqs = np.logspace(1, 2, N_FREQ) self.cov = np.arange(N_STOKES * 12).reshape(N_STOKES, 12) // 4 + 1. self.s = np.random.normal(size=N_STOKES * npix).reshape(N_STOKES, npix) self.s_patchy = self.s * hp.ud_grade(self.cov**0.5, self.NSIDE) self.components = [cm.PowerLaw(10., 0.1)] sed = self.components[0].eval(self.freqs).reshape(-1, 1, 1) self.a = sed[:, 0] self.exp_freq_cov = self.a * self.a.T + np.eye(N_FREQ) * self.TOL * F self.d = sed * self.s noise = np.random.normal(size=self.d.size).reshape(self.d.shape) noise *= (self.TOL * F)**0.5 self.d += noise self.d_patchy = sed * self.s_patchy + noise
def setUp(self): NSIDE = 16 MODEL = 'c1d0s0f1' INSTRUMENT = 'LiteBIRD' X0_FACTOR = 0.99 sky = get_sky(NSIDE, MODEL) self.instrument = get_instrument(INSTRUMENT) self.freq_maps = get_observation(self.instrument, sky) self.components = [cm.CMB(), cm.Dust(200.), cm.Synchrotron(100.)] freefree = cm.PowerLaw(100.) freefree.defaults = [-2.14] # Otherwise it is the same as Synchrotron self.components.append(freefree) self.input = [] for component in self.components: self.input += component.defaults component.defaults = [d * X0_FACTOR for d in component.defaults]
def setUp(self): NSIDE = 16 MODEL = 'c1d0s0f1' INSTRUMENT = 'litebird' X0_FACTOR = 0.99 sky = pysm.Sky(get_sky(NSIDE, MODEL)) self.instrument = pysm.Instrument(get_instrument(INSTRUMENT, NSIDE)) with suppress_stdout(): self.freq_maps, self.noise = self.instrument.observe( sky, write_outputs=False) self.components = [cm.CMB(), cm.Dust(200.), cm.Synchrotron(100.)] freefree = cm.PowerLaw(100.) freefree.defaults = [-2.14] # Otherwise it is the same as Synchrotron self.components.append(freefree) self.input = [] for component in self.components: self.input += component.defaults component.defaults = [d * X0_FACTOR for d in component.defaults]