test_xml_only_source_models()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 33
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 25
nop 1
dl 0
loc 33
rs 9.28
c 0
b 0
f 0
1
from pathlib import Path
2
3
from gammapy.modeling.models import Models
4
5
from asgardpy.gammapy.read_models import read_fermi_xml_models_list
6
7
8
def test_xml_only_source_models(gammapy_data_path):
9
    """Test reading various different Fermi-XML source models."""
10
    from asgardpy.config import AsgardpyConfig
11
12
    config = AsgardpyConfig()
13
    list_source_models = []
14
15
    dl3_aux_path = Path(f"{gammapy_data_path}fermipy-crab/")
16
17
    diffuse_models = {}
18
19
    xml_file = dl3_aux_path / "test_fermi_xml_models.xml"
20
    config.target.source_name = "4FGL J0534.5+2201i"
21
    config.target.from_3d = True
22
23
    list_source_models, _ = read_fermi_xml_models_list(
24
        list_source_models, dl3_aux_path, xml_file, diffuse_models, config.target
25
    )
26
    list_source_models = Models(list_source_models)
27
28
    assert list_source_models[0].spatial_model.tag[0] == "GaussianSpatialModel"
29
    assert list_source_models[0].spectral_model.tag[1] == "lp"
30
    assert list_source_models[1].spatial_model.tag[0] == "TemplateSpatialModel"
31
    assert list_source_models[2].spatial_model.tag[0] == "PointSpatialModel"
32
    assert list_source_models[2].spectral_model.tag[1] == "ecpl"
33
    assert list_source_models[3].spectral_model.tag[1] == "pl"
34
    assert list_source_models[4].spectral_model.tag[1] == "ecpl"
35
    assert list_source_models[5].spectral_model.tag[1] == "secpl-4fgl-dr3"
36
    assert list_source_models[6].spectral_model.tag[1] == "bpl"
37
    assert list_source_models[7].spectral_model.tag[1] == "sbpl"
38
    assert list_source_models[8].spectral_model.tag[1] == "pl"
39
    assert list_source_models[8].spatial_model.tag[0] == "GaussianSpatialModel"
40
    assert list_source_models[-1].spectral_model.tag[1] == "pl-2"
41
42
43
def test_xml_with_diffuse_models(gammapy_data_path):
44
    """Test reading Fermi-XML models with diffuse models included."""
45
46
    list_source_models = []
47
    diffuse_models = {}
48
49
    dl3_aux_path = Path(f"{gammapy_data_path}fermipy-crab/")
50
51
    xml_file = dl3_aux_path / "srcmdl_00.xml"
52
    diffuse_models["gal_diffuse"] = dl3_aux_path / "gll_iem_v07_cutout.fits"
53
    diffuse_models["iso_diffuse"] = dl3_aux_path / "iso_P8R3_SOURCE_V3_FRONT_v1.txt"
54
    diffuse_models["key_name"] = None
55
56
    list_source_models, diffuse_models = read_fermi_xml_models_list(
57
        list_source_models, dl3_aux_path, xml_file, diffuse_models
58
    )
59
    list_source_models = Models(list_source_models)
60
61
    assert list_source_models[1].name == "4FGL J0534.5+2201s"
62
    assert list_source_models[-1].name == "diffuse-iem"
63
    assert list_source_models[-2].name == "fermi-diffuse-iso"
64