def test_edisp_map_read_write(tmp_path): edisp_map = make_edisp_map_test() edisp_map.write(tmp_path / "tmp.fits") new_edmap = EDispMap.read(tmp_path / "tmp.fits") assert_allclose(edisp_map.edisp_map.quantity, new_edmap.edisp_map.quantity)
def get_map_dataset(sky_model, geom, geom_etrue, edisp=True, **kwargs): """Returns a MapDatasets""" # define background model m = Map.from_geom(geom) m.quantity = 0.2 * np.ones(m.data.shape) background_model = BackgroundModel(m) psf = get_psf() exposure = get_exposure(geom_etrue) if edisp: # define energy dispersion e_true = geom_etrue.get_axis_by_name("energy") edisp = EDispMap.from_diagonal_response(energy_axis_true=e_true) else: edisp = None # define fit mask center = sky_model.spatial_model.position circle = CircleSkyRegion(center=center, radius=1 * u.deg) mask_fit = background_model.map.geom.region_mask([circle]) mask_fit = Map.from_geom(geom, data=mask_fit) return MapDataset(models=sky_model, exposure=exposure, background_model=background_model, psf=psf, edisp=edisp, mask_fit=mask_fit, **kwargs)
def test_edisp_map_read_write(tmpdir): edmap = make_edisp_map_test() filename = str(tmpdir / "edispmap.fits") edmap.write(filename, overwrite=True) new_edmap = EDispMap.read(filename) assert_allclose(edmap.edisp_map.quantity, new_edmap.edisp_map.quantity)
def test_edisp_from_diagonal_response(position): position = SkyCoord(position) energy_axis_true = MapAxis.from_energy_bounds("0.3 TeV", "10 TeV", nbin=31) edisp_map = EDispMap.from_diagonal_response(energy_axis_true) e_reco = energy_axis_true.edges edisp_kernel = edisp_map.get_edisp_kernel(position, e_reco=e_reco) sum_kernel = np.sum(edisp_kernel.data.data, axis=1).data # We exclude the first and last bin, where there is no # e_reco to contribute to assert_allclose(sum_kernel[1:-1], 1)
def test_edisp_map_to_from_hdulist(): edmap = make_edisp_map_test() hdulist = edmap.to_hdulist(edisp_hdu="EDISP", edisp_hdubands="BANDSEDISP") assert "EDISP" in hdulist assert "BANDSEDISP" in hdulist assert "EXPMAP" in hdulist assert "BANDSEXP" in hdulist new_edmap = EDispMap.from_hdulist(hdulist, edisp_hdu="EDISP", edisp_hdubands="BANDSEDISP") assert_allclose(edmap.edisp_map.data, new_edmap.edisp_map.data) assert new_edmap.edisp_map.geom == edmap.edisp_map.geom assert new_edmap.exposure_map.geom == edmap.exposure_map.geom