The quick answer is that is it a set of observational parameters
that have been rebinned to a common time line. So aspect data
(at 32 second intervals) and ephemeris data (at 300 second intervals)
and other engineering (HRMA temps), etc. Telescope pointing, as
well as Solar Particle count rates and detector voltages, are all
examples of "observational parameters". All these values are
rebinned and are available as the *_mtl1.fits file.
There are actually two sets of limits that get applied to
data. One is a static set of rules, the second is derived for each
observation. The static data lives in the calibration data base
($ASCDS_INSTALL/CALDB/data/chandra/[ah]*/bcf/gtilim/*)
and there are different ones for HRC-I, HRC-S and for ACIS. HRC-I
also has a time variability factor.
The second set of limits applied to the data is derived
by the Observation Determination pipelines (obidet). An observation
can have multiple Observation Intervals (obis) if, for example, the
telescope shuts down due to dangerous solar particle counts.
The obidet limits are stored in the *_olims0a.fits files. Since they are
pipeline products, they are not part of the standard data distribution,
but are available using ChaSeR, which is available from the
Chandra Data Archive
pages.
The *_mtl1.fits file, for pipeline processing from DS6.1.0, has a
third extension (visible via "dmlist infile=*_mtl1.fits opt=blocks")
which contains a "smoothed" (historical name) MTL and the
"limit_status" column.
The smoothed MTL extension will contain the data used
to determine the GTI limits in your GTI, with two additional
pieces of information. First, there will be a "limit_status" column.
This is a bit column where each bit represents each limit. So, if
you dmlist
the file and look at the limit_status column you can tell by
counting bits (from left to right) which limit was violated.
For example, a value of 00000000000000000000000100000 would indicate
that the 24th limit was violated. To find out what this limit actually
means, we look at the "limits" extension of the file.
For this example (an HRC data set), we find that the violation
occurred because:
dmlist "*_mtl1.fits[limits]" data
...
24 ((fabs(IMHVLV-79)<=1)&&(fabs(IMHBLV-86)<=1))
One way to see when any limit was violated is to create a new column
which is 1 for all times that "good", 0 when a limit is
violated, and then plot this column against time to see when the
violations occur. The tool dmtcalc can be used to create the new
column, as shown below:
dmtcalc smoothed_mtl.fits flagged_mtl.fits \
exp="flag=(int)(limit_status==0)"