예제 #1
0
def test_hpx_nd_map_to_wcs_tiles():
    m = HpxNDMap.create(nside=8, frame="galactic")
    m.data += 1

    tiles = m.to_wcs_tiles(nside_tiles=4)
    assert_allclose(tiles[0].data, 1)
    assert_allclose(tiles[32].data, 1)

    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=1)
    m = HpxNDMap.create(nside=8, frame="galactic", axes=[axis])
    m.data += 1

    tiles = m.to_wcs_tiles(nside_tiles=4)
    assert_allclose(tiles[0].data, 1)
    assert_allclose(tiles[32].data, 1)
예제 #2
0
def test_hpx_map_weights_stack():
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=1)
    m = HpxNDMap.create(nside=32,
                        frame="galactic",
                        axes=[axis],
                        region="DISK(110.,75.,10.)")
    m.data += np.arange(90) + 1

    weights = m.copy()
    weights.data = 1 / (np.arange(90) + 1)

    m_allsky = HpxNDMap.create(nside=32, frame="galactic", axes=[axis])
    m_allsky.stack(m, weights=weights)

    assert_allclose(m_allsky.data.sum(), 90)
예제 #3
0
def test_partial_hpx_map_stack():
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=1)
    m_1 = HpxNDMap.create(nside=128,
                          frame="galactic",
                          axes=[axis],
                          region="DISK(110.,75.,20.)")
    m_1.data += 1

    m_2 = HpxNDMap.create(nside=128,
                          frame="galactic",
                          axes=[axis],
                          region="DISK(130.,75.,20.)")
    m_2.stack(m_1)

    assert_allclose(m_1.data.sum(), 5933)
    assert_allclose(m_2.data.sum(), 4968)
예제 #4
0
def test_hpx_map_cutout():
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=1)
    m = HpxNDMap.create(nside=32, frame="galactic", axes=[axis])
    m.data += np.arange(12288)

    cutout = m.cutout(SkyCoord("0d", "0d"), width=10 * u.deg)

    assert cutout.data.shape == (1, 25)
    assert_allclose(cutout.data.sum(), 239021)
    assert_allclose(cutout.data[0, 0], 8452)
    assert_allclose(cutout.data[0, -1], 9768)
예제 #5
0
def test_hpx_nd_map_pad_axis():
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=2)

    m = HpxNDMap.create(nside=2, frame="galactic", axes=[axis])
    m.data += [[1], [2]]

    m_pad = m.pad(axis_name="energy",
                  pad_width=(1, 1),
                  mode="constant",
                  cval=3)
    assert_allclose(m_pad.data[:, 0], [3, 1, 2, 3])
예제 #6
0
def test_partial_hpx_map_cutout():
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=1)
    m = HpxNDMap.create(nside=32,
                        frame="galactic",
                        axes=[axis],
                        region="DISK(110.,75.,10.)")
    m.data += np.arange(90)

    cutout = m.cutout(SkyCoord("0d", "0d"), width=10 * u.deg)

    assert cutout.data.shape == (1, 25)
    assert_allclose(cutout.data.sum(), 2225)
    assert_allclose(cutout.data[0, 0], 89)
    assert_allclose(cutout.data[0, -1], 89)
예제 #7
0
def test_hpx_map_to_region_nd_map():
    axis = MapAxis.from_energy_bounds("10 GeV", "2 TeV", nbin=10)
    m = HpxNDMap.create(nside=128, axes=[axis])
    m.data += 1

    circle = CircleSkyRegion(center=SkyCoord("0d", "0d"), radius=10 * u.deg)

    spec = m.to_region_nd_map(region=circle)
    assert_allclose(spec.data.sum(), 14660)

    spec_mean = m.to_region_nd_map(region=circle, func=np.mean)
    assert_allclose(spec_mean.data, 1)

    spec_interp = m.to_region_nd_map(region=circle.center, func=np.mean)
    assert_allclose(spec_interp.data, 1)
예제 #8
0
def test_hpx_map_stack():
    axis = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=1)
    m = HpxNDMap.create(nside=32,
                        frame="galactic",
                        axes=[axis],
                        region="DISK(110.,75.,10.)")
    m.data += np.arange(90)

    m_allsky = HpxNDMap.create(nside=32, frame="galactic", axes=[axis])
    m_allsky.stack(m)

    assert_allclose(m_allsky.data.sum(), (90 * 89) / 2)

    value = m_allsky.get_by_coord({
        "skycoord":
        SkyCoord("110d", "75d", frame="galactic"),
        "energy":
        3 * u.TeV
    })
    assert_allclose(value, 69)

    with pytest.raises(ValueError):
        m_allsky = HpxNDMap.create(nside=16, frame="galactic", axes=[axis])
        m_allsky.stack(m)
예제 #9
0
def test_plot_poly():
    m = HpxNDMap.create(binsz=10)
    with mpl_plot_check():
        m.plot(method="poly")
예제 #10
0
def test_plot():
    m = HpxNDMap.create(binsz=10)
    with mpl_plot_check():
        m.plot()
예제 #11
0
def test_plot_grid():
    axis = MapAxis([0, 1, 2], node_type="edges")
    m = HpxNDMap.create(binsz=0.1 * u.deg, width=1, axes=[axis])
    with mpl_plot_check():
        m.plot_grid()