Why use the CFITSIO Library?
There are many reasons why CFITSIO is the most widely used FITS
CFITSIO is the result of many man-years of development with major
contributions from external projects such as the data centers for
INTEGRAL (ISDC), XMM, and Chandra space missions.
- Provides 100% complete support for the FITS Standard, including:
- all FITS datatypes, including bit, byte, logical, and complex
- both signed and unsigned integer support
- vector columns
- variable length vector columns
- null values in images and table columns
- Supports many proposed FITS conventions that are widely used but
not yet standard, including:
CHECKSUM keyword convention
CONTINUED long string value keywords (longer than 68 characters)
- ESO HIERARCH convention for keyword names longer than 8 characters
- Hierarchical Grouping convention (used by INTEGRAL)
- Keyword units convention (in square brackets in the comment field)
- 64-bit long-integer datatypes in FITS images and tables.
- C++, Fortran, Perl, and Tcl wrappers are available for calling CFITSIO
from other languages
- The subroutine interface is based on an abstract data model concept which
hides the low level FITS format details from users.
- The CFITSIO data access routines are simple and intuitive. The basic
interface is defined in only 15 pages of the
CFITSIO Quick Start Guide.
- A dozen simple yet powerful
are provided to illustrate
how to use CFITSIO.
- Supports creating new files based on ASCII template file (from the ISDC)
- Supports implicit datatype conversion when reading or writing FITS data
- CFITSIO uses plug-in I/O drivers (developed at the ISDC) which makes it
easy to to support a variety of physical file formats, including:
- IRAF images (code provided by Doug Mink)
- raw binary data files
- FTP, HTTP, and ROOT file access (code provided by ISDC)
- externally compressed files (.gz, .Z, and .zip)
- files piped on 'stdin' or 'stdout'
- 'Tile Compressed' images which are actually stored in binary tables
- files in shared memory segments (code provide by ISDC)
- files is core memory (widely used in real-time data acquisition)
- Has a simple set of self-contained WCS routines, plus has routines to
cleanly interface with other extensive WCS library
(but has no linkage dependency on other WCS libraries)
- The high performance lexical parser (designed by Uwe Lammers) allows
completely general table filtering and is as fast as compiled C code.
- The parser supports filtering of tables by region files and GTI files.
- CFITSIO's Virtual File syntax supports many features, including:
performing on-the-fly arithmetic on the value of image pixels
extracting subimages from larger images
modifying or creating table columns on the fly
creating images by binning table columns
- The I/O speed has been highly optimized and is largely limited only
by the speed of the underlying physical device; Sustained I/O data rates
of more than 40MB/s are possible on current generation magnetic disks.
- Has modest memory requirements; FITS files sizes are not limited by the
amount of available memory.
- Supports the 'large file' specification and can read and write FITS files
up to 6 terabytes in size.
- Extensive error reporting is built into the interface, which aids both
developers and end users in debugging problems.
- CFITSIO can be built on nearly every Unix platform with the usual
'./configure' and 'make' procedure. It supports 64-bit architectures.
- A binary .dll library is available for Windows platforms.