HiPERCAM’s hcm file format¶
The HiPERCAM pipeline stores individual multi-CCD exposures in files with extension ‘.hcm’. These are in fact FITS files that can be examined with e.g. ‘fv’ or listed with ‘fitshead’, but the extension ‘.hcm’ is used to distinguish them clearly from the raw ‘.fits’ files and to reduce the chances of overwriting the latter. In order for these to be useful through the rest of the software, some assumptions about their internal structure are necessary, and they need to contain location information to show where sub-windows are placed within the CCDs. The purpose of this document is to specify this in as much detail as possible.
The basic structure of an ‘.hcm’ file is as follows:
[General Header] [CCD 1] [CCD 2] [CCD 3] [CCD 4] [CCD 5]
‘General Header’ here is the first HDU [HDU0] which contains no data but has general header information pertaining to the entire multi-CCD frame. Each CCD in turn has the structure:
Window 1, Window 2, Window 3, Window 4, ...
Each window has some header and data. The first has some extra headers general to the CCD as a whole. Each window comes with a label (header item ‘WINDOW’). For HiPERCAM data, these have values like ‘E1’, ‘G2’, ‘E’, ‘F’, ‘G’ and ‘H’ denoting the quadrant of the CCD that the Window comes from. For a standard windowed mode, with 1 window per quadrant, there will be 4 HDUs per CCD, so a total of 5x4+1 = 25 HDUs. The Windows for a given CCD may come in any order, but they should come as a contiguous block.
HDU structure and keywords¶
I now expand on this, detailing the header keywords expected. I concentrate on
those essential for the operation of pipeline commands, reduce
above all.
HDU0. An hcm file starts with an HDU with no data but some header.
Header items generated from HiPERACAM raw files:
- NUMCCDint
specifies the number of CCDs.
- DATEstring
date the run file was written if from HiPERCAM
- GPSbool
GPS status
- TIMSTAMPstring
time stamp associated with the individual frame
- NFRAMEint
frame number
Of these, ‘TIMSTAMP’ is essential.
Then each CCD comes as a block of HDUs, one per Window. The header in the first HDU must contain:
NXTOT : int maximum X-dimension, unbinned pixels to give a reference size for plots of this CCD. NYTOT : int maximum Y-dimension, unbinned pixels. CCD : string the label of the CCD MJDUTC : float the MJD at mid-exposure of the CCD. This might be the same as TIMSTAMP of the general header, but it might not. GOODTIME : bool flag to indicate whether the time is thought to be reliable. Defaults to True if not present.
It can also contain a keyword ‘DSTATUS’ giving a boolean that indicates whether the frame contains data or not (True means yes). This is needed because ULTRACAM and HiPERCAM have options to suspend readout (‘NBLUE’ and ‘NSKIP’) which lead to blank dummy frames in between the real data frames. If ‘DSTATUS’ is not found, the CCD will be assumed to be OK.
All the HDUs in a CCD must contain:
CCD : string string label matching the label of the first HDU of the CCD. This is used to identify which HDUs belong to a given CCD. LLX : int X-coordinate of lower-left-most unbinned pixel that contributes to the window, starting with 1 on the far left. LLY : int Y-coordinate of lower-left-most unbinned pixel that contributes to the window, starting with 1 on the bottom XBIN : int binning factor in X YBIN : int binning factor in Y Finally they *should* also contain:: WINDOW : string a string label for the window. If it doesn't exist an attempt will be made to generate labels by counting.
Foreign data¶
The format of ‘.hcm’ files needs to be created if you want to apply the
pipeline to data from other instruments. Since such data is typically
FITS-format as are ‘.hcm’ files, this might simply be a matter of adding new
keywords and re-arranging HDUs. The script for carrying this out is
fits2hcm
. If you have some data, look at that script and submit new code
through github.
Example headers¶
Here is the result of running ‘fitsheader’ on a ‘.hcm’ file which may make the above easier to understand. Bear in mind there are many extras associated with making it easier to display hcm files with ‘ds9’.
# HDU 0 in flat.hcm:
SIMPLE = T / conforms to FITS standard
BITPIX = 8 / array data type
NAXIS = 0 / number of array dimensions
EXTEND = T
MODE = 'FullFrame' / HiPERCAM readout mode
DATE = '2018-05-18T20:38:12.8127' / Date the file was written
OBJECT = 'Skyflat ' / Object Name
FILTERS = 'us,gs,rs,is,zs' / Filters used
PI = 'CALIB ' / Principal Investigator
OBSERVER= 'vsd,trm ' / Observer Name (SA = support astronomer)
RA = '12:35:37' / Telescope Right Ascension (HH:MM:SS.SSS)
DEC = '+30:15:50' / Telescope Declination (DD:MM:SS.SS)
INSTRPA = 150.5 / Position angle (E of N, degrees)
IMAGETYP= 'flat ' / Type of data
GPS = T / GPS flag status
EXPTIME = 4.0 / Integration time
XBIN = 1 / Bin factor in serial direction
YBIN = 1 / Bin factor in parallel direction
SPEED = 0 / CCD Clock speed
TIMSTAMP= '2018-05-18T20:16:35.9330269' / Raw frame timestamp, UTC
MJDUTC = 58256.84486033596 / MJD(UTC) equivalent
GOODTIME= T / Is TIMSTAMP thought to be OK?
NFRAME = 1 / Frame number
FILENAME= '/tmp/hipercam-phsaap/tmp14xr31we.hcm'
NUMCCD = 5 / Number of CCDs
HIPERCAM= 'MCCD ' / Type of HiPERCAM data (CCD | MCCD)
COMMENT Data representing multiple CCDs written by hipercam.MCCD.write.
COMMENT Each window of each CCD is written in a series of HDUs following an
COMMENT HDU containing only the header. These follow an overall header for the
COMMENT MCCD containing top-level information. The headers of the data window
COMMENT HDUs have keywords LLX, LLY giving the pixel location in unbinned
COMMENT pixels and XBIN and YBIN for their binning factors. The total unbinned
COMMENT dimensions of each CCD are stored under keywords NXTOT and NYTOT for
COMMENT each CCD. Each HDU associated with a given CCD is labelled with a
COMMENT header keyword CCD.
# HDU 1 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '1 ' / CCD label
NXTOT = 2048 / Total unbinned X dimension
NYTOT = 1024 / Total unbinned Y dimension
NXPAD = 0
NYPAD = 0
NUMWIN = 4 / Total number of windows
WINDOW = 'E1 ' / Window label
NCYCLE = 1
REFLECT = F
RONOISE = 0.0
GAIN = 1.0
DSTATUS = T
MJDUTC = 58256.8448834841
GOODTIME= T
EXPTIME = 4.0
LLX = 1 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,1:512]'
DETSEC = '[1:1024,1:512]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1.0
CRVAL2 = 1.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:1, W:E1' / name of this image extension
HISTORY result of makeflat on 59 frames, ngroup = 5
# HDU 2 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '1 ' / CCD label
WINDOW = 'F1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,1:512]'
DETSEC = '[1025:2048,1:512]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1025.0
CRVAL2 = 1.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:1, W:F1' / name of this image extension
# HDU 3 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '1 ' / CCD label
WINDOW = 'G1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,513:1024]'
DETSEC = '[1025:2048,513:1024]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1025.0
CRVAL2 = 513.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:1, W:G1' / name of this image extension
# HDU 4 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '1 ' / CCD label
WINDOW = 'H1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,513:1024]'
DETSEC = '[1:1024,513:1024]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1.0
CRVAL2 = 513.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:1, W:H1' / name of this image extension
# HDU 5 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '2 ' / CCD label
NXTOT = 2048 / Total unbinned X dimension
NYTOT = 1024 / Total unbinned Y dimension
NXPAD = 0
NYPAD = 0
NUMWIN = 4 / Total number of windows
WINDOW = 'E1 ' / Window label
NCYCLE = 1
REFLECT = T
DSTATUS = T
MJDUTC = 58256.8448834841
GOODTIME= T
EXPTIME = 4.0
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,1:512]'
DETSEC = '[3273:4296,1:512]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 3273.0
CRVAL2 = 1.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:2, W:E1' / name of this image extension
HISTORY result of makeflat on 56 frames, ngroup = 5
# HDU 6 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '2 ' / CCD label
WINDOW = 'F1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,1:512]'
DETSEC = '[2249:3272,1:512]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 2249.0
CRVAL2 = 1.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:2, W:F1' / name of this image extension
# HDU 7 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '2 ' / CCD label
WINDOW = 'G1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,513:1024]'
DETSEC = '[2249:3272,513:1024]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 2249.0
CRVAL2 = 513.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:2, W:G1' / name of this image extension
# HDU 8 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '2 ' / CCD label
WINDOW = 'H1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,513:1024]'
DETSEC = '[3273:4296,513:1024]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 3273.0
CRVAL2 = 513.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:2, W:H1' / name of this image extension
# HDU 9 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '3 ' / CCD label
NXTOT = 2048 / Total unbinned X dimension
NYTOT = 1024 / Total unbinned Y dimension
NXPAD = 0
NYPAD = 0
NUMWIN = 4 / Total number of windows
WINDOW = 'E1 ' / Window label
NCYCLE = 1
REFLECT = F
DSTATUS = T
MJDUTC = 58256.8448834841
GOODTIME= T
EXPTIME = 4.0
LLX = 1 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,1:512]'
DETSEC = '[4497:5520,1:512]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 4496.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 4497.0
CRVAL2 = 1.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:3, W:E1' / name of this image extension
HISTORY result of makeflat on 60 frames, ngroup = 5
# HDU 10 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '3 ' / CCD label
WINDOW = 'F1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,1:512]'
DETSEC = '[5521:6544,1:512]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 4496.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 5521.0
CRVAL2 = 1.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:3, W:F1' / name of this image extension
# HDU 11 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '3 ' / CCD label
WINDOW = 'G1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,513:1024]'
DETSEC = '[5521:6544,513:1024]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 4496.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 5521.0
CRVAL2 = 513.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:3, W:G1' / name of this image extension
# HDU 12 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '3 ' / CCD label
WINDOW = 'H1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,513:1024]'
DETSEC = '[4497:5520,513:1024]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 4496.0
DTV2 = 0.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 4497.0
CRVAL2 = 513.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:3, W:H1' / name of this image extension
# HDU 13 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '4 ' / CCD label
NXTOT = 2048 / Total unbinned X dimension
NYTOT = 1024 / Total unbinned Y dimension
NXPAD = 0
NYPAD = 0
NUMWIN = 4 / Total number of windows
WINDOW = 'E1 ' / Window label
NCYCLE = 1
REFLECT = F
DSTATUS = T
MJDUTC = 58256.8448834841
GOODTIME= T
EXPTIME = 4.0
LLX = 1 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,1:512]'
DETSEC = '[1:1024,-1223:-712]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1.0
CRVAL2 = -1223.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:4, W:E1' / name of this image extension
HISTORY result of makeflat on 58 frames, ngroup = 5
# HDU 14 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '4 ' / CCD label
WINDOW = 'F1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,1:512]'
DETSEC = '[1025:2048,-1223:-712]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1025.0
CRVAL2 = -1223.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:4, W:F1' / name of this image extension
# HDU 15 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '4 ' / CCD label
WINDOW = 'G1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,513:1024]'
DETSEC = '[1025:2048,-711:-200]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1025.0
CRVAL2 = -711.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:4, W:G1' / name of this image extension
# HDU 16 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '4 ' / CCD label
WINDOW = 'H1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,513:1024]'
DETSEC = '[1:1024,-711:-200]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 0.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 1.0
CRVAL2 = -711.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:4, W:H1' / name of this image extension
# HDU 17 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '5 ' / CCD label
NXTOT = 2048 / Total unbinned X dimension
NYTOT = 1024 / Total unbinned Y dimension
NXPAD = 0
NYPAD = 0
NUMWIN = 4 / Total number of windows
WINDOW = 'E1 ' / Window label
NCYCLE = 1
REFLECT = T
DSTATUS = T
MJDUTC = 58256.8448834841
GOODTIME= T
EXPTIME = 4.0
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,1:512]'
DETSEC = '[3273:4296,-1223:-712]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 3273.0
CRVAL2 = -1223.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:5, W:E1' / name of this image extension
HISTORY result of makeflat on 54 frames, ngroup = 5
# HDU 18 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '5 ' / CCD label
WINDOW = 'F1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 1 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,1:512]'
DETSEC = '[2249:3272,-1223:-712]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = 0.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 2249.0
CRVAL2 = -1223.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:5, W:F1' / name of this image extension
# HDU 19 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '5 ' / CCD label
WINDOW = 'G1 ' / Window label
LLX = 1 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1:1024,513:1024]'
DETSEC = '[2249:3272,-711:-200]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = 0.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 2249.0
CRVAL2 = -711.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:5, W:G1' / name of this image extension
# HDU 20 in flat.hcm:
XTENSION= 'IMAGE ' / Image extension
BITPIX = -32 / array data type
NAXIS = 2 / number of array dimensions
NAXIS1 = 1024
NAXIS2 = 512
PCOUNT = 0 / number of parameters
GCOUNT = 1 / number of groups
CCD = '5 ' / CCD label
WINDOW = 'H1 ' / Window label
LLX = 1025 / X-ordinate of lower-left pixel
LLY = 513 / Y-ordinate of lower-left pixel
XBIN = 1 / X-binning factor
YBIN = 1 / Y-binning factor
CCDSUM = '1 1 '
CCDSEC = '[1:1024,1:512]'
AMPSEC = '[1:1024,1:512]'
DATASEC = '[1025:2048,513:1024]'
DETSEC = '[3273:4296,-711:-200]'
ATM1_1 = 1.0
ATM2_2 = 1.0
ATV1 = 0.0
ATV2 = 0.0
LTM1_1 = 1.0
LTM2_2 = 1.0
LTV1 = -1024.0
LTV2 = -512.0
DTM1_1 = 1.0
DTM2_2 = 1.0
DTV1 = 2248.0
DTV2 = -1224.0
WCSNAMEP= 'PHYSICAL'
CTYPE1 = 'PIXEL '
CTYPE2 = 'PIXEL '
CRPIX1 = 1.0
CRPIX2 = 1.0
CRVAL1 = 3273.0
CRVAL2 = -711.0
CD1_1 = 1.0
CD2_2 = 1.0
EXTNAME = 'C:5, W:H1' / name of this image extension