def test_datasets_stack_reduce(): obs_ids = [23523, 23526, 23559, 23592] dataset_list = [] for obs in obs_ids: filename = "$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs{}.fits" ds = SpectrumDatasetOnOff.from_ogip_files(filename.format(obs)) dataset_list.append(ds) datasets = Datasets(dataset_list) stacked = datasets.stack_reduce(name="stacked") assert_allclose(stacked.livetime.to_value("s"), 6313.8116406202325) info_table = datasets.info_table() assert_allclose(info_table["n_on"], [124, 126, 119, 90]) info_table_cum = datasets.info_table(cumulative=True) assert_allclose(info_table_cum["n_on"], [124, 250, 369, 459]) assert stacked.name == "stacked"
def test_datasets_stack_reduce(): datasets = Datasets() obs_ids = [23523, 23526, 23559, 23592] for obs_id in obs_ids: filename = f"$GAMMAPY_DATA/joint-crab/spectra/hess/pha_obs{obs_id}.fits" ds = SpectrumDatasetOnOff.from_ogip_files(filename) datasets.append(ds) stacked = datasets.stack_reduce(name="stacked") assert_allclose(stacked.exposure.meta["livetime"].to_value("s"), 6313.8116406202325) info_table = datasets.info_table() assert_allclose(info_table["counts"], [124, 126, 119, 90]) info_table_cum = datasets.info_table(cumulative=True) assert_allclose(info_table_cum["counts"], [124, 250, 369, 459]) assert stacked.name == "stacked"
for idx in range(n_obs): dataset = maker.run(dataset_empty, obs) # Set the model on the dataset, and fake the counts dataset.models = model dataset.fake(random_state=idx) # Set off regions dataset_on_off = SpectrumDatasetOnOff.from_spectrum_dataset( dataset=dataset, acceptance=1, acceptance_off=3) dataset_on_off.fake(random_state=idx, npred_background=dataset.npred_background()) dataset_fake = dataset_on_off.copy(name=f"obs-{idx}") dataset_fake.meta_table["OBS_ID"] = [idx] datasets.append(dataset_fake) # Save the data from the simulations table = datasets.info_table() table.write('observations.txt', format='ascii') # Check counts in one selected realization fig_2 = plt.figure(1) datasets[0].npred().plot_hist(label='Predicted S+B') datasets[0].npred_signal().plot_hist(label='Predicted S') datasets[0].npred_background().plot_hist(label='Predicted B') plt.legend() form = plt.FormatStrFormatter('$%g$') gca().xaxis.set_major_formatter(form) plt.close(fig_2) fig_2.savefig('obs_counts_one_simu.png', quality=95, dpi=1000) # # Check consistency in the sample of observations