Simple FITS access routines


Functions

char * qfits_query_hdr (const char *filename, const char *keyword)
 Retrieve the value of a key in a FITS header.
char * qfits_query_ext (const char *filename, const char *keyword, int xtnum)
 Retrieve the value of a keyin a FITS extension header.
int qfits_query_n_ext (const char *filename)
 Counts the number of extensions in a FITS file.
int qfits_query_nplanes (const char *filename, int extnum)
 Counts the number of planes in a FITS extension.
char * qfits_pretty_string (const char *s)
 Clean out a FITS string value.
int qfits_is_boolean (const char *s)
 Identify if a FITS value is boolean.
int qfits_is_int (const char *s)
 Identify if a FITS value is an int.
int qfits_is_float (const char *s)
 Identify if a FITS value is float.
int qfits_is_complex (const char *s)
 Identify if a FITS value is complex.
int qfits_is_string (const char *s)
 Identify if a FITS value is string.
int qfits_get_type (const char *s)
 Identify the type of a FITS value given as a string.
char * qfits_query_card (const char *filename, const char *keyword)
 Query a card in a FITS (main) header by a given key.
int qfits_replace_card (const char *filename, const char *keyword, const char *substitute)
 Replace a card in a FITS (main) header by a given card.
const char * qfits_version (void)
 Return the current QFITS version.

Detailed Description

This module offers a number of very basic low-level FITS access routines.

Function Documentation

int qfits_get_type const char *  s  ) 
 

Identify the type of a FITS value given as a string.

Parameters:
s FITS value as a string
Returns:
integer naming the FITS type
Returns the following value:

  • QFITS_UNKNOWN (0) for an unknown type.
  • QFITS_BOOLEAN (1) for a boolean type.
  • QFITS_INT (2) for an integer type.
  • QFITS_FLOAT (3) for a floating-point type.
  • QFITS_COMPLEX (4) for a complex number.
  • QFITS_STRING (5) for a FITS string.

int qfits_is_boolean const char *  s  ) 
 

Identify if a FITS value is boolean.

Parameters:
s FITS value as a string
Returns:
int 0 or 1
Identifies if a FITS value is boolean.

int qfits_is_complex const char *  s  ) 
 

Identify if a FITS value is complex.

Parameters:
s FITS value as a string
Returns:
int 0 or 1
Identifies if a FITS value is complex.

int qfits_is_float const char *  s  ) 
 

Identify if a FITS value is float.

Parameters:
s FITS value as a string
Returns:
int 0 or 1
Identifies if a FITS value is float.

int qfits_is_int const char *  s  ) 
 

Identify if a FITS value is an int.

Parameters:
s FITS value as a string
Returns:
int 0 or 1
Identifies if a FITS value is an integer.

int qfits_is_string const char *  s  ) 
 

Identify if a FITS value is string.

Parameters:
s FITS value as a string
Returns:
int 0 or 1
Identifies if a FITS value is a string.

char* qfits_pretty_string const char *  s  ) 
 

Clean out a FITS string value.

Parameters:
s pointer to allocated FITS value string.
Returns:
pointer to statically allocated character string
From a string FITS value like 'marvin o''hara', remove head and tail quotes, replace double '' with simple ', trim blanks on each side, and return the result in a statically allocated area.

Examples:

  • ['o''hara'] becomes [o'hara]
  • [' H '] becomes [H]
  • ['1.0 '] becomes [1.0]

char* qfits_query_card const char *  filename,
const char *  keyword
 

Query a card in a FITS (main) header by a given key.

Parameters:
filename Name of the FITS file to check.
keyword Where to read a card in the header.
Returns:
Allocated string containing the card or NULL

char* qfits_query_ext const char *  filename,
const char *  keyword,
int  xtnum
 

Retrieve the value of a keyin a FITS extension header.

Parameters:
filename name of the FITS file to browse.
keyword name of the FITS key to look for.
xtnum xtension number
Returns:
pointer to statically allocated character string
Same as qfits_query_hdr but for extensions. xtnum starts from 1 to the number of extensions. If xtnum is zero, this function is strictly identical to qfits_query_hdr().

char* qfits_query_hdr const char *  filename,
const char *  keyword
 

Retrieve the value of a key in a FITS header.

Parameters:
filename Name of the FITS file to browse
keyword Name of the keyword to find
Returns:
pointer to statically allocated character string
Provide the name of a FITS file and a keyword to look for. The input file is memory-mapped and the first keyword matching the requested one is located. The value corresponding to this keyword is copied to a statically allocated area, so do not modify it or free it.

The input keyword is first converted to upper case and expanded to the HIERARCH scheme if given in the shortFITS notation.

This function is pretty fast due to the mmapping. Due to buffering on most Unixes, it is possible to call many times this function in a row on the same file and do not suffer too much from performance problems. If the file contents are already in the cache, the file will not be re-opened every time.

It is possible, though, to modify this function to perform several searches in a row. See the source code.

Returns NULL in case the requested keyword cannot be found.

int qfits_query_n_ext const char *  filename  ) 
 

Counts the number of extensions in a FITS file.

Parameters:
filename Name of the FITS file to browse.
Returns:
int Counts how many extensions are in the file. Returns 0 if no extension is found, and -1 if an error occurred.

int qfits_query_nplanes const char *  filename,
int  extnum
 

Counts the number of planes in a FITS extension.

Parameters:
filename Name of the FITS file to browse.
extnum Extensin number
Returns:
int Counts how many planes are in the extension. Returns 0 if no plane is found, and -1 if an error occurred.

int qfits_replace_card const char *  filename,
const char *  keyword,
const char *  substitute
 

Replace a card in a FITS (main) header by a given card.

Parameters:
filename Name of the FITS file to modify.
keyword Where to substitute a card in the header.
substitute What to replace the line with.
Returns:
int 0 if Ok, -1 otherwise
Replaces a whole card (80 chars) in a FITS header by a given FITS line (80 chars). The replacing line is assumed correctly formatted and containing at least 80 characters. The file is modified: it must be accessible in read/write mode.

The input keyword is first converted to upper case and expanded to the HIERARCH scheme if given in the shortFITS notation.

Returns 0 if everything worked Ok, -1 otherwise.

const char* qfits_version void   ) 
 

Return the current QFITS version.

Returns:
the QFITS version