示例#1
0
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)
示例#2
0
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)