def test_homogeneous_noise(): seed = 1234 tube = "ST3" simulator = mapsims.SONoiseSimulator(nside=nside, homogeneous=False) output_map = simulator.simulate(tube, seed=seed) assert hp.mask_bad(output_map).sum() > 100 simulator = mapsims.SONoiseSimulator(nside=nside, homogeneous=True) output_map = simulator.simulate(tube, seed=seed) assert hp.mask_bad(output_map).sum() == 0 assert output_map[0][0][1].std() < 4
def test_no_atmosphere(): """Disabling atmosphere reduces power in the map""" seed = 1234 tube = "ST3" simulator = mapsims.SONoiseSimulator(nside=nside, homogeneous=True, rolloff_ell=None) output_map = simulator.simulate(tube, seed=seed, atmosphere=True) assert output_map[0][0][0].std() > .5 output_map = simulator.simulate(tube, seed=seed, atmosphere=False) assert output_map[0][0][0].std() < .5
def test_noise_simulator_car(tube): from pixell import enmap seed = 1234 shape, wcs = enmap.fullsky_geometry(res=res) simulator = mapsims.SONoiseSimulator(shape=shape, wcs=wcs) output_map = simulator.simulate(tube, seed=seed) expected_map = enmap.read_map( data.get_pkg_data_filename( f"data/noise_{tube}_uKCMB_classical_res30_seed1234_car.fits.gz" ) ) assert_quantity_allclose(output_map, expected_map, rtol=1e-5)
def test_noise_simulator(tube): seed = 1234 simulator = mapsims.SONoiseSimulator(nside=nside) output_map = simulator.simulate(tube, seed=seed) for i, ch in enumerate(simulator.tubes[tube]): expected_map = hp.read_map( data.get_pkg_data_filename( f"data/noise_{tube}_{ch.band}_uKCMB_classical_nside16_seed1234_healpix.fits.gz" ), (0, 1, 2), verbose=False, ) assert_quantity_allclose(output_map[i, 0], expected_map)
def test_from_classes(): noise = mapsims.SONoiseSimulator( nside=NSIDE, return_uK_CMB=True, sensitivity_mode="baseline", apply_beam_correction=False, apply_kludge_correction=True, SA_one_over_f_mode="pessimistic", ) # Test CMB alms from Planck generated with # https://zonca.dev/2020/09/planck-spectra-healpy.html cmb = mapsims.SOPrecomputedCMB( num=0, nside=NSIDE, lensed=False, aberrated=False, has_polarization=True, cmb_set=0, cmb_dir="mapsims/tests/data", input_units="uK_CMB", ) simulator = mapsims.MapSim( channels="tube:ST0", nside=NSIDE, unit="uK_CMB", pysm_components_string="SO_d0", pysm_custom_components={"cmb": cmb}, pysm_output_reference_frame="C", other_components={"noise": noise}, ) output_map = simulator.execute(write_outputs=False)[simulator.channels[0][0].tag] expected_map = hp.read_map( data.get_pkg_data_filename("data/simonsobs_ST0_UHF1_nside16.fits.gz"), (0, 1, 2) ) assert_quantity_allclose(output_map, expected_map, rtol=1e-6)
import mapsims import healpy as hp content = "relative_hitmap" for tube in mapsims.so_utils.tubes.keys(): sim = mapsims.MapSim(channels=tube), other_components=mapsims.SONoiseSimulator()) sim = mapsims.SONoiseSimulator(telescopes=[\"LA\",\"SA\"], nside=256, scanning_strategy=False, num=134,\n", " rolloff_ell=50, hitmap_version=\"v0.2\", full_covariance=False)" hp.write_map("outputs/hitmaps/" +f"simonsobs_{content}_{scanning_strategy}_{telescope}_nside{nside}.fits", noise.hitmap[telescope])
import mapsims import healpy as hp content = "relative_hitmap" for nside in [512, 4096]: for scanning_strategy in ["classical", "opportunistic"]: noise = mapsims.SONoiseSimulator(nside=nside, scanning_strategy=scanning_strategy) for telescope in ["SA", "LA"]: hp.write_map("/home/zonca/comet/simonsobs/hitmaps/" +f"simonsobs_{content}_{scanning_strategy}_{telescope}_nside{nside}.fits", noise.hitmap[telescope])
import numpy as np import healpy as hp import pytest from astropy.tests.helper import assert_quantity_allclose from astropy.utils import data import mapsims import pysm.units as u from mapsims import so_utils from pixell import enmap from orphics import io res = np.deg2rad(30 / 60.) seed = 1234 shape, wcs = enmap.fullsky_geometry(res=res) simulator = mapsims.SONoiseSimulator(shape=shape, wcs=wcs) for tube in ["LT0", "ST3"]: output_map = simulator.simulate(tube, seed=seed) fname = f"noise_{tube}_uKCMB_classical_res30_seed1234_car" expected_map = enmap.write_map(f"{fname}.fits", output_map) nside = 16 simulator = mapsims.SONoiseSimulator(nside=nside) for tube in ["ST0", "ST3"]: output_map = simulator.simulate(tube, seed=seed) for i, band in enumerate(so_utils.tubes[tube]): fname = f"noise_{tube}_{band}_uKCMB_classical_nside16_seed1234_healpix" expected_map = hp.write_map(f"{fname}.fits", output_map[i, 0])