Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F93507581
fitshead.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Nov 29, 07:54
Size
18 KB
Mime Type
text/x-c
Expires
Sun, Dec 1, 07:54 (2 d)
Engine
blob
Format
Raw Data
Handle
22652407
Attached To
R1448 Lenstool-HPC
fitshead.h
View Options
/*** File fitshead.h FITS header access subroutines
*** February 26, 2004
*** By Doug Mink, dmink@cfa.harvard.edu
*** Harvard-Smithsonian Center for Astrophysics
*** Copyright (C) 1996-2004
*** Smithsonian Astrophysical Observatory, Cambridge, MA, USA
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Correspondence concerning WCSTools should be addressed as follows:
Internet email: dmink@cfa.harvard.edu
Postal address: Doug Mink
Smithsonian Astrophysical Observatory
60 Garden St.
Cambridge, MA 02138 USA
*/
/* Declarations for subroutines in hget.c, hput.c, and iget.c */
#ifndef _fitshead_h_
#define _fitshead_h_
#include <sys/types.h>
#ifdef __cplusplus
/* C++ prototypes */
extern
"C"
{
/* Subroutines in hget.c */
int
hgeti2
(
/* Extract short value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
short
*
val
);
/* short integer value (returned) */
int
hgeti4c
(
/* Extract int value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
const
char
mchar
,
/* WCS to use */
int
*
val
);
/* integer value (returned) */
int
hgeti4
(
/* Extract int value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
int
*
val
);
/* integer value (returned) */
int
hgetr4
(
/* Extract float value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
float
*
val
);
/* float value (returned) */
int
hgetr8c
(
/* Extract double value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
const
char
mchar
,
/* WCS to use */
double
*
val
);
/* double value (returned) */
int
hgetr8
(
/* Extract double value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
double
*
val
);
/* double value (returned) */
int
hgetra
(
/* Extract right ascension from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
double
*
ra
);
/* RA in degrees (returned) */
int
hgetdec
(
/* Extract declination from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
double
*
dec
);
/* Dec in degrees (returned) */
int
hgetdate
(
/* Extract date from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
double
*
date
);
/* Date in fractional years (returned) */
int
hgetl
(
/* Extract boolean value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
int
*
lval
);
/* 1 if T, 0 if F (returned) */
int
hgetsc
(
/* Extract string value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
const
char
mchar
,
/* WCS to use */
const
int
lstr
,
/* maximum length of returned string */
char
*
string
);
/* null-terminated string value (returned) */
int
hgets
(
/* Extract string value from FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
const
int
lstr
,
/* maximum length of returned string */
char
*
string
);
/* null-terminated string value (returned) */
int
hgetm
(
/* Extract string from multiple keywords */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
const
int
lstr
,
/* maximum length of returned string */
char
*
string
);
/* null-terminated string value (returned) */
int
hgetndec
(
/* Find number of decimal places in FITS value*/
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
,
/* FITS keyword */
int
*
ndec
);
/* number of decimal places (returned) */
char
*
hgetc
(
/* Return pointer to value for FITS keyword */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
);
/* FITS keyword */
char
*
ksearch
(
/* Return pointer to keyword in FITS header */
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
);
/* FITS keyword */
char
*
blsearch
(
const
char
*
hstring
,
/* FITS header string */
const
char
*
keyword
);
/* FITS keyword */
char
*
strsrch
(
/* Find string s2 within string s1 */
const
char
*
s1
,
/* String to search */
const
char
*
s2
);
/* String to look for */
char
*
strnsrch
(
/* Find string s2 within string s1 */
const
char
*
s1
,
/* String to search */
const
char
*
s2
,
/* String to look for */
const
int
ls1
);
/* Length of string being searched */
char
*
strcsrch
(
/* Find string s2 within string s1 (no case) */
const
char
*
s1
,
/* String to search */
const
char
*
s2
);
/* String to look for */
char
*
strncsrch
(
/* Find string s2 within string s1 (no case) */
const
char
*
s1
,
/* String to search */
const
char
*
s2
,
/* String to look for */
const
int
ls1
);
/* Length of string being searched */
int
hlength
(
/* Set length of unterminated FITS header */
char
*
header
,
/* FITS header */
const
int
lhead
);
/* Allocated length of FITS header */
int
gethlength
(
/* Get length of current FITS header */
char
*
header
);
/* FITS header */
double
str2ra
(
/* Return RA in degrees from string */
const
char
*
in
);
/* Character string (hh:mm:ss.sss or dd.dddd) */
double
str2dec
(
/* Return Dec in degrees from string */
const
char
*
in
);
/* Character string (dd:mm:ss.sss or dd.dddd) */
int
isnum
(
/* Return 1 if number, else 0 */
const
char
*
string
);
/* Character string which may be a number */
int
notnum
(
/* Return 0 if number, else 1 */
const
char
*
string
);
/* Character string which may be a number */
int
numdec
(
/* Return number of decimal places in number */
const
char
*
string
);
/* Character string which may be a number */
char
*
getltime
();
/* Return current local time in ISO format */
char
*
getutime
();
/* Return current UT as an ISO-format string */
/* Subroutines in iget.c */
int
mgetstr
(
/* Extract string from multiline FITS keyword */
const
char
*
hstring
,
/* FITS header string */
const
char
*
mkey
,
/* FITS keyword root _n added for extra lines */
const
char
*
keyword
,
/* IRAF keyword */
const
int
lstr
,
/* maximum length of returned string */
char
*
string
);
/* null-terminated string value (returned) */
int
mgeti4
(
/* Extract int from multiline FITS keyword */
const
char
*
hstring
,
/* FITS header string */
const
char
*
mkey
,
/* FITS keyword root _n added for extra lines */
const
char
*
keyword
,
/* IRAF keyword */
int
*
ival
);
/* int keyword value (returned) */
int
mgetr8
(
/* Extract double from multiline FITS keyword */
const
char
*
hstring
,
/* FITS header string */
const
char
*
mkey
,
/* FITS keyword root _n added for extra lines */
const
char
*
keyword
,
/* IRAF keyword */
double
dval
);
/* double keyword value (returned) */
int
igeti4
(
/* Extract int from IRAF keyword string */
const
char
*
hstring
,
/* Multiline IRAF keyword string value */
const
char
*
keyword
,
/* IRAF keyword */
int
*
val
);
/* int value (returned) */
int
igetr4
(
/* Extract float from IRAF keyword string */
const
char
*
hstring
,
/* Multiline IRAF keyword string value */
const
char
*
keyword
,
/* IRAF keyword */
float
*
val
);
/* float value (returned) */
int
igetr8
(
/* Extract double from IRAF keyword string */
const
char
*
hstring
,
/* Multiline IRAF keyword string value */
const
char
*
keyword
,
/* IRAF keyword */
double
*
val
);
/* double value (returned) */
int
igets
(
/* Extract string from IRAF keyword string */
const
char
*
hstring
,
/* Multiline IRAF keyword string value */
const
char
*
keyword
,
/* IRAF keyword */
const
int
lstr
,
/* maximum length of returned string */
char
*
string
);
/* null-terminated string value (returned) */
char
*
igetc
(
/* Extract string from IRAF keyword string */
const
char
*
hstring
,
/* Multiline IRAF keyword string value */
const
char
*
keyword
);
/* IRAF keyword */
/* Subroutines in hput.c */
/* All hput* routines return 0 if successful, else -1 */
int
hputi2
(
/* Implant short value into FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
short
ival
);
/* short value */
int
hputi4
(
/* Implant int value into FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
int
ival
);
/* int value */
int
hputr4
(
/* Implant float value into FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
float
rval
);
/* float value */
int
hputr8
(
/* Implant short into FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
double
dval
);
/* double value */
int
hputnr8
(
/* double with specified number of decimal places */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
int
ndec
,
/* Number of decimal places in keyword value */
const
double
dval
);
/* double value */
int
hputs
(
/* Quoted character string into FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
char
*
cval
);
/* Character string value */
int
hputm
(
/* Quoted character string, mutiple keywords */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
char
*
cval
);
/* Character string value */
int
hputcom
(
/* Add comment to keyword line in FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
char
*
comment
);
/* Comment string */
int
hputra
(
/* Right ascension in degrees into hh:mm:ss.sss */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
double
ra
);
/* Right ascension in degrees */
int
hputdec
(
/* Declination in degrees into dd:mm:ss.ss */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
double
dec
);
/* Declination in degrees */
int
hputl
(
/* Implant boolean value into FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
int
lval
);
/* 0->F, else ->T */
int
hputc
(
/* Implant character string without quotes */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
,
/* FITS keyword */
const
char
*
cval
);
/* Character string value */
int
hdel
(
/* Delete a keyword line from a FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword
);
/* FITS keyword to delete */
int
hadd
(
/* Add a keyword line from a FITS header */
char
*
hplace
,
/* Location in FITS header string (modified) */
const
char
*
keyword
);
/* FITS keyword to add */
int
hchange
(
/* Change a keyword name in a FITS header */
char
*
hstring
,
/* FITS header string (modified) */
const
char
*
keyword1
,
/* Current FITS keyword name */
const
char
*
keyword2
);
/* New FITS keyword name */
void
ra2str
(
/* Convert degrees to hh:mm:ss.ss */
char
*
string
,
/* Character string (returned) */
int
lstr
,
/* Length of string */
const
double
ra
,
/* Right ascension in degrees */
const
int
ndec
);
/* Number of decimal places in seconds */
void
dec2str
(
/* Convert degrees to dd:mm:ss.ss */
char
*
string
,
/* Character string (returned) */
int
lstr
,
/* Length of string */
const
double
dec
,
/* Declination in degrees */
const
int
ndec
);
/* Number of decimal places in arcseconds */
void
deg2str
(
/* Format angle into decimal degrees string */
char
*
string
,
/* Character string (returned) */
int
lstr
,
/* Length of string */
const
double
deg
,
/* Angle in degrees */
const
int
ndec
);
/* Number of decimal places in degrees */
void
num2str
(
/* Format number into string */
char
*
string
,
/* Character string (returned) */
const
double
num
,
/* Number */
const
int
field
,
/* Total field size in characters */
const
int
ndec
);
/* Number of decimal places */
};
#else
/* __cplusplus */
/* Subroutines in hget.c */
/* Extract a value from a FITS header for given keyword */
extern
int
hgeti4
();
/* int (Multiple WCS) */
extern
int
hgeti4c
();
/* int */
extern
int
hgeti2
();
/* short */
extern
int
hgetr4
();
/* float */
extern
int
hgetr8
();
/* double */
extern
int
hgetr8c
();
/* double (Multiple WCS) */
extern
int
hgetra
();
/* Right ascension in degrees from string */
extern
int
hgetdec
();
/* Declination in degrees from string */
extern
int
hgetdate
();
/* Date in years from FITS date string */
extern
int
hgetl
();
/* T->1, F->0 from FITS logical entry */
extern
int
hgets
();
/* Previously allocated string */
extern
int
hgetsc
();
/* Previously allocated string (Multiple WCS) */
extern
int
hgetm
();
/* Previously allocated string from multiple keywords */
extern
char
*
hgetc
();
/* Return pointer to string */
extern
int
hgetndec
();
/* Number of decimal places in keyword value */
/* Subroutines to convert strings to RA and Dec in degrees */
extern
double
str2ra
();
extern
double
str2dec
();
/* Check to see whether a string is a number or not */
extern
int
isnum
();
extern
int
notnum
();
extern
int
decnum
();
/* Find given keyword entry in FITS header */
extern
char
*
ksearch
();
/* Find beginning of fillable blank line before FITS header keyword */
extern
char
*
blsearch
();
/* Search for substring s2 within string s1 */
extern
char
*
strsrch
();
/* s1 null-terminated */
extern
char
*
strnsrch
();
/* s1 ls1 characters long */
extern
char
*
strcsrch
();
/* s1 null-terminated (case-insensitive) */
extern
char
*
strncsrch
();
/* s1 ls1 characters long (case-insensitive) */
/* Set length of header which is not null-terminated */
extern
int
hlength
();
/* Get length of current FITS header */
extern
int
gethlength
();
/* Subroutines in iget.c */
extern
int
mgetstr
();
/* Previously allocated string from multiline keyword */
extern
int
mgetr8
();
/* double from multiline keyword */
extern
int
mgeti4
();
/* int from multiline keyword */
extern
int
igeti4
();
/* long integer from IRAF compound keyword value */
extern
int
igetr4
();
/* real from IRAF compound keyword value */
extern
int
igetr8
();
/* double from IRAF compound keyword value */
extern
int
igets
();
/* character string from IRAF compound keyword value */
extern
char
*
igetc
();
/* Extract string from IRAF keyword string */
/* Subroutines in hput.c */
/* Implant a value into a FITS header for given keyword */
extern
int
hputi4
();
/* int */
extern
int
hputi2
();
/* short */
extern
int
hputr4
();
/* float */
extern
int
hputr8
();
/* double */
extern
int
hputnr8
();
/* double with specified number of decimal places */
extern
int
hputra
();
/* Right ascension in degrees into hh:mm:ss.sss */
extern
int
hputdec
();
/* Declination in degrees into dd:mm:ss.ss */
extern
int
hputl
();
/* 0 -> F, else T FITS logical entry */
extern
int
hputs
();
/* Quoted character string */
extern
int
hputm
();
/* Quoted character string into mutiple keywords */
extern
int
hputc
();
/* Character string without quotes (returns 0 if OK) */
extern
int
hputcom
();
/* Comment after keyword=value (returns 0 if OK) */
extern
int
hdel
();
/* Delete a keyword line from a FITS header */
extern
int
hadd
();
/* Add a keyword line to a FITS header */
extern
int
hchange
();
/* Change a keyword name in a FITS header */
/* Subroutines to convert RA and Dec in degrees to strings */
extern
void
ra2str
();
extern
void
dec2str
();
extern
void
deg2str
();
extern
void
num2str
();
extern
char
*
getltime
();
/* Return current local time in ISO format */
extern
char
*
getutime
();
/* Return current UT as an ISO-format string */
#endif
/* __cplusplus */
#endif
/* fitshead_h_ */
/* Apr 26 1996 Add HGETDATE to get year from date string
* May 22 1996 Return double from STR2RA and STR2DEC
* May 31 1996 Use stream I/O for reading as well as writing
* Jun 12 1996 Add byte-swapping subroutines
* Jul 10 1996 FITS header now allocated in subroutines
* Jul 17 1996 Add FITS table column extraction subroutines
* Jul 19 1996 Add declarations for header implanting subroutines
* Aug 5 1996 Add HLENGTH for FITS headers which are not null-terminated
* Aug 5 1996 Add STRNSRCH for FITS headers which are not null-terminated
* Aug 6 1996 Add HPUTNR8 to save a specified number of decimal places
* Aug 6 1996 Add MOVEPIX, HDEL and HCHANGE declarations
* Nov 1 1996 Add DEG2STR
* Dec 12 1996 Add ISNUM
*
* Oct 10 1997 FITS file opening subroutines now return int instead of FILE *
*
* Mar 12 1998 Add NOTNUM
* Apr 30 1998 Clean up declarations and add more comments
* May 12 1998 Add MGETS, MGETR8, MGETI4 for IRAF multi-line keywords
* May 26 1998 Add HGETNDEC for number of decimal places in keyword value
* May 27 1998 Add BLSEARCH to find usable blank lines in header
* May 27 1998 Split off fitsio and imhio subroutines to fitsio.h
* May 27 1998 Add all subroutines in hget.c, hput.c, and iget.c to C++ dec.
* Jun 24 1998 Add string lengths to ra2str(), dec2str, and deg2str() calls
* Jun 25 1998 Fix other C++ declarations with added string lengths
* Aug 31 1998 Add current date subroutines getltime() and getutime()
* Oct 28 1998 Add missing hgetc() to non c++ declarations
*
* Oct 6 1999 Add gethlength() to return current size of header
* Oct 14 1999 All HPUT subroutines now return an error code, 0 if OK, else -1
* Oct 15 1999 Add hputcom() declaration
* Oct 21 1999 Add hgetm() declaration
*
* Mar 22 2000 Add int to iget*() declarations
* Mar 27 2000 Add hputm() declaration
*
* Apr 3 2002 Add hgeti4c(), hgetr8c(), and hgetsc()
* Apr 8 2002 Include sys/types.h
* Aug 30 2002 Add strcsrch() and strncsrch()
*
* Sep 23 2003 Change mgets() to mgetstr() to avoid name collision at UCO Lick
* Oct 20 2003 Add numdec() to return the number of decimal places in a string
*
* Feb 26 2004 Add igetc(), formerly internal to iget.c
*/
Event Timeline
Log In to Comment