def test_make_mean_psf(data_store): psf = data_store.obs(23523).psf geom = RegionGeom.create(region="icrs;point(83.63, 22.01)", axes=[psf.rad_axis, psf.energy_axis]) maker = MapDatasetMaker() psf_map_1 = maker.make_psf(geom=geom, observation=data_store.obs(23523)) psf_map_2 = maker.make_psf(geom=geom, observation=data_store.obs(23526)) psf_map_1.stack(psf_map_2) psf = psf_map_1.get_energy_dependent_table_psf() assert not np.isnan(psf.psf_value.value).any() assert_allclose(psf.psf_value.value[22, 22], 12206.167892)
def test_make_psf(pars, data_store): energy_axis = pars["energy"] rad_axis = pars["rad"] psf = data_store.obs(23523).psf if energy_axis is None: energy_axis = psf.energy_axis if rad_axis is None: rad_axis = psf.rad_axis geom = RegionGeom( region=PointSkyRegion(SkyCoord(83.63, 22.01, unit="deg")), axes=[rad_axis, energy_axis] ) maker = MapDatasetMaker() psf_map = maker.make_psf(geom=geom, observation=data_store.obs(23523)) psf = psf_map.get_energy_dependent_table_psf() assert psf.energy.unit == "GeV" assert psf.energy.shape == pars["energy_shape"] assert_allclose(psf.energy.value[15], pars["psf_energy"], rtol=1e-3) assert psf.rad.unit == "rad" assert psf.rad.shape == pars["rad_shape"] assert_allclose(psf.rad.value[15], pars["psf_rad"], rtol=1e-3) assert psf.exposure.unit == "cm2 s" assert psf.exposure.shape == pars["energy_shape"] assert_allclose(psf.exposure.value[15], pars["psf_exposure"], rtol=1e-3) assert psf.psf_value.unit == "sr-1" assert psf.psf_value.shape == pars["psf_value_shape"] assert_allclose(psf.psf_value.value[15, 50], pars["psf_value"], rtol=1e-3)