Because the signal read from CCDs is digitized as a 16-bit integer, raw CCD images are usually written into a 16-bit integer FITS files.
Most PC computing languages do not read or write data directly in this format because computers with Intel CPUs store data in "little-endian" byte order. Programmers should take care that their software reads and writes array values properly. There are several ways to store 16-bit unsigned CCD image data in a FITS file, depending on the quality and dynamic range of the CCD. Since amateur CCDs actually produce 12 to 14 bits of information, one option is to shift the 16bit pixel values one bit to the left and store the data in the range between 0 0 0 0 and 7FFF hex. Alternatively, if the dynamic range of the device is limited, then values above 32767 may be truncated at 32767. Another option, one that is most often chosen, is to include the BZERO keyword in the header and to offset the zero point by 32768.
32-bit Integer Data. Thirty-two-bit integers must be twos-complement signed binary integers contained in four bytes, with the most significant byte first; that is, in big-endian byte order. Array values run from 80000000 hex to 7FFFFFFF hex, or from decimal -2.139 trillion to +2.139 trillion.
Floating-Point Data. Floating-point array data must conform to the ANSI/ IEEE-754 standard, which is described in the NASA-sponsored NOST draft standard for FITS. Data stored in IEEE-compliant 32-bit floating-point format has a precision of 1 part in 8,400,000 over a range of more than 75 orders of magnitude—more than adequate for lossless storage of processed CCD images. After calibration and processing, CCD image data can be stored in 32-bit floating-point format without fear of data loss.
Was this article helpful?