[NOAO logo]

NOAO is operated by the Association of Universities for Research in Astronomy (AURA), Inc. under cooperative agreement with the National Science Foundation

Draft date: June 26, 1996.


NOAO Image Data Structure Definitions

1. Introduction

This document defines the basic data structures for NOAO image data. Image data is that produced by regular array detectors such as CCDs and infrared devices. The data structures are created by the data acquisition systems for use by observers, data reduction systems, and archives.

The general definitions given here are intended to be applicable to both optical CCD data and infrared array data. However, the current version of this document only provides detector specifics for CCD data.

2. The Image Data Model

It is almost universal that astronomical image data from array detectors are recorded as FITS image files; at least for data interchange and archiving. There is also a trend to adopt FITS image files as the data format for disk storage and access. At NOAO FITS image files are used by the Save-The-Bits system, is the recommended user tape format, and is a new IRAF supported disk format. Therefore, the basic image data structures created by future data acquisition systems will be FITS image files.

The basic FITS image format consists of an ASCII "header" and a optional binary "data" array. The combination is called a Header and Data Unit (HDU). The header contains comments and individually identified pieces of information about the data. Multiple HDUs may be combined in a single file using the FITS Image Extensions format.

2.1 CCDs with Multiple Amplifiers and CCD Mosaics

For CCD data the basic image unit corresponds to data from a single amplifier. CCD observations taken with a single amplifier will be recorded as a single simple FITS image file with one HDU. Observations made with multiple amplifiers and/or multiple CCDs in a "mosaic" of CCDs will be recorded as multiple HDUs in a single file using the Image Extensions format.

When a single observation consists of data from multiple amplifiers and CCDs much of the header information is the same for all amplifiers. The common header information will be recorded in the first header, called the primary header unit (PHU). This header will have no data array associated with it. The following headers, called extension header units (EHU), and data arrays for each amplifier will then contain only information relevant to that amplifier. The logical header for each amplifier is then the combination of information from the PHU and the individual EHU. If an individual amplifier image is extracted from a file with multiple images then the common header keywords will be merged into the new image file.

The connection between individual image units from various amplifiers and CCDs for a single observation is provided in two ways. The primary connection is a unique observation identification that is common to all the image units. The second connection is through the grouping of the image units in a single FITS Image Extensions file by the data acquisition system. However, this is a less fundamental connection since the individual units may be extracted into separate image files at some later time.

Within a set of data from the same observation (all having the same observation identification) each image unit has a unique identification number. For CCD data this would be a number identifying each amplifier uniquely in the detector. Thus data from an observation consists of all image units with the same observation identification with the image identification identifying and distinguishing each image. The FITS keywords that implement this identification information are discussed in section 4.1.

2.2 Pixel Geometry for Multiple Raster Data

The geometrical (pixel raster) relationships between the various image units is defined in the image headers by specification of parent raster sizes, the regions within this raster covered by the subunits, and linear coordinate transformation between the various pixel coordinate systems. In a mosaic of CCDs there are three levels. The full mosaic is described by a logical pixel raster in a "detector" coordinate system of a specified size, say 8192x8192 for a 4x2 mosaic of 2048x4096 CCDs. The size of the logical dectector raster could also be defined to include gaps between the CCDs, as a number of missing pixels, but it must be rectangular.

At the next level each CCD header specifies a rectangular region in a "CCD" coordinate system within the higher level mosaic raster which it covers. The CCD header also defines its own logical pixel raster size. This is generally the physical size of the CCD in pixels though for drift scanning it may be defined to be bigger in the parallel transfer direction. At the next and final level each amplifier header specifies a rectangular region that it covers within the CCD raster. Because multiple amplifiers read the CCD data in different orders, as described an an "amplifier" coordinate system, there will be relative flips between the different amplifiers though the pixels may be flipped when they are written to an image raster by the data acquisition system . The description of the regions covered by each piece includes specification of the flips so that the piece is correctly mapped to the higher level pixel raster. This scheme of specifying sizes and regions of the higher level raster covered can be extended to greater or lesser depths; i.e. a mosaic of mosaics or a single CCD with multiple amplifiers.

The pixel raster description can be used by software to piece together a single image for display and quick-look analysis. For a single CCD with multiple amplifiers the single image will be geometrically correct with respect to the CCD array. However, for a mosaic of CCDs it will not generally be correct due alignment errors between the CCD chips. The alignment corrections are left to later data reduction and analysis software.

2.3 Pixel Coordinate Systems and Transformations

In this section we define four "pixel" coordinate systems called "CCD" "amplifier", "image", and "detector". We also define coordinate transformations between the CCD coordinates and the other three.

All the pixel coordinate systems are continuous with integer coordinate values for the centers of the pixels. The integer coordinate values then relate to the raster array indices of the CCD or image.

The CCD coordinate system (Cx,Cy) is defined in terms of the individual charge wells or "unbinned" pixels. The CCD pixel coordinates run between one and the maximum number of pixels which can be read. Note that this might be larger than the physical size of the CCD for the case of drift scanning. The choice of CCD corner defining the origin is arbitrary (except for the case of drift scanning). However, for a mosaic of CCDs it is recommended that all the CCD coordinates have the same orientation relative to an image focal plane regardless of which amplifier is used.

The CCD coordinate system is important for specifying regions of interest (ROI) and matching these regions in observations to full format calibration data (such as zero level, dark count, and flat field images), bad pixel masks, and distortion and world coordinate maps.

The amplifier coordinate system (As,Ap) is based on the order in which pixels are read. The the serial coordinate is As and the parallel coordinate is Ap. The coordinates begin with one for the first pixel that the controller can record (if the controller always skips some initial columns or lines then these are not counted) and increment by one for each "unbinned" pixel. The general linear transformation between the amplifier and CCD coordinates is given by

    As = ATM1_1 * Cx + ATM1_2 * Cy + ATV1
    Ap = ATM2_1 * Cx + ATM2_2 * Cy + ATV2

    Cx = ( ATM2_2 * (As - ATV1) - ATM1_2 * (Ap - ATV2)) /
	 (ATM1_1 * ATM2_2 - ATM1_2 * ATM2_1)
    Cy = (-ATM2_1 * (As - ATV1) + ATM1_1 * (Ap - ATV2)) /
	 (ATM1_1 * ATM2_2 - ATM1_2 * ATM2_1)
where the ATM values are the amplifer transformation matrix and the ATV values are the amplifier transformation vector. The transformation coefficients are recorded in the image header with keywords matching the above terms. The main purpose of maintaining the amplifier coordinate system transformation is to allow determining the readout order of the pixels, particularly when different amplifiers may be used. The order of the pixel readout is important in defining how pixel binning is done.

