XTENSION= 'IMAGE ' / IMAGE extension
BITPIX = 16 / number of bits per data pixel
NAXIS = 2 / number of data axes
NAXIS1 = 708 / length of data axis 1
NAXIS2 = 568 / length of data axis 2
PCOUNT = 0 / required keyword; must = 0
GCOUNT = 1 / required keyword; must = 1
Note above that BITPIX=16, which indicates that the FITS file contains
big-endian signed 16-bit two's complement integers (range -32768 to +32767).
It is the case for all of the UCO/Lick CCD hardware that the
analog-to-digital conversion produces unsigned 16-bit integers
(range 0 to 65535).
The structure of two's complement arithmetic allows these data values
to be written into a FITS file simply by flipping the high order
(sign) bit and setting the next two FITS keywords to these values.
BZERO = 32768 / offset data range to that of unsigned short
BSCALE = 1 / default scaling factor
This is the date that CFITSIO obtained by querying the system clock
for the POSIX time_t value.
It is the time at which the lickserv2 process
requested the creation of this HDU as part of the skeletal MEF file
into which the pixel stream was descrambled.
It does not directly indicate anything about the time of the exposure
or the time of the movements of the camera shutter.
DATE = '2004-05-20T22:22:47' / file creation date (YYYY-MM-DDThh:mm:ss UT)
The CCD crates designed at Lick do not have code intended
to indicate a NULL pixel value.
Under normal operation the digital values from the A/D conversion
are set such that they are always significantly greater than zero.
That allows us to suppose that any pixel with value zero is
intended to be NULL.
Given the values of BZERO and BSCALE above, the
following keyword gives the FITS array value which corresponds
to a data value of zero.
BLANK = -32768 / FITS array value of NULL pixel
In order to decode the pixel stream from the mosaic detectors designed at Lick, the lickserv2 process uses data structures which contain a complete description of the layout of the various mosaics, the detectors in each mosaic, and the manner in which the cables and electronics transfer the pixel values. For a description see XML schema for documenting mosaics of detectors. The notion is that all of the metadata describing the provenance of the data values in the pixels will be documented by FITS keywords.
The EXTNAME keyword indicates the reason that this IMAGE HDU has been included in the MEF file. In this case the pixels originate from Video Input number 1 and they are recorded here as a result of Pane number 1.
EXTNAME = 'VidInp1+Pane1' / name of this image extension
The metadata about this mosaic are documented by the following
keywords whose values come from the data structure.
Note in particular that the AMPWIRES keyword gives the
name of this particular permutation of the co-axial cables which
connect the pre-amplifiers on the dewar to the video inputs on the
CCD controller.
This demonstrates that the data structure is intended to be able
to correctly document the provenance of each pixel value even if
the many cables happen to be permuted.
(Such a permutation might occur as a part of activities which are
trying to diagnose a failing component in one of the video signal
pathways.)
DETCNFID= 1002 / mosaic detector configuration Id
DETCNFIG= 'HIRES Science mosaic' / mosaic detector configuration
MOSAIC = 'HIRES Science Mosaic' / mosaic detector
MOSDESIN= 'HIRES Mosaic' / mosaic detector design
AMPWIRES= 'HIRES Wiring, 6-amplifier' / mosaic amplifier wiring
The following keywords are intended to give complete metadata
documenting the identity of the mosaic components which produced
these pixels.
VIDEOINP= 1 / see HIRES engineering drawing H9604
AMPLOC = '1 ' / see HIRES engineering drawing H9604
AMPTYPE = 'A ' / type of amplifier
CCDLOC = '1 ' / see HIRES engineering drawing H9604
CCDGEOM = 'MIT/LL 2k*4k' / geometry of CCD
CCDNAME = '17-7-1 ' / name of CCD
CCDTYPE = 'High Resistivity' / type of CCD
Some CCD controllers are able to hasten the CCD readout by
reading some rows of interest, quickly skipping past other rows
which are not part of any active PANEn,
and then reading more rows which are part of an active
PANEn.
A value of REXTID other than zero will indicate
that such skipping has happened.
REXTID = 0 / row extent of this readout
PANEID = 1 / PANE which inspired this HDU
There is a longstanding convention from NOAO/IRAF that sub-regions
of the FITS array are described by "sections" with a Fortran-like
syntax in the FITS keyword value.
The most relevant of all such section keywords is
DATASEC, for it indicates the region of the FITS array
which consists of pixels with information about photons received
by the detector.
DATASEC is used by the IRAF mosaic image display and by
the SAO ds9 image display.
DATASEC = '[13:628,1:568]' / NOAO/IRAF data section
DETSIZE = '[1:6144,1:4096]' / NOAO mosaic detector size for ds9
DETSEC = '[409:1024,712:1279]' / NOAO mosaic detector section for ds9
The lickserv2 program writes FITS World Coordinate System
(WCS) keywords for several different
coordinate systems.
CRPIX1P = 13. / reference pixel along FITS axis j
CRPIX2P = 1. / reference pixel along FITS axis j
CRVAL1P = 408.5 / coordinate value for WCS axis i at refpix
CRVAL2P = 711.5 / coordinate value for WCS axis i at refpix
CD1_1P = 1. / CTM i_j from pixel to WCS
CD1_2P = 0. / CTM i_j from pixel to WCS
CD2_1P = 0. / CTM i_j from pixel to WCS
CD2_2P = 1. / CTM i_j from pixel to WCS
CTYPE1P = 'PANE_X ' / coordinate/projection type for WCS axis i
CTYPE2P = 'PANE_Y ' / coordinate/projection type for WCS axis i
CUNIT1P = 'pixel ' / physical unit for WCS axis i
CUNIT2P = 'pixel ' / physical unit for WCS axis i
WCSNAMEP= 'pane ' / UCO/Lick mosaic PANE coordinates
CRDER1P = 0. / coordinate random error for WCS axis i
CRDER2P = 0. / coordinate random error for WCS axis i
CSYER1P = 0. / coordinate systematic error for WCS axis i
CSYER2P = 0. / coordinate systematic error for WCS axis i
The amplifier coordinates are
intended to indicate the coordinate of a pixel with respect to the
amplifier through which its datum was read.
This coordinate makes sense to specify only if the pixel values from
each amplifier are stored in separate FITS IMAGE extensions.
CRPIX1A = 13. / reference pixel along FITS axis j
CRPIX2A = 1. / reference pixel along FITS axis j
CRVAL1A = 409. / coordinate value for WCS axis i at refpix
CRVAL2A = 712. / coordinate value for WCS axis i at refpix
CD1_1A = 1. / CTM i_j from pixel to WCS
CD1_2A = 0. / CTM i_j from pixel to WCS
CD2_1A = 0. / CTM i_j from pixel to WCS
CD2_2A = 1. / CTM i_j from pixel to WCS
CTYPE1A = 'AMPLIFIER_X' / coordinate/projection type for WCS axis i
CTYPE2A = 'AMPLIFIER_Y' / coordinate/projection type for WCS axis i
CUNIT1A = 'pixel ' / physical unit for WCS axis i
CUNIT2A = 'pixel ' / physical unit for WCS axis i
WCSNAMEA= 'amplifier' / imaging pixels thru this amplifier
CRDER1A = 0. / coordinate random error for WCS axis i
CRDER2A = 0. / coordinate random error for WCS axis i
CSYER1A = 0. / coordinate systematic error for WCS axis i
CSYER2A = 0. / coordinate systematic error for WCS axis i
The CCD coordinates are intended
to indicate the coordinate of a pixel with respect to the silicon
structure of a particular chip.
The choice of coordinate origin on a chip is documented
by the mosaic metadata keywords mentioned above.
CRPIX1C = 13. / reference pixel along FITS axis j
CRPIX2C = 1. / reference pixel along FITS axis j
CRVAL1C = 409. / coordinate value for WCS axis i at refpix
CRVAL2C = 712. / coordinate value for WCS axis i at refpix
CD1_1C = 1. / CTM i_j from pixel to WCS
CD1_2C = 0. / CTM i_j from pixel to WCS
CD2_1C = 0. / CTM i_j from pixel to WCS
CD2_2C = 1. / CTM i_j from pixel to WCS
CTYPE1C = 'CCD_X ' / coordinate/projection type for WCS axis i
CTYPE2C = 'CCD_Y ' / coordinate/projection type for WCS axis i
CUNIT1C = 'pixel ' / physical unit for WCS axis i
CUNIT2C = 'pixel ' / physical unit for WCS axis i
WCSNAMEC= 'ccd ' / NOAO mosaic CCD coordinates
CRDER1C = 0. / coordinate random error for WCS axis i
CRDER2C = 0. / coordinate random error for WCS axis i
CSYER1C = 0. / coordinate systematic error for WCS axis i
CSYER2C = 0. / coordinate systematic error for WCS axis i
The detector coordinates
are intended to match the definition from the description of the
NOAO/IRAF mosaic keywords in the documents by Frank Valdes.
CRPIX1D = 13. / reference pixel along FITS axis j
CRPIX2D = 1. / reference pixel along FITS axis j
CRVAL1D = 409. / coordinate value for WCS axis i at refpix
CRVAL2D = 712. / coordinate value for WCS axis i at refpix
CD1_1D = 1. / CTM i_j from pixel to WCS
CD1_2D = 0. / CTM i_j from pixel to WCS
CD2_1D = 0. / CTM i_j from pixel to WCS
CD2_2D = 1. / CTM i_j from pixel to WCS
CTYPE1D = 'DETECTOR_X' / coordinate/projection type for WCS axis i
CTYPE2D = 'DETECTOR_Y' / coordinate/projection type for WCS axis i
CUNIT1D = 'pixel ' / physical unit for WCS axis i
CUNIT2D = 'pixel ' / physical unit for WCS axis i
WCSNAMED= 'detector' / NOAO mosaic CCD coordinates
CRDER1D = 0. / coordinate random error for WCS axis i
CRDER2D = 0. / coordinate random error for WCS axis i
CSYER1D = 0. / coordinate systematic error for WCS axis i
CSYER2D = 0. / coordinate systematic error for WCS axis i
The image coordinates are
intended to be a redundant reiteration of the Fortran-like default
FITS array coordinate for the pixels.
CRPIX1I = 1. / reference pixel along FITS axis j
CRPIX2I = 1. / reference pixel along FITS axis j
CRVAL1I = 1. / coordinate value for WCS axis i at refpix
CRVAL2I = 1. / coordinate value for WCS axis i at refpix
CD1_1I = 1. / CTM i_j from pixel to WCS
CD1_2I = 0. / CTM i_j from pixel to WCS
CD2_1I = 0. / CTM i_j from pixel to WCS
CD2_2I = 1. / CTM i_j from pixel to WCS
CTYPE1I = 'IMAGE_X ' / coordinate/projection type for WCS axis i
CTYPE2I = 'IMAGE_Y ' / coordinate/projection type for WCS axis i
CUNIT1I = 'pixel ' / physical unit for WCS axis i
CUNIT2I = 'pixel ' / physical unit for WCS axis i
WCSNAMEI= 'image ' / redundant reiteration of default FITS
CRDER1I = 0. / coordinate random error for WCS axis i
CRDER2I = 0. / coordinate random error for WCS axis i
CSYER1I = 0. / coordinate systematic error for WCS axis i
CSYER2I = 0. / coordinate systematic error for WCS axis i
The primary coordinates are
the same as the Pane coordinates in order to indicate that we believe
this coordinate system is the best one for use in conversation.
CRPIX1 = 13. / reference pixel along FITS axis j
CRPIX2 = 1. / reference pixel along FITS axis j
CRVAL1 = 408.5 / coordinate value for WCS axis i at refpix
CRVAL2 = 711.5 / coordinate value for WCS axis i at refpix
CD1_1 = 1. / CTM i_j from pixel to WCS
CD1_2 = 0. / CTM i_j from pixel to WCS
CD2_1 = 0. / CTM i_j from pixel to WCS
CD2_2 = 1. / CTM i_j from pixel to WCS
CTYPE1 = 'PANE_X ' / coordinate/projection type for WCS axis i
CTYPE2 = 'PANE_Y ' / coordinate/projection type for WCS axis i
CUNIT1 = 'pixel ' / physical unit for WCS axis i
CUNIT2 = 'pixel ' / physical unit for WCS axis i
WCSNAME = 'pane ' / UCO/Lick mosaic PANE coordinates
CRDER1 = 0. / coordinate random error for WCS axis i
CRDER2 = 0. / coordinate random error for WCS axis i
CSYER1 = 0. / coordinate systematic error for WCS axis i
CSYER2 = 0. / coordinate systematic error for WCS axis i
The gap coordinates are intended to
give a rough indication of the actual geometry of the detectors in
the mosaic including the gaps between them.
This allows the SAO ds9 image display to show something very close
to the actual layout of the focal plane.
CRPIX1G = 13. / reference pixel along FITS axis j
CRPIX2G = 1. / reference pixel along FITS axis j
CRVAL1G = 409. / coordinate value for WCS axis i at refpix
CRVAL2G = 712. / coordinate value for WCS axis i at refpix
CD1_1G = 1. / CTM i_j from pixel to WCS
CD1_2G = 0. / CTM i_j from pixel to WCS
CD2_1G = 0. / CTM i_j from pixel to WCS
CD2_2G = 1. / CTM i_j from pixel to WCS
CTYPE1G = 'GAP_X ' / coordinate/projection type for WCS axis i
CTYPE2G = 'GAP_Y ' / coordinate/projection type for WCS axis i
CUNIT1G = 'pixel ' / physical unit for WCS axis i
CUNIT2G = 'pixel ' / physical unit for WCS axis i
WCSNAMEG= 'ccd2gap ' / approximate gap coordinates
CRDER1G = 1. / coordinate random error for WCS axis i
CRDER2G = 1. / coordinate random error for WCS axis i
CSYER1G = 1. / coordinate systematic error for WCS axis i
CSYER2G = 1. / coordinate systematic error for WCS axis i
The last thing that write_image does before flushing
the FITS file to disk is to ask CFITSIO to perform the FITS checksum
operation on each of the HDUs. In the case of the PHDU it is possible
to compare the value of the DATE keyword with the comment of the
checksum keywords and see how much time elapsed between the
creation of the skeletal FITS file by lickserv2 and the
completion of keyword insertion by write_image.
CHECKSUM= 'ZSHEgR99ZRGEfR99' / HDU checksum updated 2004-05-20T22:23:22
DATASUM = '649738213' / data unit checksum updated 2004-05-20T22:23:22
END