diff options
Diffstat (limited to 'funtools/fitsy/headins.c')
-rw-r--r-- | funtools/fitsy/headins.c | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/funtools/fitsy/headins.c b/funtools/fitsy/headins.c new file mode 100644 index 0000000..a83a9f4 --- /dev/null +++ b/funtools/fitsy/headins.c @@ -0,0 +1,205 @@ +/* Routines to insert, append and delete FITS cards from a header. + + These routines allow FITS cards to be inserted, appended and deleted + by keyword value. + + The insertion routines format a new card with the supplied keyword and + value and insert it after indicated card. The append routines add new + cards to the end of the header (before the END card). + + */ + +#include "fitsy.h" + +/* Insert a logical value FITS card into a header. + */ +FITSCard ft_headinsl(fits, name, n, lvalue, comm, here) + FITSHead fits; /* FITS header to insert, append or + delete a card. + */ + char *name; /* Name of the FITS card. */ + int n; /* keyword index number, if is zero no + index number is appended to the + keyword. + */ + int lvalue;/* Logical to format as a FITS value. */ + char *comm; /* Comment for the new card. */ + FITSCard here; /* Insert the new card after this card. */ +{ + FITSBuff card; + + return ft_cardins(fits + , ft_cardfmt(&card, name, n, FT_LOGICAL, &lvalue, 0, comm) + , here); +} + +/* Insert a integer value FITS card into a header. + */ +FITSCard ft_headinsi(fits, name, n, ivalue, comm, here) + FITSHead fits; + char *name; + int n; + int ivalue;/* Integer to format as a FITS value. */ + char *comm; + FITSCard here; +{ + FITSBuff card; + + return ft_cardins(fits + , ft_cardfmt(&card, name, n, FT_INTEGER, &ivalue, 0, comm) + , here); +} + +/* Insert a longlong integer value FITS card into a header. + */ +FITSCard ft_headinsil(fits, name, n, ivalue, comm, here) + FITSHead fits; + char *name; + int n; + longlong ivalue;/* Integer to format as a FITS value. */ + char *comm; + FITSCard here; +{ + FITSBuff card; + + return ft_cardins(fits + , ft_cardfmt(&card, name, n, FT_LONG, &ivalue, 0, comm) + , here); +} + +/* Insert a real value FITS card into a header. + */ +FITSCard ft_headinsr(fits, name, n, dvalue, prec, comm, here) + FITSHead fits; + char *name; + int n; + double dvalue;/* Double to format as a FITS value. */ + int prec; /* Precision for the value */ + char *comm; + FITSCard here; +{ + FITSBuff card; + + return ft_cardins(fits + , ft_cardfmt(&card, name, n, FT_REAL, &dvalue, prec, comm) + , here); +} + +/* Insert a string value FITS card into a header. + */ +FITSCard ft_headinss(fits, name, n, svalue, comm, here) + FITSHead fits; + char *name; + int n; + char *svalue;/* String to format as a FITS value */ + char *comm; + FITSCard here; +{ + FITSBuff card; + + return ft_cardins(fits + , ft_cardfmt(&card, name, n, FT_STRING, svalue, 0, comm) + , here); +} + +/* Insert a raw value FITS card into a header. + */ +FITSCard ft_headinsv(fits, name, n, vvalue, comm, here) + FITSHead fits; + char *name; + int n; + char *vvalue;/* Raw value to format as a FITS value */ + char *comm; + FITSCard here; +{ + FITSBuff card; + + return ft_cardins(fits + , ft_cardfmt(&card, name, n, FT_VALUE, vvalue, 0, comm) + , here); +} + +/* Append a logical value FITS card to a header. + */ +FITSCard ft_headappl(fits, name, n, lvalue, comm) + FITSHead fits; + char *name; + int n; + int lvalue; + char *comm; +{ + return ft_headinsl(fits, name, n, lvalue, comm, NULL); +} + +/* Append a integer value FITS card to a header. + */ +FITSCard ft_headappi(fits, name, n, ivalue, comm) + FITSHead fits; + char *name; + int n; + int ivalue; + char *comm; +{ + return ft_headinsi(fits, name, n, ivalue, comm, NULL); +} + +/* Append a 64-bit integer value FITS card to a header. + */ +FITSCard ft_headappil(fits, name, n, ivalue, comm) + FITSHead fits; + char *name; + int n; + longlong ivalue; + char *comm; +{ + return ft_headinsil(fits, name, n, ivalue, comm, NULL); +} + +/* Append a real value FITS card to a header. + */ +FITSCard ft_headappr(fits, name, n, dvalue, prec, comm) + FITSHead fits; + char *name; + int n; + double dvalue; + int prec; + char *comm; +{ + return ft_headinsr(fits, name, n, dvalue, prec, comm, NULL); +} + +/* Append a string value FITS card to a header. + */ +FITSCard ft_headapps(fits, name, n, svalue, comm) + FITSHead fits; + char *name; + int n; + char *svalue; + char *comm; +{ + return ft_headinss(fits, name, n, svalue, comm, NULL); +} + + +/* Append a raw value FITS card to a header. + */ +FITSCard ft_headappv(fits, name, n, vvalue, comm) + FITSHead fits; + char *name; + int n; + char *vvalue; + char *comm; +{ + return ft_headinsv(fits, name, n, vvalue, comm, NULL); +} + + +/* Find and delete a card from a FITS header. + */ +FITSCard ft_headdel(fits, name, n) + FITSHead fits; + char *name; + int n; +{ + return ft_carddel(fits, ft_headfind(fits, name, n, 0)); +} |