Last modified: 12 December 2023

What happened to my FITS structural keywords?

The CXC Datamodel supports multiple data formats including FITS and various ASCII formats. It provides a view of the file to the user and to the applications in a file-neutral format. This means that many of the format specific, structural keywords that describe the columns, units, descriptions, WCS, etc, are all normally hidden from the user. For example if we look for the TTYPE keywords that describe the FITS columns they are not shown with a normal dmlist command.

unix% dmlist evt.fits header | grep TTYPE
(nothing returned)    

Adding the raw option will display all the structural keywords.

unix% dmlist evt.fits header,raw | grep TTYPE
Key   11: C             *TTYPE1       = time                 / S/C TT corresponding to mid-exposure
Key   14: C             *TTYPE2       = ccd_id               / CCD reporting event 
Key   18: C             *TTYPE3       = node_id              / CCD serial readout amplifier node
Key   22: C             *TTYPE4       = expno                / Exposure number of CCD frame containing event
Key   25: C             *TTYPE5       = chipx                / Chip coords         
Key   28: C             *TTYPE6       = chipy                / Chip coords         
Key   35: C             *TTYPE7       = tdetx                / ACIS tiled detector coordinates
Key   38: C             *TTYPE8       = tdety                / ACIS tiled detector coordinates
Key   45: C             *TTYPE9       = detx                 / ACIS detector coordinates
Key   48: C             *TTYPE10      = dety                 / ACIS detector coordinates
Key   55: C             *TTYPE11      = x                    / sky coordinates     
Key   58: C             *TTYPE12      = y                    / sky coordinates     
Key   65: C             *TTYPE13      = pha                  / total pulse height of event
Key   71: C             *TTYPE14      = pha_ro               / total read-out pulse height of event
Key   77: C             *TTYPE15      = energy               / nominal energy of event (eV)
Key   82: C             *TTYPE16      = pi                   / pulse invariant energy of event
Key   88: C             *TTYPE17      = fltgrade             / event grade, flight system
Key   92: C             *TTYPE18      = grade                / binned event grade  
Key   96: C             *TTYPE19      = status               / event status bits   

The values displayed are processed through the same rendering mechanism as all other keywords so the raw values may have different format and/or precision then compared to what is in the physical file.

dmkeypar and dmmakepar do not have a raw option and thus are unable to access these reserved keywords.

dmhedit may be able modify some of the reserved keywords, however, users are strongly discouraged from using it in this way. There are usually better ways in CIAO to modify such information without directly editing any reserved keywords.