DataStore¶
-
class
gammapy.data.DataStore(hdu_table=None, obs_table=None)[source]¶ Bases:
objectIACT data store.
The data selection and access happens using an observation and an HDU index file as described at IACT data storage.
For a usage example see cta_1dc_introduction.html
Parameters: - hdu_table :
HDUIndexTable HDU index table
- obs_table :
ObservationTable Observation index table
Examples
Here’s an example how to create a
DataStoreto access H.E.S.S. data:>>> from gammapy.data import DataStore >>> data_store = DataStore.from_dir('$GAMMAPY_DATA/hess-dl3-dr1') >>> data_store.info()
Attributes Summary
DEFAULT_HDU_TABLEDefault HDU table filename. DEFAULT_OBS_TABLEDefault observation table filename. Methods Summary
check(self[, checks])Check index tables and data files. copy_obs(self, obs_id, outdir[, hdu_class, …])Create a new DataStorecontaining a subset of observations.from_config(config)Create from a config dict. from_dir(base_dir[, hdu_table_filename, …])Create from a directory. from_events_files(paths)Create from a list of event filenames. from_file(filename[, hdu_hdu, hdu_obs])Create from a FITS file. get_observations(self[, obs_id, skip_missing])Generate a Observations.info(self[, show])Print some info. obs(self, obs_id)Access a given DataStoreObservation.Attributes Documentation
-
DEFAULT_HDU_TABLE= 'hdu-index.fits.gz'¶ Default HDU table filename.
-
DEFAULT_OBS_TABLE= 'obs-index.fits.gz'¶ Default observation table filename.
Methods Documentation
-
check(self, checks='all')[source]¶ Check index tables and data files.
This is a generator that yields a list of dicts.
-
copy_obs(self, obs_id, outdir, hdu_class=None, verbose=False, overwrite=False)[source]¶ Create a new
DataStorecontaining a subset of observations.Parameters: - obs_id : array-like,
ObservationTable List of observations to copy
- outdir : str, Path
Directory for the new store
- hdu_class : list of str
- verbose : bool
Print copied files
- overwrite : bool
Overwrite
- obs_id : array-like,
-
classmethod
from_dir(base_dir, hdu_table_filename=None, obs_table_filename=None)[source]¶ Create from a directory.
Parameters: - base_dir : str, Path
Base directory of the data files.
- hdu_table_filename : str, Path
Filename of the HDU index file. May be specified either relative to
base_diror as an absolute path. If None, the default filename will be looked for.- obs_table_filename : str, Path
Filename of the observation index file. May be specified either relative to
base_diror as an absolute path. If None, the default filename will be looked for.
-
classmethod
from_events_files(paths)[source]¶ Create from a list of event filenames.
HDU and observation index tables will be created from the EVENTS header.
IRFs are found only if you have a
CALDBenvironment variable set, and if the EVENTS files contain the following keys:TELESCOP(example:TELESCOP = CTA)CALDB(example:CALDB = 1dc)IRF(example:IRF = South_z20_50h)
This method is useful specifically if you want to load data simulated with ctobssim
Examples
This is how you can access a single event list:
from gammapy.data import DataStore path = "$GAMMAPY_DATA/cta-1dc/data/baseline/gps/gps_baseline_110380.fits" data_store = DataStore.from_events_files([path]) observations = data_store.get_observations()
You can now analyse this data as usual (see any Gammapy tutorial).
If you have multiple event files, you have to make the list. Here’s an example using
Path.globto get a list of all events files in a given folder:import os from pathlib import Path path = Path(os.environ["GAMMAPY_DATA"]) / "cta-1dc/data" paths = list(path.rglob("*.fits")) data_store = DataStore.from_events_files(paths) observations = data_store.get_observations()
Note that you have a lot of flexibility to select the observations you want, by having a few lines of custom code to prepare
paths, or to select a subset via a method on thedata_storeor theobservationsobjects.If you want to generate HDU and observation index files, write the tables to disk:
data_store.hdu_table.write("hdu-index.fits.gz") data_store.obs_table.write("obs-index.fits.gz")
-
classmethod
from_file(filename, hdu_hdu='HDU_INDEX', hdu_obs='OBS_INDEX')[source]¶ Create from a FITS file.
The FITS file must contain both index files.
Parameters: - filename : str, Path
FITS filename
- hdu_hdu : str or int
FITS HDU name or number for the HDU index table
- hdu_obs : str or int
FITS HDU name or number for the observation index table
-
get_observations(self, obs_id=None, skip_missing=False)[source]¶ Generate a
Observations.Parameters: - obs_id : list
Observation IDs (default of
Nonemeans “all”)- skip_missing : bool, optional
Skip missing observations, default: False
Returns: - observations :
Observations Container holding a list of
DataStoreObservation
-
obs(self, obs_id)[source]¶ Access a given
DataStoreObservation.Parameters: - obs_id : int
Observation ID.
Returns: - observation :
DataStoreObservation Observation container
- hdu_table :