The image coordinate system (Ic,Il) refers to the recorded image pixel array. The image array may include other information such as overscan and prescan. Thus the actual data pixels from the CCD may occupy only a region of the image. However the image coordinate system begins with (1,1) for the first pixel in the image. The first data pixel will begin with some coordinate (Ic1,Il1). The data pixels then increment by one for each "binned" pixel. As with the amplifier coordinate system the general linear coordinate transformation between the CCD and image coordinates is given by

    Ic = LTM1_1 * Cx + LTM1_2 * Cy + LTV1
    Il = LTM2_1 * Cx + LTM2_2 * Cy + LTV2

    Cx = ( LTM2_2 * (Ic - LTV1) - LTM1_2 * (Il - LTV2)) /
	 (LTM1_1 * LTM2_2 - LTM1_2 * LTM2_1)
    Cy = (-LTM2_1 * (Ic - LTV1) + LTM1_1 * (Il - LTV2)) /
	 (LTM1_1 * LTM2_2 - LTM1_2 * LTM2_1)

[This CCD to image transformation is equivalent to the IRAF concept of a logical to physical coordinate transformation where the physical coordinate system is the CCD pixel coordinate system and the logical coordinate system is the image coordinate system.]

The final coordinate system is the detector coordinate system (Dx,Dy). This is important when multiple amplifiers and/or multiple CCDs are used. The detector coordinate system describes a single pixel raster of "unbinned" CCD pixels into which the mulitple CCD/amplifier pixels are mapped to make a single, simple picture. It is used for displaying (and possibly processing) muliple amplifier/multiple CCD data in a consist fashion with offsets, flips and transposes between the image pixels accounted for.

As with the CCD coordinate system there is some flexibility in how the detector coordinate system is defined. Normally it will be defined to produce a semblance of a picture of the sky or focal plane. For a single CCD with multiple amplifiers the detector and CCD coordinate systems are generally the same. For a mosaic of CCDs the CCD coordinate systems for each CCD should be defined to have the same orientation relative to the focal plane and then the detector coordinate system will have the same orientation but with different origins for each CCD.

As before we define the transformation between the detector coordinates and CCD coordinates as

    Dx = DTM1_1 * Cx + DTM1_2 * Cy + DTV1
    Dy = DTM2_1 * Cx + DTM2_2 * Cy + DTV2

    Cx = ( DTM2_2 * (Dx - DTV1) - DTM1_2 * (Dy - DTV2)) /
	 (DTM1_1 * DTM2_2 - DTM1_2 * DTM2_1)
    Cy = (-DTM2_1 * (Dx - DTV1) + DTM1_1 * (Dy - DTV2)) /
	 (DTM1_1 * DTM2_2 - DTM1_2 * DTM2_1)

When pixels are binned and written to the image then there is a noninteger relationship between the image coordinate system and the other coordinate systems. The image coordinates of binned pixels are still defined to have integer values at the centers of the binned pixels and the integer values also are indices into the image pixel array. But now the center of a binned pixel transforms to the middle of the extent of the unbinned pixels. For example if the first two CCD pixels are binned to form the first image pixel the center of the binned pixel in the CCD coordinate system would be 1.5 (the extent of the pair of pixels is 0.5 to 2.5). Thus image coordinate 1 (assuming the first binned pixel is written to the first image pixel) maps to CCD coordinate 1.5, image coordinate 2 maps to CCD coordinate 3.5, and so on.

The binning of amplifier pixels is described by four parameters. Two of these are Ns and Np which are the number of serial and parallel pixels summed for each output pixel in the amplifier coordinate system. While we would expect that any real application would have all output pixels be the sum of the same number of single pixels it is possible that the first and last output pixels could be partial sums of fewer pixels. Thus we also define the parameters Ns1 and Np1 which indicate how many amplifier pixels are in the first sum (in the readout order). The number of amplifier pixels in the last sum is implicit in the total number of pixels. The binning information is recorded in the image header with the keyword and format

    CCDSUM  = 'Ns Np Ns1 Np1'
where Ns1 and Np1 can be omitted if they are the same as Ns and Np.

The actual pixel data from an exposure are recorded in a section of the image called the "data section". The data section is identified in the image header under the keyword DATASEC. The format is

    DATASEC = '[Ic1:Ic2,Il1:Il2]'
where Ic1 and Ic2 are the range of image pixel columns and Il1 and Il2 are the range of image pixel lines. This section should have Ic1 The set of unbinned pixels used to form the pixels recorded in the data section of the image are specified by the similar section definitions in each coordinate system
    AMPSEC = '[As1:As2,Ap1:Ap2]'
    CCDSEC = '[Cx1:Cx2,Cy1:Cy2]'
    DETSEC = '[Dx1:Dx2,Dy1:Dy2]'
The above limits are related to the data section by transforming Ic1-0.5, Ic2+0.5, Il1-0.5, and Il2+0.5 and taking the nearest integer. In particular note that the order of the starting and ending values is determined from the DATASEC limits and so the starting value may be larger than the ending value.

Deriving the Transformation Coefficients

The various transformation coefficients are derived by considering the mappings between the sections in the various coordinate systems (AMPSEC, DATASEC, DETSEC) to the section of the CCD (CCDSEC) used in the exposure the pixel binning factors given by CCDSUM. In this section we only consider the case of no partial pixel sums (Ns1 = Ns, Np1 = Np).

Since the transformations are all defined in similar terms we derive formulas for the CCD to image coordinate transformation. The other transformations can be derived by substituting the analogous transformation coefficients for the other coordinate systems and replacing Ns and Np by 1.

When there is no transpose between the coordinate systems we have:

LTM1_2 = 0, LTM2_1 = 0

Ic = LTM1_1 * Cx + LTV1
Il = LTM2_2 * Cy + LTV2
Cx = (Ic-LTV1) / LTM1_1
Cy = (Il-LTV2) / LTM2_2

Ic1 = LTM1_1 * Cx1 + 0.5 * (1 - LTM1_1) + LTV1
Ic2 = LTM1_1 * Cx2 - 0.5 * (1 - LTM1_1) + LTV1
Il1 = LTM2_2 * Cy1 + 0.5 * (1 - LTM2_2) + LTV2
Il2 = LTM2_2 * Cy2 - 0.5 * (1 - LTM2_2) + LTV2
Cx1 = (Ic1 - 0.5 * (1 - LTM1_1) - LTV1) / LTM1_1
Cx2 = (Ic2 + 0.5 * (1 - LTM1_1) - LTV1) / LTM1_1
Cy1 = (Il1 - 0.5 * (1 - LTM2_2) - LTV2) / LTM2_2
Cy2 = (Il2 + 0.5 * (1 - LTM2_2) - LTV2) / LTM2_2
Ns = abs (1 / LTM1_1)
Np = abs (1 / LTM2_2)

