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
示例#4
0
    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]
示例#5
0
    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]