def setup_class(cls): datastore = DataStore.from_dir("$GAMMAPY_DATA/hess-dl3-dr1/") obs_ids = [23523, 23526] on_region = CircleSkyRegion( SkyCoord(83.63 * u.deg, 22.01 * u.deg, frame="icrs"), 0.3 * u.deg) obs_stats_list = [] for obs_id in obs_ids: obs = datastore.obs(obs_id) bkg = ReflectedRegionsBackgroundEstimator(on_region=on_region, observations=[obs]) bkg.run() bg_estimate = bkg.result[0] obs_stats = ObservationStats.from_observation(obs, bg_estimate) obs_stats_list.append(obs_stats) cls.obs_summary = ObservationSummary(obs_stats_list)
plt.figure(figsize=(8, 8)) background_estimator.plot(add_legend=True) # ## Source statistic # # Next we're going to look at the overall source statistics in our signal region. For more info about what debug plots you can create check out the [ObservationSummary](https://docs.gammapy.org/0.10/api/gammapy.data.ObservationSummary.html#gammapy.data.ObservationSummary) class. # In[ ]: stats = [] for obs, bkg in zip(observations, background_estimator.result): stats.append(ObservationStats.from_observation(obs, bkg)) print(stats[1]) obs_summary = ObservationSummary(stats) fig = plt.figure(figsize=(10, 6)) ax1 = fig.add_subplot(121) obs_summary.plot_excess_vs_livetime(ax=ax1) ax2 = fig.add_subplot(122) obs_summary.plot_significance_vs_livetime(ax=ax2) # ## Extract spectrum # # Now, we're going to extract a spectrum using the [SpectrumExtraction](https://docs.gammapy.org/0.10/api/gammapy.spectrum.SpectrumExtraction.html) class. We provide the reconstructed energy binning we want to use. It is expected to be a Quantity with unit energy, i.e. an array with an energy unit. We use a utility function to create it. We also provide the true energy binning to use. # In[ ]: e_reco = EnergyBounds.equal_log_spacing(0.1, 40, 40, unit="TeV") e_true = EnergyBounds.equal_log_spacing(0.05, 100.0, 200, unit="TeV")