LTM1_1 =  / Ns
LTM1_1 = (Ic2 - Ic1 + 1) / (Cx2 - Cx1 + 1)
LTV1 = Ic1 - LTM1_1 * Cx1 - 0.5 * (1 - LTM1_1)
LTM2_2 =  / Np
LTM2_2 = (Il2 - Il1 + 1) / (Cy2 - Cy1 + 1)
LTV2 = Il2 - LTM2_2 * Cy1 - 0.5 * (1 - LTM2_2)

The value  is 1 if the image pixel order is in the same sense as the
CCD pixel order and -1 otherwise.

For the case of a transpose between the coordinate systems exchange LTM1_1 with LTM1_2, LTM2_2 with LTM2_1, and Cx with Cy.

Examples

1. A 2048x2048 CCD is readout with four amplifiers as shown in the figure below. The arrows show the serial direction. During the readout 32 overscan "pixels" are included in the image. The CCD and detector coordinate systems are defined with the origin at amplifier 1 and Cx increasing to the left and Cy increasing up in the figure.

     3       4
     +-------+
     |<-   ->|
     |       |
     |       |
     |<-   ->|
     +-------+
     1       2

Case a: The full format is readout with no binning and with the pixels written directly in the readout order to the image; i.e. the controller system does not flip the data when writing to the image. In this case the overscan will always be on the right and the first data pixel will be pixel (1,1) in the image.

	Amplifier		CCD			Detector
1	As = Cx 		Ic = Cx 		Dx = Cx
	Ap = Cy			Il = Cy			Dy = Cy
2	As = 2049 - Cx		Ic = 2049 - Cx		Dx = Cx
	Ap = Cy			Il = Cy			Dy = Cy
3	As = Cx			Ic = Cx			Dx = Cy
	Ap = 2049 - Cy		Il = 2049 - Cy		Dy = Cy
4	As = 2049 - Cx		Ic = 2049 - Cx		Dx = Cx
	Ap = 2049 - Cy		Il = 2049 - Cy		Dy = Cy


AMPLIFIER      1               2                  3                  4
------- --------------- ------------------ ------------------ ---------------------
CCDSEC  [1:1024,1:1024] [1025:2048,1:1024] [1:1024,1025:2048] [1025:2048,1025:2048]
AMPSEC  [1:1024,1:1024] [1:1024,1:1024]    [1:1024,1:1024]    [1:1024,1:1024]
DATASEC [1:1024,1:1024] [1:1024,1:1024]    [1:1024,1:1024]    [1:1024,1:1024]
DETSEC  [1:1024,1:1024] [1025:2048,1:1024] [1:1024,1025:2048] [1025:2048,1025:2048]
NSUM    1 1             1 1                1 1                1 1
ATV1    0               2049               0                  2049
ATV2    0               0                  2049               2049
ATM1_1  1               -1                 1                  -1
ATM2_2  1               1                  -1                 -1
LTV1    0               2049               0                  2049
LTV2    0               0                  2049               2049
LTM1_1  1               -1                 1                  -1
LTM2_2  1               1                  -1                 -1
DTV1    0               0                  0                  0   
DTV2    0               0                  0                  0    
DTM1_1  1               1                  1                  1
DTM2_2  1               1                  1                  1

Case b. The full format is readout with no binning but in this case the controller flips the readout order when writing to the image so that the recorded images have the same orientation to the sky. The overscan is written to the continuing in the same order as the pixels so that the overscan appears in columns 1 to 32 for amplifiers 2 and 4.

	Amplifier		CCD			Detector
1	As = Cx 		Ic = Cx 		Dx = Cx
	Ap = Cy			Il = Cy			Dy = Cy
2	As = 2049 - Cx		Ic = Cx - 992		Dx = Cx
	Ap = Cy			Il = Cy			Dy = Cy
3	As = Cx			Ic = Cx			Dx = Cy
	Ap = 2049 - Cy		Il = Cy - 1024		Dy = Cy
4	As = 2049 - Cx		Ic = Cx - 992		Dx = Cx
	Ap = 2049 - Cy		Il = Cy - 1024		Dy = Cy


AMPLIFIER      1               2                  3                  4
------- --------------- ------------------ ------------------ ---------------------
CCDSEC  [1:1024,1:1024] [1025:2048,1:1024] [1:1024,1025:2048] [1025:2048,1025:2048]
AMPSEC  [1:1024,1:1024] [1024:1,1:1024]    [1:1024,1024:1]    [1024:1,1024:1]
DATASEC [1:1024,1:1024] [33:1056,1:1024]   [1:1024,1:1024]    [33:1056,1:1024]
DETSEC  [1:1024,1:1024] [1025:2048,1:1024] [1:1024,1025:2048] [1025:2048,1025:2048]
NSUM    1 1             1 1                1 1                1 1
ATV1    0               2049               0                  2049
ATV2    0               0                  2049               2049
ATM1_1  1               -1                 1                  -1
ATM2_2  1               1                  -1                 -1
LTV1    0               -992               0                  -992
LTV2    0               0                  -1024              -1024
LTM1_1  1               1                  1                  1
LTM2_2  1               1                  1                  1
DTV1    0               0                  0                  0   
DTV2    0               0                  0                  0
DTM1_1  1               1                  1                  1
DTM2_2  1               1                  1                  1

Case c. A region of interest given by CCD pixels 511 to 2000 by 1001 to 2047 is read with 2x3 binning. As in example b the controller flips the readouts. There are still 32 pixels of overscan which are on the right for amplifiers 1 and 3 and on the left for amplifiers 2 and 4.

	Amplifier		CCD			Detector
1	As = Cx 		Ic = Cx / 2 - 254.75 	Dx = Cx
	Ap = Cy			Il = Cy / 3 - 333	Dy = Cy
2	As = 2049 - Cx		Ic = Cx / 2 - 511.75	Dx = Cx
	Ap = Cy			Il = Cy / 3 - 333	Dy = Cy
3	As = Cx			Ic = Cx / 2 - 254.75	Dx = Cy
	Ap = 2049 - Cy		Il = Cy / 3 - 344	Dy = Cy
4	As = 2049 - Cx		Ic = Cx / 2 - 511.75	Dx = Cx
	Ap = 2049 - Cy		Il = Cy / 3 - 344	Dy = Cy

AMPLIFIER        1                     2                   3                    4
------- -------------------- --------------------- ------------------   ---------------------
CCDSEC  [511:1024,1001:1024] [1025:2000,1001:1024] [511:1024,1025:2047] [1025:2000,1025:2047]
AMPSEC  [511:1024,1001:1024] [1024:49,1001:1024]   [511:1024,1024:2]    [1024:49,1024:2]
DATASEC [1:257,1:8]          [33:520,1:8]          [1:257,1:341]        [33:520,1:341]
DETSEC  [511:1024,1001:1024] [1025:2000,1001:1024] [511:1024,1025:2047] [1025:2000,1025:2047]
NSUM    2 3                  2 3                   2 3                  2 3
ATV1    0                    2049                  0                    2049
ATV2    0                    0                     2049                 2049
ATM1_1  1                    -1                    1                    -1
ATM2_2  1                    1                     -1                   -1
LTV1    -254.75              -511.75               -254.75              -511.75
LTV2    -333                 -333                  -344                 -344 
LTM1_1  0.5                  0.5                   0.5                  0.5
LTM2_2  0.33333333           0.33333333            0.33333333           0.33333333
DTV1    0                    0                     0                    0   
DTV2    0                    0                     0                    0
DTM1_1  1                    1                     1                    1
DTM2_2  1                    1                     1                    1

