HDU index table¶
The HDU index table is stored in a FITS file as a BINTABLE HDU:
- Suggested filename:
- Suggested HDU name:
The HDU index table can be used to locate HDUs. E.g. for a given
HDU_TYPE and / or
HDU_CLASS), the HDU can be located via the
information in the
HDU_NAME columns. The
path listed in
FILE_DIR has to be relative to the location of the index
By default, file locations should be relative to the location of this HDU index
file, i.e. the total file path is
PATH_INDEX_TABLE / FILE_DIR / FILE_NAME.
Tools are expected to support relative file paths in POSIX notation like
FILE_DIR = "../../data/" as well as absolute file path like
To allow for some additional flexibility, an optional header keyword
BASE_DIR can be used. If it is given, the file path is
BASE_DIR / FILE_DIR
/ FILE_NAME, i.e. the location of the HDU index table becomes irrelevant.
|Column Name||Description||Data type||Required?|
||Observation ID (a.k.a. run number)||int||yes|
||HDU type (see below)||string||yes|
||HDU class (see below)||string||yes|
||Directory of file (rel. to this file)||string||yes|
||Name of file||string||yes|
||Name of HDU in file||string||yes|
||File size (bytes)||int||no|
Mandatory Header keywords¶
As explained in HDU classes, the following header keyword should be used to declare the type of HDU (this HDU itself, the HDU index table):
HDU_TYPE and HDU_CLASS¶
HDU_CLASS can be used to select the HDU of interest.
The difference is that
HDU_TYPE corresponds generally to e.g. PSF, whereas
HDU_CLASS corresponds to a specific PSF format. Declaring
means that tools loading these files don’t have to do guesswork to infer the
format on load.
events- Event list
gti- Good time interval
aeff- Effective area
psf- Point spread function
edisp- Energy dispersion
events- see format spec: EVENTS
gti- see format spec: GTI
aeff_2d- see format spec: AEFF_2D
edisp_2d- see format spec: EDISP_2D
psf_table- see format spec: PSF_TABLE
psf_3gauss- see format spec: PSF_3GAUSS
psf_king- see format spec: PSF_KING
bkg_2d- see format spec: BKG_2D
bkg_3d- see format spec: BKG_3D
Relation to HDUCLAS¶
At HDU classes and throughout this spec,
HDUCLAS header keys are defined
as a declarative HDU classification scheme. This appears similar to this HDU
index table, but in reality is different and incompatible!
Here in the index table, we have
HDU classes, there is
HDUCLASS which is always “GADF” and then there is
corresponds to the information in
HDU_TYPE here. Also the
values are different: here we have lower-case and use e.g.
in HDU classes we use upper-case and e.g.
One reason for these inconsistencies is that the spec for this HDU index table was written first (in 2015), and then HDU classes was introduced later (in 2017). Another reason is that here, we tried to be simple (flat, not hierarchical classification), and for HDU classes we tried to follow an existing standard.
Given that these index tables have been in use in the past years, and that we expect them to be replaced soon by a completely different way to locate and link IACT data HDUs, we decided to keep this format as-is, instead of trying to align it with HDU classes and create some form of hierarchical index table.