Mercurial > repos > astroteam > hess_astro_tool
annotate Spectrum_gammapy.py @ 0:02e4bb4fa10c draft
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
author | astroteam |
---|---|
date | Mon, 19 Feb 2024 10:56:44 +0000 |
parents | |
children |
rev | line source |
---|---|
0
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
1 #!/usr/bin/env python |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
2 # coding: utf-8 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
3 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
4 # flake8: noqa |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
5 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
6 import json |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
7 import os |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
8 import shutil |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
9 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
10 import astropy.units as u |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
11 import matplotlib.pyplot as plt |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
12 import numpy as np |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
13 from astropy.coordinates import Angle, SkyCoord |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
14 from astropy.time import Time |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
15 from gammapy.data import DataStore |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
16 from gammapy.datasets import ( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
17 Datasets, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
18 FluxPointsDataset, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
19 SpectrumDataset, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
20 SpectrumDatasetOnOff, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
21 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
22 from gammapy.makers import ( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
23 ReflectedRegionsBackgroundMaker, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
24 SafeMaskMaker, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
25 SpectrumDatasetMaker, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
26 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
27 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
28 # from gammapy.makers.utils import make_theta_squared_table |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
29 from gammapy.maps import MapAxis, RegionGeom, WcsGeom |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
30 from oda_api.data_products import ODAAstropyTable, PictureProduct |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
31 from oda_api.json import CustomJSONEncoder |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
32 from regions import CircleSkyRegion |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
33 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
34 hess_data = "gammapy-datasets/1.1/hess-dl3-dr1/" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
35 if not (os.path.exists(hess_data)): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
36 get_ipython().system("gammapy download datasets") # noqa: F821 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
37 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
38 data_store = DataStore.from_dir(hess_data) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
39 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
40 # src_name='Crab' #http://odahub.io/ontology#AstrophysicalObject |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
41 # RA = 83.628700 # http://odahub.io/ontology#PointOfInterestRA |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
42 # DEC = 22.014700 # http://odahub.io/ontology#PointOfInterestDEC |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
43 src_name = "PKS 2155-304" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
44 RA = 329.716938 # http://odahub.io/ontology#PointOfInterestRA |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
45 DEC = -30.225588 # http://odahub.io/ontology#PointOfInterestDEC |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
46 T1 = "2000-10-09T13:16:00.0" # http://odahub.io/ontology#StartTime |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
47 T2 = "2022-10-10T13:16:00.0" # http://odahub.io/ontology#EndTime |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
48 Radius = 2.5 # http://odahub.io/ontology#AngleDegrees |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
49 R_s = 0.5 # http://odahub.io/ontology#AngleDegrees |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
50 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
51 Emin = 100.0 # http://odahub.io/ontology#Energy_GeV |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
52 Emax = 10000.0 # http://odahub.io/ontology#Energy_GeV |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
53 NEbins = 20 # http://odahub.io/ontology#Integer |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
54 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
55 _galaxy_wd = os.getcwd() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
56 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
57 with open("inputs.json", "r") as fd: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
58 inp_dic = json.load(fd) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
59 if "_data_product" in inp_dic.keys(): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
60 inp_pdic = inp_dic["_data_product"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
61 else: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
62 inp_pdic = inp_dic |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
63 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
64 for vn, vv in inp_pdic.items(): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
65 if vn != "_selector": |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
66 globals()[vn] = type(globals()[vn])(vv) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
67 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
68 T1 = Time(T1, format="isot", scale="utc").mjd |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
69 T2 = Time(T2, format="isot", scale="utc").mjd |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
70 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
71 dates1 = data_store.obs_table["DATE-OBS"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
72 dates2 = data_store.obs_table["DATE-END"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
73 times1 = data_store.obs_table["TIME-OBS"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
74 times2 = data_store.obs_table["TIME-END"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
75 OBSIDs = data_store.obs_table["OBS_ID"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
76 Tstart = [] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
77 Tstop = [] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
78 for i in range(len(dates1)): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
79 Tstart.append( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
80 Time(dates1[i] + "T" + times1[i], format="isot", scale="utc").mjd |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
81 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
82 Tstop.append( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
83 Time(dates2[i] + "T" + times2[i], format="isot", scale="utc").mjd |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
84 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
85 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
86 RA_pnts = np.array(data_store.obs_table["RA_PNT"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
87 DEC_pnts = np.array(data_store.obs_table["DEC_PNT"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
88 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
89 Coords_s = SkyCoord(RA, DEC, unit="degree") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
90 COORDS_pnts = SkyCoord(RA_pnts, DEC_pnts, unit="degree") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
91 seps = COORDS_pnts.separation(Coords_s).deg |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
92 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
93 mask = np.where((seps < Radius) & (Tstart > T1) & (Tstop < T2))[0] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
94 OBSlist = [] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
95 obs_ids = OBSIDs[mask] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
96 if len(obs_ids) == 0: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
97 message = "No data found" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
98 raise RuntimeError("No data found") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
99 obs_ids |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
100 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
101 observations = data_store.get_observations(obs_ids) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
102 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
103 target_position = Coords_s |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
104 on_region_radius = Angle(str(R_s) + " deg") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
105 on_region = CircleSkyRegion(center=target_position, radius=on_region_radius) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
106 skydir = target_position.galactic |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
107 geom = WcsGeom.create( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
108 npix=(150, 150), binsz=0.05, skydir=skydir, proj="TAN", frame="icrs" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
109 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
110 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
111 Emin = 100.0 # http://odahub.io/ontology#Energy_GeV |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
112 Emax = 10000.0 # http://odahub.io/ontology#Energy_GeV |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
113 NEbins = 20 # http://odahub.io/ontology#Integer |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
114 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
115 energy_axis = MapAxis.from_energy_bounds( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
116 Emin * 1e-3, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
117 Emax * 1e-3, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
118 nbin=NEbins, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
119 per_decade=True, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
120 unit="TeV", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
121 name="energy", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
122 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
123 energy_axis_true = MapAxis.from_energy_bounds( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
124 0.05, 100, nbin=20, per_decade=True, unit="TeV", name="energy_true" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
125 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
126 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
127 geom = RegionGeom.create(region=on_region, axes=[energy_axis]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
128 dataset_empty = SpectrumDataset.create( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
129 geom=geom, energy_axis_true=energy_axis_true |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
130 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
131 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
132 dataset_maker = SpectrumDatasetMaker( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
133 containment_correction=True, selection=["counts", "exposure", "edisp"] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
134 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
135 bkg_maker = ReflectedRegionsBackgroundMaker() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
136 safe_mask_masker = SafeMaskMaker(methods=["aeff-max"], aeff_percent=10) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
137 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
138 datasets = Datasets() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
139 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
140 for obs_id, observation in zip(obs_ids, observations): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
141 dataset = dataset_maker.run( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
142 dataset_empty.copy(name=str(obs_id)), observation |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
143 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
144 dataset_on_off = bkg_maker.run(dataset, observation) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
145 # dataset_on_off = safe_mask_masker.run(dataset_on_off, observation) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
146 datasets.append(dataset_on_off) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
147 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
148 print(datasets) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
149 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
150 from pathlib import Path |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
151 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
152 path = Path("spectrum_analysis") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
153 path.mkdir(exist_ok=True) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
154 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
155 for dataset in datasets: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
156 dataset.write( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
157 filename=path / f"obs_{dataset.name}.fits.gz", overwrite=True |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
158 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
159 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
160 datasets = Datasets() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
161 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
162 for obs_id in obs_ids: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
163 filename = path / f"obs_{obs_id}.fits.gz" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
164 datasets.append(SpectrumDatasetOnOff.read(filename)) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
165 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
166 from gammapy.modeling import Fit |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
167 from gammapy.modeling.models import ExpCutoffPowerLawSpectralModel, SkyModel |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
168 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
169 spectral_model = ExpCutoffPowerLawSpectralModel( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
170 amplitude=1e-12 * u.Unit("cm-2 s-1 TeV-1"), |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
171 index=2, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
172 lambda_=0.1 * u.Unit("TeV-1"), |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
173 reference=1 * u.TeV, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
174 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
175 model = SkyModel(spectral_model=spectral_model, name="crab") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
176 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
177 datasets.models = [model] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
178 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
179 fit_joint = Fit() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
180 result_joint = fit_joint.run(datasets=datasets) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
181 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
182 # we make a copy here to compare it later |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
183 model_best_joint = model.copy() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
184 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
185 print(result_joint) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
186 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
187 display(result_joint.models.to_parameters_table()) # noqa: F821 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
188 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
189 e_min, e_max = Emin * 1e-3, Emax * 1e-3 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
190 energy_edges = np.geomspace(e_min, e_max, NEbins) * u.TeV |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
191 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
192 from gammapy.estimators import FluxPointsEstimator |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
193 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
194 fpe = FluxPointsEstimator( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
195 energy_edges=energy_edges, source="crab", selection_optional="all" |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
196 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
197 flux_points = fpe.run(datasets=datasets) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
198 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
199 flux_points_dataset = FluxPointsDataset( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
200 data=flux_points, models=model_best_joint |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
201 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
202 flux_points_dataset.plot_fit() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
203 # plt.show() |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
204 plt.savefig("Spectrum.png", format="png", bbox_inches="tight") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
205 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
206 res = flux_points.to_table(sed_type="dnde", formatted=True) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
207 np.array(res["dnde"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
208 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
209 bin_image = PictureProduct.from_file("Spectrum.png") |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
210 from astropy.table import Table |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
211 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
212 Emean = np.array(res["e_ref"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
213 Emin = np.array(res["e_min"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
214 Emax = np.array(res["e_max"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
215 flux = Emean**2 * np.array(res["dnde"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
216 flux_err = Emean**2 * np.array(res["dnde_err"]) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
217 data = [Emean, Emin, Emax, flux, flux_err] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
218 names = ( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
219 "Emean[TeV]", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
220 "Emin[TeV]", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
221 "Emax[TeV]", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
222 "Flux[TeV/cm2s]", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
223 "Flux_error[TeV/cm2s]", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
224 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
225 spec = ODAAstropyTable(Table(data, names=names)) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
226 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
227 picture_png = bin_image # http://odahub.io/ontology#ODAPictureProduct |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
228 spectrum_astropy_table = spec # http://odahub.io/ontology#ODAAstropyTable |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
229 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
230 # output gathering |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
231 _galaxy_meta_data = {} |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
232 _oda_outs = [] |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
233 _oda_outs.append( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
234 ( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
235 "out_Spectrum_gammapy_picture_png", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
236 "picture_png_galaxy.output", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
237 picture_png, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
238 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
239 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
240 _oda_outs.append( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
241 ( |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
242 "out_Spectrum_gammapy_spectrum_astropy_table", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
243 "spectrum_astropy_table_galaxy.output", |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
244 spectrum_astropy_table, |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
245 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
246 ) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
247 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
248 for _outn, _outfn, _outv in _oda_outs: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
249 _galaxy_outfile_name = os.path.join(_galaxy_wd, _outfn) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
250 if isinstance(_outv, str) and os.path.isfile(_outv): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
251 shutil.move(_outv, _galaxy_outfile_name) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
252 _galaxy_meta_data[_outn] = {"ext": "_sniff_"} |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
253 elif getattr(_outv, "write_fits_file", None): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
254 _outv.write_fits_file(_galaxy_outfile_name) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
255 _galaxy_meta_data[_outn] = {"ext": "fits"} |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
256 elif getattr(_outv, "write_file", None): |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
257 _outv.write_file(_galaxy_outfile_name) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
258 _galaxy_meta_data[_outn] = {"ext": "_sniff_"} |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
259 else: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
260 with open(_galaxy_outfile_name, "w") as fd: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
261 json.dump(_outv, fd, cls=CustomJSONEncoder) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
262 _galaxy_meta_data[_outn] = {"ext": "json"} |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
263 |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
264 with open(os.path.join(_galaxy_wd, "galaxy.json"), "w") as fd: |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
265 json.dump(_galaxy_meta_data, fd) |
02e4bb4fa10c
planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit 2991f65b25d4e6d1b69458603fce917adff40f94
astroteam
parents:
diff
changeset
|
266 print("*** Job finished successfully ***") |