\contentsline {chapter}{\numberline {1}Introduction }{1} \contentsline {chapter}{\numberline {2} Creating FITSIO/CFITSIO }{3} \contentsline {section}{\numberline {2.1}Building the Library}{3} \contentsline {section}{\numberline {2.2}Testing the Library}{5} \contentsline {section}{\numberline {2.3}Linking Programs with FITSIO}{7} \contentsline {section}{\numberline {2.4}Getting Started with FITSIO}{7} \contentsline {section}{\numberline {2.5}Example Program}{7} \contentsline {section}{\numberline {2.6}Legal Stuff}{9} \contentsline {section}{\numberline {2.7}Acknowledgements}{9} \contentsline {chapter}{\numberline {3} A FITS Primer }{11} \contentsline {chapter}{\numberline {4} Extended File Name Syntax }{13} \contentsline {section}{\numberline {4.1}Overview}{13} \contentsline {section}{\numberline {4.2}Filetype}{16} \contentsline {subsection}{\numberline {4.2.1}Notes about the root filetype}{16} \contentsline {subsection}{\numberline {4.2.2}Notes about the shmem filetype:}{18} \contentsline {section}{\numberline {4.3}Base Filename}{19} \contentsline {section}{\numberline {4.4}Output File Name when Opening an Existing File}{20} \contentsline {section}{\numberline {4.5}Template File Name when Creating a New File}{22} \contentsline {section}{\numberline {4.6}HDU Location Specification}{22} \contentsline {section}{\numberline {4.7}Image Section}{23} \contentsline {section}{\numberline {4.8}Column and Keyword Filtering Specification}{24} \contentsline {section}{\numberline {4.9}Row Filtering Specification}{25} \contentsline {subsection}{\numberline {4.9.1}General Syntax}{26} \contentsline {subsection}{\numberline {4.9.2}Vector Columns}{29} \contentsline {subsection}{\numberline {4.9.3}Good Time Interval Filtering}{30} \contentsline {subsection}{\numberline {4.9.4}Spatial Region Filtering}{31} \contentsline {subsection}{\numberline {4.9.5}Example Row Filters}{32} \contentsline {section}{\numberline {4.10} Binning or Histogramming Specification}{34} \contentsline {chapter}{\numberline {5}Template Files }{37} \contentsline {section}{\numberline {5.1}Detailed Template Line Format}{37} \contentsline {section}{\numberline {5.2}Auto-indexing of Keywords}{38} \contentsline {section}{\numberline {5.3}Template Parser Directives}{39} \contentsline {section}{\numberline {5.4}Formal Template Syntax}{39} \contentsline {section}{\numberline {5.5}Errors}{40} \contentsline {section}{\numberline {5.6}Examples}{40} \contentsline {chapter}{\numberline {6}FITSIO Conventions and Guidelines }{43} \contentsline {section}{\numberline {6.1}CFITSIO Size Limitations}{43} \contentsline {section}{\numberline {6.2}Multiple Access to the Same FITS File}{44} \contentsline {section}{\numberline {6.3}Current Header Data Unit (CHDU)}{44} \contentsline {section}{\numberline {6.4}Subroutine Names}{44} \contentsline {section}{\numberline {6.5}Subroutine Families and Datatypes}{45} \contentsline {section}{\numberline {6.6}Implicit Data Type Conversion}{45} \contentsline {section}{\numberline {6.7}Data Scaling}{46} \contentsline {section}{\numberline {6.8}Error Status Values and the Error Message Stack}{46} \contentsline {section}{\numberline {6.9}Variable-Length Array Facility in Binary Tables}{47} \contentsline {section}{\numberline {6.10}Support for IEEE Special Values}{48} \contentsline {section}{\numberline {6.11}When the Final Size of the FITS HDU is Unknown}{49} \contentsline {section}{\numberline {6.12}Local FITS Conventions supported by FITSIO}{49} \contentsline {subsection}{\numberline {6.12.1}Support for Long String Keyword Values.}{49} \contentsline {subsection}{\numberline {6.12.2}Arrays of Fixed-Length Strings in Binary Tables}{50} \contentsline {subsection}{\numberline {6.12.3}Keyword Units Strings}{51} \contentsline {subsection}{\numberline {6.12.4}HIERARCH Convention for Extended Keyword Names}{51} \contentsline {section}{\numberline {6.13}Optimizing Code for Maximum Processing Speed}{52} \contentsline {subsection}{\numberline {6.13.1}Background Information: How CFITSIO Manages Data I/O}{52} \contentsline {chapter}{\numberline {7} The CFITSIO Iterator Function }{57} \contentsline {chapter}{\numberline {8} Basic Interface Routines }{59} \contentsline {section}{\numberline {8.1}FITSIO Error Status Routines }{59} \contentsline {section}{\numberline {8.2}File I/O Routines}{60} \contentsline {section}{\numberline {8.3}Keyword I/O Routines}{61} \contentsline {section}{\numberline {8.4}Data I/O Routines}{62} \contentsline {chapter}{\numberline {9} Advanced Interface Subroutines }{65} \contentsline {section}{\numberline {9.1}FITS File Open and Close Subroutines: }{65} \contentsline {section}{\numberline {9.2}HDU-Level Operations }{68} \contentsline {section}{\numberline {9.3}Define or Redefine the structure of the CHDU }{70} \contentsline {section}{\numberline {9.4}FITS Header I/O Subroutines}{71} \contentsline {subsection}{\numberline {9.4.1}Header Space and Position Routines }{71} \contentsline {subsection}{\numberline {9.4.2}Read or Write Standard Header Routines }{72} \contentsline {subsection}{\numberline {9.4.3}Write Keyword Subroutines }{73} \contentsline {subsection}{\numberline {9.4.4}Insert Keyword Subroutines }{75} \contentsline {subsection}{\numberline {9.4.5}Read Keyword Subroutines }{76} \contentsline {subsection}{\numberline {9.4.6}Modify Keyword Subroutines }{78} \contentsline {subsection}{\numberline {9.4.7}Update Keyword Subroutines }{79} \contentsline {subsection}{\numberline {9.4.8}Delete Keyword Subroutines }{79} \contentsline {section}{\numberline {9.5}Data Scaling and Undefined Pixel Parameters }{79} \contentsline {section}{\numberline {9.6}FITS Primary Array or IMAGE Extension I/O Subroutines }{81} \contentsline {section}{\numberline {9.7}FITS ASCII and Binary Table Data I/O Subroutines}{84} \contentsline {subsection}{\numberline {9.7.1}Column Information Subroutines }{84} \contentsline {subsection}{\numberline {9.7.2}Low-Level Table Access Subroutines }{86} \contentsline {subsection}{\numberline {9.7.3}Edit Rows or Columns }{87} \contentsline {subsection}{\numberline {9.7.4}Read and Write Column Data Routines }{88} \contentsline {section}{\numberline {9.8}Row Selection and Calculator Routines }{91} \contentsline {section}{\numberline {9.9}Celestial Coordinate System Subroutines }{93} \contentsline {section}{\numberline {9.10}File Checksum Subroutines }{94} \contentsline {section}{\numberline {9.11} Date and Time Utility Routines }{95} \contentsline {section}{\numberline {9.12}General Utility Subroutines }{96} \contentsline {chapter}{\numberline {10} Summary of all FITSIO User-Interface Subroutines }{103} \contentsline {chapter}{\numberline {11} Parameter Definitions }{111} \contentsline {chapter}{\numberline {12} FITSIO Error Status Codes }{117}