Observation listsΒΆ

Observation lists specify a list of observations (a.k.a. runs) and are represented in Gammapy as ObservationTable, which is a sub-class of Table.

Because there is no standard defined for observation lists, everyone uses their own format. E.g. one person calls the pointing position columns RA_PNT and DEC_PNT, another calls them RA and DEC.

In Gammapy we only support one format, all Gammapy-internal code assumes the column names and units shown below. Some of these names are cryptically short, to satisfy the use case where people want to store these parameters in FITS headers, which have an 8-character limit on the keys.

For convenience, we provide a few helper functions and arguments to convert other formats into this format on read. If that doesn’t work for your lists, you have to reformat it yourself.

Note that all of these columns are optional, i.e. a table that just contains an OBS_ID column is a valid observation table and is enough to look up data files via the DataStore or DataManager classes. Other observation lists might only contain RA and DEC and some processing might not require the presence of the OBS_ID or any other columns. To accommodate these various use cases for observation lists and to avoid forcing users to add extra columns they don’t really need, we don’t check for the presence of a given list of columns on read, but just access columns in the computations where needed. This implies that Gammapy can fail late in scripts with a KeyError, and you’ll just have to fix the format and re-run.

column name description
OBS_ID Observation ID (int)
RA_PNT Right ascension of pointing position (float, degree)
DEC_PNT Declination of pointing positoin (float, degree)
AZ_PNT Azimuth at observation mid-time (float, degree)
ALT_PNT Altitude at observation mid-time (float, degree)
TSTART Observation start time in MET (float, seconds)
TSTOP Observation end time in MET (float, seconds)
ONTIME Observation duration = TSTOP - TSTART (float, seconds)
LIVETIME Observation live time (duration minus dead time) (float, seconds)
MEANTEMP Temperature at observation mid-time (float, Celsius)
N_TELS Number of telescopes participating in the observation (int)
TELLIST Comma-separated list of telescope IDs participating in the observation (str)
MUONEFF Mean muon efficiency of the telescopes
QUALITY Data quality (int)

Notes:

  • Longitude angles such as right ascension, Galactic longitude, or azimuth should be wrapped at 360 deg, in other words, they should be defined in the [0, 360) deg interval.
  • Data quality: TODO

In order for the extra columns to have full meaning the following is needed:

  • Extra row right after the column name, specifying the unit of the quantity listed on each column.
  • A header with at least the following keywords:
keyword description required?
OBSERVATORY_NAME name of the observatory where the observations were taken; this is important for instance for coordinate transformations between celestial (i.e. RA/dec) and terrestrial (i.e. az/alt) coordinate systems no
MJDREFI reference time: integer value in mean julian days; details in Time handling in Gammapy yes?
MJDREFF reference time: fraction of integer value defined in MJDREFI; details in Time handling in Gammapy yes?
TIME_FORMAT format in which times are stored: absolute (UTC) or relative ([MET]); see details for both formats in Time handling in Gammapy yes?