2. A mosaic of 4 1024x1024 CCDs is readout with four amplifiers as shown in the figure below. The arrows show the serial direction. During the readout 32 overscan "pixels" are included in the image. The CCD and detector coordinate systems are defined with the origin at amplifier 1 and Cx increasing to the left and Cy increasing up in the figure. The controller readouts out 32 overscan pixels and flips the readout order when writing to the image to preserve the orientation relative to the sky in the images. This means that the overscan regions for amplifiers 3 and 4 will be in the first columns of the images.

             3        4
     +-------++-------+
     |     ->||     ->|
     |       ||       |
     |       ||       |
     |       ||       |
     +-------++-------+
     +-------++-------+
     |       ||       |
     |       ||       |
     |       ||       |
     |<-     ||<-     |
     +-------++-------+
     1        2        

Case a. Readout the full format with no binning.

	Amplifier		CCD			Detector
1	As = Cx 		Ic = Cx 		Dx = Cx
	Ap = Cy			Il = Cy			Dy = Cy
2	As = Cx 		Ic = Cx 		Dx = Cx + 1024
	Ap = Cy			Il = Cy			Dy = Cy
3	As = 1025 - Cx		Ic = Cx + 32		Dx = Cx
	Ap = 1025 - Cy		Il = Cy         	Dy = Cy + 1024
4	As = 1025 - Cx		Ic = Cx + 32		Dx = Cx + 1024
	Ap = 1025 - Cy		Il = Cy         	Dy = Cy + 1024


AMPLIFIER      1               2                  3                  4
------- --------------- ------------------ ------------------ ---------------------
CCDSEC  [1:1024,1:1024] [1:1024,1:1024]    [1:1024,1:1024]    [1:1024,1:1024]
AMPSEC  [1:1024,1:1024] [1:1024,1:1024]    [1024:1,1024:1]    [1024:1,1024:1]
DATASEC [1:1024,1:1024] [33:1056,1:1024]   [1:1024,1:1024]    [33:1056,1:1024]
DETSEC  [1:1024,1:1024] [1025:2048,1:1024] [1:1024,1025:2048] [1025:2048,1025:2048]
NSUM    1 1             1 1                1 1                1 1
ATV1    0               0                  1025               1025
ATV2    0               0                  1025               1025
ATM1_1  1               1                  -1                 -1
ATM2_2  1               1                  -1                 -1
LTV1    0               0                  32                 32
LTV2    0               0                  0                  0
LTM1_1  1               1                  1                  1
LTM2_2  1               1                  1                  1
DTV1    0               1024               0                  1024
DTV2    0               0                  1024               1024
DTM1_1  1               1                  1                  1
DTM2_2  1               1                  1                  1

2.4 World Coordinate Systems

Another level of description of the geometry is that each image unit, the amplifier read-outs, may include a world coordinate system (WCS). Whether it is present and useful depends on the calibration of the instrument and telescope and the capabilities of the data acquisition system. Each WCS can map pixels in the image to right ascension and declination on the sky or to some other coordinate system such as fractional column and line coordinates in a mosaic image that includes the alignment corrections. The current types of WCS descriptions allow for rotations and various types of sky projections. In addition it is also possible to include distortion corrections to connect to the sky projections which assume an "ideal" detector. By providing a separate WCS for each amplifier a piece-wise correct astronomical or mosaic coordinate system can be available so that software may use it to report coordinates from an image display and to resample the data into a geometrically correct image.

Examples of the basic CCD geometry keywords (as defined later) for single CCDs with one or two amplifiers and for a CCD mosaic using CCDs with one or two amplifiers are given elsewhere.

3. The Logical Header

The observation header contains documentary information about a particular observation (which includes target and calibration observations) as well as information about the format of the image. This section defines a logical model for the observation information and the following section defines the implementation into FITS header keywords and dealing with redundant or missing information.

The logical model divides the observation information into logical categories or classes. A class consists of information elements which are either individual pieces of information or instances of another class. An element may also be an array of one or more instances such as, for example, information about multiple objects in the field of view.

Clearly it is not possible to define all the information for every instrument and type of observation. However, the logical class model can be extended in a systematic way. This can be done by adding additional elements to a class or adding new classes. Instrument or system specific classes, such as for a particular instrument or array controller, may be added to define parameters which do not fit the general observation model. After the logical model is extended then the mapping to a FITS header can be made.

The selection of classes and the organization of various elements in the logical model is not intended to be a direct model of a telescope system. The optical elements in an actual telescope system may occur in various places such as in the telescope, adapter, instrument, camera, or detector. Thus these are are identified as logical elements and may be placed in the class structure differently than in a particular telescope system.

The syntax for the logical model will use the following conventions. A class is identified by a name entirely in upper case. An element in a class which is an instance of another class is identified by a name with the first letter capitalized. The element name will often be the same as the name of the class, but if it is not the class will be identified in the description. When an element is shown in brackets this means a class may be defined for a specific instrument or system. An element describing an individual piece of information is identified by a lower case name. When an element may be an array of zero or more instances it will have "[n]" appended to the name. Elements that apply to the axes of the image array will have "[i]" or "[i,j]" appended to the name.

3.1 List of Classes

3.2 Class Definitions

OBSERVE Class
    Coordinate - Default observation coordinate
       timesys - Default time system
         Object[n] - Information about the astronomical object(s) 
          Site - Information about the observing site
          Dome - Information about the telescope dome
     Telescope - Information about the telescope and other systems 
       Adapter - Information about the adapter
            Tv - Information about the acquisition TV
        Guider - Information about the guider
   Aperture[n] - Information about the apertures
    Instrument - Information about the instrument
  Disperser[n] - Information about the dispersers
     Filter[n] - Information about the filters
       Shutter - Information about the shutter
        Camera - Information about the camera
      Detector - Information about the detector
   Observation - Information about the observation
         Image - Information about the image data and format
      Observer - Information about the observer and proposal
    Processing - Information about processing
       Archive - Information about archiving

The OBSERVE class is the root level class describing an observation. It is organized into broad subclasses which conceptually follow the information path from the astronomical object or objects, through the instrumentation, to the final archive.

Some of the general systems in the light path may actually be parts of other systems. For instance the filters may be in the telescope, instrument, camera, or detector. Similarly the shutter may occur at various points in the light path. However, the logical classes are used for these elements regardless of where they actually occur. Similarly the atmospheric dispersion compensator and correctors are included in the TELESCOPE class though they may also be located elsewhere in a particular telescope system.

