{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from gammapy.data import DataStore\n", "from gammapy.spectrum import SpectrumDatasetMaker" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ds = DataStore(...)\n", "obs_list = ds.get_observations(...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1D" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Create datasets\n", "datasets = SpectrumDatasetMaker(obs_list, target, on_radius, ...) # possibly add e.g. time filtering here\n", "\n", "# internally:\n", " datasets = Datasets()\n", " for obs in obs_list:\n", " dataset = SpectrumDatasetMakerObs(obs) # filter ON events and extract IRFs\n", " datasets.append(dataset)\n", " \n", " return datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# could write datasets to disk here and read them again for the next step" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Estimate the background\n", "datasets = ReflectedRegionsBackgroundMaker(datasets, obs_list)\n", "\n", "# internally:\n", " for dataset, obs in zip(datasets, obs_list):\n", " dataset = ReflectedRegionsBackgroundMakerObs(dataset, obs) # create OFF regions, filter OFF events\n", " # dataset is now a SpectrumDatasetOnOff!\n", " \n", " return datasets\n", "\n", "\n", "\n", "\n", "# Alternatively:\n", "datasets = OffBackgroundMaker(datasets, off_obs_list)\n", "\n", "# internally:\n", " for dataset, off_obs in zip(datasets, off_obs_list):\n", " dataset = OffBackgroundMakerObs(dataset, off_obs) # extract OFF counts from off_obs\n", " # dataset is now a SpectrumDatasetOnOff!\n", " \n", " return datasets\n", "\n", "\n", "\n", "# Alternatively:\n", "datasets = TemplateSpectrumBackgroundMaker(datasets)\n", "\n", "# internally:\n", " for dataset in datasets:\n", " dataset = TemplateSpectrumBackgroundMakerObs(dataset) # could e.g. fit norm of IRF background\n", " # dataset still is a SpectrumDataset\n", " \n", " return datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "datasets.stack() # if desired\n", "datasets.write() # if needed" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# modeling/fitting to follow" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3D" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "datasets = MapDatasetMaker(obs_list, geom, geom_true=..., ...)\n", "\n", "# internally:\n", " datasets = Datasets()\n", " for obs in obs_list:\n", " dataset = MapDatasetMakerObs(obs, geom) # creates MapDatasets, extracts IRFs for each obs\n", " datasets.append(dataset)\n", " \n", " return datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# could write datasets to disk here and read them again for the next step" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Estimate the background\n", "datasets = RingBackgroundMaker(datasets)\n", "\n", "# internally:\n", " for dataset in datasets:\n", " dataset = RingBackgroundMaker(dataset) # create OFF map, OFF exposure map\n", " # dataset is now a MapDatasetOnOff!\n", " \n", " return datasets\n", "\n", "\n", "\n", "# Alternatively:\n", "datasets = TemplateMapBackgroundMaker(datasets)\n", "\n", "# internally:\n", " for dataset in datasets:\n", " dataset = TemplateMapBackgroundMakerObs(dataset) # could e.g. fit norm, tilt of IRF background\n", " # dataset still is a MapDataset\n", " \n", " return datasets" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "datasets.stack() # if desired\n", "datasets.write() # if needed" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# modeling/fitting to follow" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }