Пример #1
0
def test_integrate_wcs_geom():
    center = SkyCoord("0d", "0d", frame="icrs")
    model_0_0d = GaussianSpatialModel(lon="0.234d",
                                      lat="-0.172d",
                                      sigma=1e-4 * u.deg,
                                      frame="icrs")

    model_0_01d = GaussianSpatialModel(lon="0.234d",
                                       lat="-0.172d",
                                       sigma=0.01 * u.deg,
                                       frame="icrs")
    model_0_005d = GaussianSpatialModel(lon="0.234d",
                                        lat="-0.172d",
                                        sigma=0.005 * u.deg,
                                        frame="icrs")

    geom = WcsGeom.create(skydir=center, npix=100, binsz=0.02)

    # TODO: solve issue with small radii
    integrated_0_0d = model_0_0d.integrate_geom(geom)
    integrated_0_01d = model_0_01d.integrate_geom(geom)
    integrated_0_005d = model_0_005d.integrate_geom(geom)

    assert_allclose(integrated_0_0d.data.sum(), 1, atol=2e-4)
    assert_allclose(integrated_0_01d.data.sum(), 1, atol=2e-4)
    assert_allclose(integrated_0_005d.data.sum(), 1, atol=2e-4)
Пример #2
0
def test_integrate_geom():
    center = SkyCoord("0d", "0d", frame='icrs')
    model = GaussianSpatialModel(lon="0d", lat="0d", sigma=0.1*u.deg, frame='icrs')

    radius_large = 1 * u.deg
    circle_large = CircleSkyRegion(center, radius_large)
    radius_small = 0.1 * u.deg
    circle_small = CircleSkyRegion(center, radius_small)

    geom_large, geom_small = RegionGeom(region=circle_large), RegionGeom(region=circle_small)

    integral_large, integral_small = model.integrate_geom(geom_large).data, model.integrate_geom(geom_small).data

    assert_allclose(integral_large[0], 1, rtol=0.01)
    assert_allclose(integral_small[0], 0.3953, rtol=0.01)
Пример #3
0
def test_integrate_geom_energy_axis():
    center = SkyCoord("0d", "0d", frame='icrs')
    model = GaussianSpatialModel(lon="0d", lat="0d", sigma=0.1*u.deg, frame='icrs')
    
    radius = 1 * u.deg
    square = RectangleSkyRegion(center, radius, radius)
    
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=10)
    geom = RegionGeom(region=square, axes=[axis])
    
    integral = model.integrate_geom(geom).data
    
    assert_allclose(integral, 1, rtol=0.01)