The default coordinate and time system are included to provide global defaults for other elements in the mapping to FITS keywords. All the MJD keywords which are not part of the TIME class are given in the default time system. For example, if the data system does not provide separate coordinate information for the objects(s), telescope, detector, etc. then the single global coordinate will apply for all these logically distinct coordinates. This is described further in the next section.

OBJECT Class
          name - Standard astronomical reference name
          type - Standard object type
    Coordinate - Astronomical coordinate of the object

The OBJECT class encapsulates information about an observed target astronomical object. In this class the object name is a standard reference name (see The Second Reference Dictionary of the Nomenclature of Celestial Objects, A&AS, 107 193 and IAU Guide). The user specified name for the object/observation is part of the OBSERVATION class. The standard object type is from a dictionary of types. The goal of this class is to provide names and identifications that can be used by an archive system.

The OBJECT class is not used for calibration observations. Details about the calibration source are part of the OBSERVATION class.

SITE Class
   observatory - Standard observatory name
       weather - General weather conditions
   photometric - Photometric conditions
     seeing[n] - Seeing estimates (FWHM of star profiles)
 seeing-mjd[n] - Time for seeing estimates
   Environment - Site environment

The SITE class encapsulates information about the observing site. The standardized observatory name is used as a key to look up site information such as the latitude, longitude, and altitude. The photometric conditions and the seeing estimates are intended to aid archival selection. Seeing estimates may be derived in several ways from guiders, separate detectors, or from the image data. The best estimate for the image data should be recorded as the primary value and additional ones can be included as desired. The ENVIRONMENT subclass defines information about the temperature, wind, humidity, etc.

DOME Class
        status - Dome status
       Sensors - Dome sensors
   Environment - Dome environment

The DOME class includes information about the dome status, various sensor information, and environment in the dome, primarily temperature and wind.

TELESCOPE Class
          name - Telescope name
        config - Telescope configuration
       Version - Telescope hardware and software versions
        status - Telescope status
    Coordinate - Telescope pointing coordinate
         Altaz - Altitude/azimuth pointing coordinates
	   mjd - MJD of telescope parameters
        zenith - Zenith distance
     hourangle - Hour angle
         focus - Telescope focus
   ratrackrate - Telescope tracking rate in right ascension
  dectrackrate - Telescope tracking rate in declination
       Sensors - Telescope sensor information
  corrector[n] - Correctors
           Adc - Atmospheric dispersion compensator system
      Adaptive - Adaptive optics system
        Active - Active optics system
          Chop - Chopping system
           Nod - Nodding system
  dectrackrate - Telescope tracking rate in declination
       [Other] - Other systems

The TELESCOPE class encapsulates information about the telescope systems. There are various subsystems that may be in use and other subsystem classes may be added.

ADAPTER Class
       Version - Adapter hardware and software versions
        status - Adapter status
       Sensors - Adapter sensor information

The ADAPTER class includes various types of sensor information. The most likely information is the position angle.

TV Class
          name - TV name
        status - TV status
       Version - TV hardware and software versions
       Sensors - TV sensor information
     Filter[n] - TV filters

The TV class describes a television system. There are currently two instances of this class. The Observe.Tv instance describes the acquisition TV. The Observe.Guider.Tv instance describes the guider TV. Often the acquisition and guider TVs are the same system in which case the acquisition TV should be described. If there is a TV position it is given by the Sensors.position elements.

GUIDER Class
          name - Guider name (including "manual" and "none")
        status - Guider status
       Version - Guider hardware and software versions
            Tv - Guider TV information
       Sensors - Guider sensor information
    Coordinate - Guider coordinate
          rate - Guider rate

The GUIDER class describes the guiding system. This may be a manual system, no guiding, or some autoguider. When an autoguider is fed by a TV system the Tv subclass is used. When the same TV system is used for acquisition and guiding the acquisition TV should be described. The position of a guide probe is given by the positions in the Sensors subclass. When a guide object is used the coordinate of the object may be included.

APERTURE Class
    apertureid - Aperture identification
    Coordinate - Aperture coordinates
      diameter - Aperture diameter for circular apertures and fibers
        length - Aperture length for slit apertures
         width - Aperture width for slit apertures
       fiberid - Compact fiber identification
        slitid - Compact slit identification

The APERTURE class describes apertures, primarily those for spectrographs. The compact identification parameters combine a unique aperture number, an object type or beam number, the right ascension and declination of the object, and an object name or title. This is used when there are a large number of apertures such as in multi-fiber or multi-slit spectrographs.

INSTRUMENT Class
          name - Instrument name
        config - Instrument configuration
       Version - Instrument hardware and software versions
        status - Instrument status
       Sensors - Instrument sensor information
         focus - Instrument focus
  [Instrument] - Other instrument specific information

The INSTRUMENT class consists of a few common parameters and then specific instrument subclasses; for example, a HYDRA subclass. The specific instruments will have their own parameters in addition to the common ones. Note that while apertures, filters, dispersers, camera, and detector may be part of the instrument these are logically separated out. So only information which cannot be described by those classes is included.

DISPERSER Class
          name - Disper identification
       Sensors - Disperser sensor information

The DISPERSER class describes the dispersers in the optical path. Note that the effective central wavelength and dispersion are given in the PROJECTION class. The most common disperser parameter is a grating position or angle which are given by the appropriate sensor parameter.

FILTER Class
          name - Filter reference name (i.e. U, V, Gunn R)
          type - Filter technical name (i.e. OG480, CuS, KP1408)
      position - Filter bolt/wheel position

The FILTER class describes the filter(s) in use. A distinction is made between the astronomical or observer's filter name and the technical or observatory identification. Since many filter systems consist of a holder with several filters, the position parameter indicates which specific filter holder is in the optical path.

SHUTTER Class
       Version - Shutter hardware and software versions
        status - Shutter status/mode
       Sensors - Shutter sensor information
          open - Shutter time to open
         close - Shutter time to close

The SHUTTER class primarily provides information about the shutter speed as well as identifying the hardware.

CAMERA Class
          name - Camera name
        config - Camera configuration
       Version - Camera hardware and software versions
        status - Camera status
       Sensors - Camera sensors
         focus - Camera focus
      [Camera] - Additional camera subclasses

The CAMERA class provides a few generic parameters and specialized camera subclasses.

DETECTOR Class
          name - Detector name
        config - Detector configuration
       Version - Detector hardware and software versions
        status - Detector status
       Sensors - Detector sensor information
    Projection - Sky and disperser projections on the detector
    Coordinate - Coordinate of detector center
          size - Size of detector pixel raster

         nccds - Number of CCD detectors
         namps - Number of amplifiers
        Ccd[n] - CCD information
           nir - Number of IR detectors
         Ir[n] - IR detectors
    [Detector] - Other detectors
         Dewar - Dewar information

The DETECTOR class describes the detector characteristics, geometry, world coordinate system, and so forth. A detector is considered to be made up of one or more physical detectors such as CCDs or IR detectors. The physical detectors are described as a separate class. The CCD class is defined here, but the IR class is not yet defined. Other physical detector classes may be defined in the future. The reason for defining the DETECTOR class as a set of physical detectors is to allow detector systems which consist of a mosaic of physical detectors.

OBSERVATION Class
         title - Observation title or name
        status - Observation status
       Obstype - Observation type (object, flat, zero, dark, etc.)
    Coordinate - Observation coordinate
         obsid - Unique observation identification (usually observatory-wide)
       imageid - Image identification (one for each image in an observation)
     expreqest - Requested exposure time
       airmass - Airmass of observation
   airmass-mjd - Time of airmass
      error[n] - Error messages

The OBSERVATION class describes aspects of the observation which are not tied to the telescope, instrument, detector, etc. or given elsewhere. Some of these parameters may have the same value as other parameters. For instance the observation name may be the same as the object name and the coordinate may be the same as the telescope coordinate.

The observation and image identification are the fundamental parameters linking observations consisting of multiple images. This occurs, for example, with observations using multiple amplifiers in a CCD or multiple physical detectors in a mosaic detector. For more on this see section 2.1 and section 4.1.

The error messages report errors in the observation from all systems. Errors are not part of every class to minimize the number of error parameters. It is also reasonable because most errors are likely to abort the observation and so would not appear in a data header.

IMAGE Class
        simple - File conforms to FITS standard
        bitpix - Bits per pixel
         naxis - Number of image axes
      naxis[n] - Number of image pixels along each axis
        bscale - Scale factor
         bzero - Zero factor
        pcount - Number of pixels following image
        gcount - Number of groups
	extend - FITS extensions present
      xtension - FITS extension type
       extname - Extension name
        extver - Extension version
       inherit - Inherit global header in image extensions?
       nextend - Number of image extensions
      filename - Filename of originally recorded image
      Header - Time header is created (TIME class)
      Checksum - Image check sum information
       Version - Image creation system version
	   end - End of header

The IMAGE class describes the recorded image. Many of the parameters are directly related to those in the FITS standard. Other standard FITS parameters may be added. The END keyword is, of course, required at the end of the FITS header.

The use of the extension name and version is discussed in in section 4.1.

OBSERVER Class
       name[n] - Observer name
   proposer[n] - Proposer name
      proposal - Proposal/project title
    proposalid - Proposal/project identification
    comment[n] - Comments

The OBSERVER class records the name(s) of the observers, the name(s) of the proposer(s), and information about the proposal. The comment elements provide a mechanism for the observer to add comments.

PROCESSING Class
        status - Processing status
        log[n] - Processing log information
      Pipeline - Pipeline processing
     photoncal - Is the pixel data linearly related to photon counts?

The PROCESSING class gives information about any processing performed on the data after the observation is completed. Details of this are yet to be determined. One common type of processing is a standard pipeline. This processing is described by the PIPELINE class. One standard result of processing is calibration of the data into pixel values which are proportional to photon counts. The photoncal flag indicates if this type of calibration has been done. For CCD data this implies bias, zero level, dark count, and flat field calibrations.

ARCHIVE Class
          name - Archive name
       Version - Archiving system and software version
     archiveid - Archive identification of observation (if different)
    dictionary - Keyword dictionary name

The ARCHIVE class gives information about the archive system and the unique identifications for the observation. The dictionary element is important to tie the observation header to the precise definitions of each parameter.

COORDINATE Class
        system - Coordinate system
       equinox - Equinox of coordinate system
            ra - Right ascension
           dec - Declination
         epoch - Epoch

The COORDINATE class is used in many parent classes to specify coordinates such as for objects, the telescope pointing, and instrument apertures. Within a parent class there may be many coordinates which must be indexed appropriately. A coordinate consists of a coordinate system with equinox and the coordinate with epoch. Generally everything but the actual coordinate will default to a global value; i.e. all coordinates are likely to be specified in the same system.

ALTAZ Class
   altitude[n] - Altitude or elevation
    azimuth[n] - Azimuth
        mjd[n] - Time of altitude/azimuth

The ALTAZ class allows recording telescope altitude or elevation and azimuth for "altaz" telescopes.

TIME Class
          date - Date
           utc - Coordinated universal time
           mjd - Modified Julian date
           lst - Local siderial time
       timesys - Time system (UTC, TAI, etc)
          time - Time in specified system 

The TIME class provides detailed time stamps for times in parent classes. All times are in the specified time system except for utc. Time stamps in most classes are provided by just a modified Julian date rather than a TIME class element since the date, time, and lst can be derived from the modified Julian date.

VERSION Class
      hardware - Hardware version
      software - Software version

Many classes reference the VERSION class. In some cases either of the hardware or software versions may not make sense.

SENSORS Class
temperature[n] - Temperature sensor(s)
    voltage[n] - Voltage sensor(s)
   position[n] - Position sensor(s)
   pressure[n] - Voltage sensor(s)
   posangle[n] - Position angle sensor(s)
        mjd[n] - Time of sensor measurement in default time system

The SENSORS class is a general class for various engineering sensor information. In some cases specific sensor information, such as encoder positions for focus, grating tilts, etc., is defined separately in various classes. In other cases some of the sensor types will not be meaningful. Note that the MJD time of sensor class measurements are in the default time system.

ENVIRONMENT Class
temperature[n] - Temperature
   pressure[n] - Atmospheric pressure
   humidity[n] - Relative humidity
 watervapor[n] - Water vapor content
  windspeed[n] - Average wind speed over sampling period
    winddir[n] - Average wind direction over sampling period
  windgusts[n] - Maximum wind speed over sampling period
     period[n] - Sampling period
        mjd[n] - Time for parameters

The ENVIRONMENT class describes the environmental conditions at some place (outside the dome, inside the dome, etc.) and time.

DEWAR Class
          name - Dewar identification name
       Version - Dewar hardware and software versions
        status - Dewar status
       Sensors - Dewar sensors

The DEWAR class identifies the dewar used and various sensor data. Typically the dewar temperature is monitored.

PROJECTION Class
    raposangle - Position angle of RA axis relative to detector axes
   decposangle - Position angle of DEC axis relative to detector axes
   pixscale[i] - Pixel scale in arc seconds
      dispaxis - Dispersion axis on image
    wavelength - Approximate central wavelength on detector
   wdispersion - Pixel scale in wavelength

The PROJECTION class gives information about the projection of the sky and dispersion on the detector other than that given in the world coordinate system WCS class. Note that both a right ascension and declination position angle are needed to indicate right or left-handed axes.

CCD Class
          name - Identification of the CCD chip
       Version - Hardware and software version
       Sensors - Sensor information such as the temperature
         Dewar - CCD dewar information
      preflash - Preflash
          size - Effective size (unbinned pixels, driftscan)
       ccdsize - Size of CCD (if different from effective size)
    pixsize[i] - Size of pixel on each axis
    Coordinate - Coordinate information for the center of the CCD
         namps - Number of CCD amplifiers
        Amp[n] - Information about each amplifier used
     Badpixels - Information about bad pixels

The CCD class describes a single CCD chip and its dewar. Each CCD may use multiple amplifiers. The CCD may be part of a larger mosaic of CCDs in which case the section parameter defines the array coordinates of the region given by the size parameter. The amplifiers may be read out in drift scan mode in which case there is a distinction between the effective size and the CCD size. The sizes are the full sizes even if there is only a partial readout of the amplifier.

AMP Class
          name - Amplifier identification
           Exp - Exposure information
          size - Size of the full amplifier readout
       section - Section of full CCD read (in unbinned pixels)
       binning - Binning of pixels
    biassec[n] - Regions of image containing bias data (pre/overscan)
       trimsec - Region in image of good data
      maxnscan - Maximum averaged lines in drift scan
      minnscan - Minimum averaged lines in drift scan (first recorded line)
      Amptrans - CCD to amplifier transformation
    Imagetrans - CCD to image transformation
      Dettrans - CCD to detector transformation
           Wcs - World coordinate system
    Controller - Information about the controller

The AMP class is the basic unit of a CCD detector or mosaic CCD detector. The section parameter maps the amplifier data array to a part of the CCD data array which may, in turn, be mapped to a part of a CCD mosaic data array. The amplifier readout is expected to be stored in an image array as a data section and one or more bias sections. The bias sections contain prescan or overscan data. In drift scan mode some or all of the initial readout lines, those which have not been integrated over the maximum number of lines may or may not be discarded. The minscan parameter indicates how many lines have been integrated to form the first recorded line. Subsequent lines increase up to maxnscan.

PIXTRANS Class
       tm[i,j] - Transformation matrix
         tv[i] - Transformation vector
       section - Mapping of CCD section

The PIXTRANS class defines a linear coordinate transformation between CCD pixel coordinates and other pixel coordinate system. In particular transformation to amplifier, image, and detector coordinates. The section parameter uses the transformation to map the CCD section to a section in the other pixel coordinate system. In the definition of the header keywords a identify transformation may be specified by omitting the keywords.

BADPIXELS Class
     badpixels - Bad pixel description

The BADPIXELS class describes the location of known bad pixels in the CCD detector. This class is preliminary. The current usage is a parameter specifying a filename and the implementation is an IRAF mask file.

EXP Class
      Expstart - start of exposure (TIME class)
        Expend - end of exposure (TIME class)
       exptime - total active exposure time
      darktime - total time dark counts are accumulating
 nsubexposures - number of subexposures
 subutstart[n] - start 
 subexptime[n] - subexposure time

The EXP class describes the exposure intervals during which photons are collected. Often there will only be a single exposure but if there are subintegrations or the exposure is interrupted for clouds or other reasons the separate intervals can be recorded as a starting time and an exposure interval. When there is a series of equal length subexposures only the nsubexposures and subexptime parameters need be recorded.

WCS Class
    Coordinate - Reference coordinate
      crval[i] - Coordinate reference value
      crpix[i] - Coordinate reference pixel
       cd[i,j] - Coordinate rotation and scale matrix
      ctype[i] - Coordinate type
 distortion[n] - Distortion corrections

The WCS class encapsulates a coordinate mapping between image pixels and user coordinates. For direct imaging the user coordinates are usually equitorial. This class follows the IRAF standard representation which follows the FITS standard as much as possible. All the details of the FITS standard have not been worked out at this time. The latest FITS proposal is here . The system parameter is a COORDINATE class parameter which uses the coordinate system parameters of type, equinox, and epoch.

CONTROLLER Class
          name - Controller name
       Version - Controller hardware and software versions
        status - Controller status
       Sensors - Controller sensor information
          gain - Amplifier gain
     readnoise - Amplifier readout noise
      saturate - Saturation value
   integration - Amplifier integration time
      readtime - Amplifier pixel read time
        sample - Amplifier sampling method
  [Controller] - Additional controller parameters

The CONTROLLER class consists of a few common parameters and then specific controller subclasses. The specific controllers will have their own parameters in addition to the common ones. The current NOAO classes are KP2901 and ARCON.

ARCON Class
     gainindex - Gain index (index into Gain Table)
          gain - Predicted gain
     readnoise - Predicted readout noise
      wavemode - Waveform options enabled
      wavedate - Waveform compilation date

The ARCON class contains parameters specific to the ARCON controller.

OBSTYPE Class
          type - Standardized observation types (flat, dark, object, focus, etc.)
          Lamp - Calibration lamp
      Focusseq - Focus sequence information

The OBSTYPE class describes the type of observation. The types have standardized values so that software may identify calibration and astronomical observations. For calibration observations this class gives additional calibration information.

LAMP Class
          name - Lamp name
          type - Lamp type from standard list
       Sensors - Lamp sensors

The LAMP class specifies information about calibration lamps. The lamp type is standardized for arc lamps so that software may determine the type of arc lines observed.

FOCUSSEQ Class
    nexposures - Number of focus exposures in a sequence
         start - Starting instrumental focus value
          step - Step in instrumental focus value
         shift - Shift between focus exposures in multiple exposure sequence

The FOCUSSEQ class describes focus calibration sequences. A sequence may be a set of independent images at different focus values or a single multiple exposure image with shifts of the detector (either by electronically moving the image, moving the detector, or moving the telescope) between exposures and focus values.

CHECKSUM Class
        header - Header checksum
          data - Data checksum
       version - Checksum version

The CHECKSUM class models the proposed FITS checksum standard for verifying the data integrity.

PIPELINE Class
          name - Name of pipeline
       Version - Version
    [Pipeline] - Pipeline classes

The PIPELINE class describes standardized processing that is applied to the image data after the observation is completed. The standardized pipeline processing is characterized by a name and version. The pipeline is presumed to be well-documented. Any log information is recorded in the processing log elements. The individual [Pipeline] classes give specific parameters of the pipeline.

For example a pipeline might be "Standard IRAF CCDPROC Pipeline" and the CCDPROC class would be defined to have the parameters produced by CCDPROC -- OVERSCAN, FLATCOR, etc. --that include the calibration images used.

ADC Class
       Version - ADC hardware and software versions
        status - ADC status
       Sensors - ADC sensor information

The ADC class describes the atmospheric dispersion compensation system.

ACTIVE Class
       Version - Active optics hardware and software versions
        status - Active optics status
       Sensors - Active optics sensor information
     frequency - Active optics frequency

The ACTIVE class describes the active optics system. The frequency parameter indicates the update frequency.

ADAPTIVE Class
       Version - Adaptive optics hardware and software versions
        status - Adaptive optics status
       Sensors - Adaptive optics sensor information
     frequency - Adaptive optics frequency
          type - Wavefront monitor object type
    Coordinate - Wavefront monitor object coordinate

The ADAPTIVE class describes the adaptive optics system. The frequency parameter indicates the update frequency. If a natural object is used for the wavefront monitoring its coordinate is given. In that case it is likely that the guider information is not needed.

CHOP Class
       Version - Chopping hardware and software versions
        status - Chopping status
       Sensors - Chopping sensor information
     frequency - Chopping frequency
        cycles - Chopping cycles
         angle - Chopping angle
      distance - Chopping distance

The CHOP class describes the chopping system such as a chopping secondary.

NOD Class
       Version - Nodding hardware and software versions
        status - Nodding status
       Sensors - Nodding sensor information
     frequency - Nodding frequency
        cycles - Nodding cycles
         angle - Nodding angle
      distance - Nodding distance

The NOD class describes the nodding system.

4. The FITS Header

This section defines the mapping of the logical observation header to the FITS header. There are, of course, many possible mappings. The logical header is very general and could be used by many observatories. The particular mapping given here is for NOAO, though it could also be used by other observatories such as Gemini.

Every piece of information identified by the logical model has both a logical name and a FITS keyword. The logical names are obtained by combining the element names from the root class, through the subclasses, to a final node element using a "dot" delimiter. By convention the root "Observe" class name is not included. As an example, the right ascension of an observed object is:

        Object[n].Coordinate.ra

The array elements are generally left unexpanded and the array index number is used as a numerical suffix in the FITS keyword.

The FITS keyword names are eight or fewer characters as required by the FITS standard. The FITS keyword names will be comprised of upper case alphabetic characters, digits, and hyphens. The keywords will begin with an alphabetic character and hyphens will only be used for keywords already in common use or defined in the basic FITS standard.

Because of the limitation to eight characters the FITS keywords must be severely abbreviated. An attempt is made to use straightforward abbreviations. Also related keywords will generally use a common two or three character prefix. The final reference for a keyword is the keyword dictionary and any new keywords must be selected to avoid conflict with previously defined keywords.

There are a large number of items in the logical header. However, there is no requirement that all them appear in the FITS header. There are several reasons why items will not appear. Some items do not make sense for particular instruments and some items may not be available to the data acquisition system.

In addition to missing items the mapping from the logical header to the FITS header need not be one-to-one. While the logical header identifies each possible item separately, many items will have the same value. These can be mapped to a single FITS keyword. An example of this is the coordinate system identification which may apply to all coordinates; i.e. all coordinates are given in FK5 with equinox J2000. Items may also map to the same keyword because there is no precise value but a related value is approximately correct. An example of this is if the location of the center of the detector on the sky is not known then the telescope position my be substituted.

The mapping between the logical header items and the FITS keywords is given in Table 1. This is automatically extracted from the reference dictionary. The table gives the primary FITS keyword, the default keyword (which may itself default to another keyword), and the logical name. If an item does not have an default then if it is missing the information is undefined.

The indexed items have the following convention. The first element either uses a separate keyword if one is given or uses the keyword without a numeric suffix. Further elements have the index as a numeric suffix with leading zeros to make up the number of digits indicated. For example, the first astronomical target object (and in most cases the only one) uses the keyword OBJNAME or OBJECT. The second object uses OBJ0002. The first (and possibly only) filter is FILTER and the second filter is FILTER02.

4.1 FITS Image Extension Keywords

The FITS Image Extension format provides two keywords for each image; an extension name, EXTNAME, and an extension version, EXTVER. It is tempting to use these for the fundamental identification discussed in in section 2.1; that is, the unique observation identification common to all images from the same observation and the amplifier numbers for the detector. However, these keywords disappear when an image unit is separated into simple single FITS images. So the observation identification and amplifier number are given by other keywords (OBSID and IMAGEID).

Instead the extension name is defined for user selection. The proposed IRAF FITS Image Extension syntax allows selection of an image in the extension file by its position in the file, by its extension name, or by its extension version. There is no requirement that the extension name and version be unique so a combination of the two is also an option. One constraint is that reference by the extension name and/or version be identifiably different from the position number. This means the extension name may not begin with a number and the extension version may not be given without some qualifier.

For use at NOAO the selection options will be the position in the file or an easily typed extension name. The name uses the prefix "im" followed by the image identification. Thus, a particular amplifier readout in a FITS extension image, say obs001, would be referenced as either obj001[3] or obj001[im3]. The first case references the third image in the file (not necessarily image number 3) and the second case references image (amplifier) number 3 independently of its location in the file. The extension version is optional but if included it will be the image identification number.

4.2 Time Stamps

There are time stamps for most of the measurement parameters defined by the logical header. These time stamps are specified to be modified Julian dates with the fraction of a date based on a UTC time. The keyword mapping provides for separate keywords. However, most of the time stamps do not need to be more accurate than the time of observation or are accumulated at the time the image header is created by the software. Therefore, most of the time stamps will default either to MJDHDR, the time at which the header is created, or MJD-OBS, the time of the observation. Note that the keyword implementation explicitly defines the time of the observation as the start of the integration; i.e. the keywords DATE-OBS, MJD-OBS, UTC, and LST map to the Expstart element of the Exposure class.

4.3 Coordinate Systems

There are many logical coordinates, as instances of the COORDINATE class, in the model. In practice most of the coordinates will have common values or at least common coordinate systems (the system, the equinox, and the epoch). The FITS keyword mapping provides separate keywords for every logical coordinate. However, generally the keywords will be missing leading to the default keywords. The default keywords may, in turn, default to yet more common or global keywords. Finally if the global keywords are missing the keyword dictionary defines the system used for all coordinates.

The mapping uses the following logical scheme. The defaults lead either to the object or telescope coordinates. In particular, the instrument aperture coordinates default to the object coordinates while the guider and detector coordinates default to the telescope coordinates. Note that sub-elements of the detector, such as CCDs in a mosaic default to the detector coordinates which, in turn, default to the telescope coordinates. This scheme allows using two sets of keywords to give, for example, coordinates in a telescope system and an object or catalog system. The telescope system may use epoch of observation coordinates while the object or catalog system may use a standard epoch such as B1950 or J2000.

The telescope and object coordinate may default to a common set of more global keywords. If all coordinates are consistently given in the same coordinate system and epoch then these keywords explicitly identify them. These global keywords -- RADECSYS, EQUINOX, and EPOCH -- can be missing in which case the keyword dictionary defines the defaults. In particular, if there are no keywords for the coordinate system and epoch the coordinates are in the FK5 system with equinox J2000 and the coordinate epoch is the epoch of date as defined by the MJD-OBS keyword. However, it is recommended that the coordinate system and epoch be explicit in the FITS header.