A FITS file contains an unlimited number of extensions, each of which can contain image data or binary tabulated data. Each extension has a meta-data ``header'' that describes the data format for that extension. The FITS file itself contains a primary header that can contain several standard keywords, as well as unlimited user-definable keywords. The ROTSE-III keywords are described in Section C.1 and C.2. The FITS format is, as the name suggests, extremely flexible.
The primary extension (number 0) can only contain an image, and cannot contain an arbitrary data structure. Each additional extension can contain either image data or binary tabulated data. None of the ROTSE-III FITS files contains image data beyond extension 0. The FITS standard also allows for simple image compression from 32-bit floating point values to 16-bit integer values using simple scaling. The standard header keywords BZERO and BSCALE are used to compress and uncompress an image in the following way:
Compress: Integer Value = (Float Value - BZERO) / BSCALE
Uncompress: Float Value = (Integer Value) * BSCALE + BZERO
FITS images conform to the World Coordinate System (WCS) standard. With WCS information in the image header, an image viewer is able to translate and coordinate values to RA and Dec. Currently, we only have a simple WCS rotation matrix implemented, so the RA and Dec positions are only approximate. Extensions to WCS for a more refined transformation exist, but have not yet been implemented in our analysis code.
The IRAF program suite contains many tools for working with FITS images. For various reasons, we do not use the IRAF suite. Many of our basic image processing tools (makedark and makeflat for example) are based on Stuart Marshall's ``miraf'' code. For other functions, we have our own pipeline code that runs much faster in C and IDL.