summaryrefslogtreecommitdiffstats
path: root/fitsy/headset.c
diff options
context:
space:
mode:
Diffstat (limited to 'fitsy/headset.c')
-rw-r--r--fitsy/headset.c132
1 files changed, 132 insertions, 0 deletions
diff --git a/fitsy/headset.c b/fitsy/headset.c
new file mode 100644
index 0000000..ed586c7
--- /dev/null
+++ b/fitsy/headset.c
@@ -0,0 +1,132 @@
+/* Fitsy FITS header set routines.
+
+ EXAMPLES
+
+ Set the value part of a card in a header:
++
+ int i = 15;
+ double d = 34.7;
+ char *c = "Shutter";
+
+ FITSCard fits;
+ FITSCard card;
+
+ card = #ft_headsetl(fits, "Cosmic", 0, 1, "Removed Cosimics (silver bullet method)");
+ card = #ft_headseti(fits, "IValue" , 0, i, "15 is the number");
+
+ card = #ft_headsetr(fits, "Gain", 1, d, 2, "GAIN1");
+ card = #ft_headsetr(fits, "Gain", 2, d, 2, "GAIN2");
+
+ card = #ft_headsets(fits, "XHIST", 1, "Xray processed!", NULL);
+
+ /-* In this example the special pointer #ft_comment is used to
+ use the existing comment in the card.
+ *-/
+ card = #ft_headsets(fits, "FILTER", 0, "V", ft_comment);
++
+ */
+
+#include "fitsy.h"
+
+/* Find a FITS card in the header and format a logical value into it.
+ */
+FITSCard ft_headsetl(fits, name, n, lvalue, comm, append)
+ FITSHead fits; /* FITS header to search in. */
+ char *name; /* keyword name. */
+ 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 card. */
+ int append; /* Append the card if not found */
+{
+ FITSCard card;
+
+ if ( !(card = ft_cardsetl(ft_headfind(fits, name, n, 1), lvalue, comm))
+ && append )
+ card = ft_headappl(fits, name, n, lvalue, comm);
+
+ return card;
+}
+
+/* Find a FITS card in the header and format a logical value into it.
+ */
+FITSCard ft_headseti(fits, name, n, ivalue, comm, append)
+ FITSHead fits;
+ char *name;
+ int n;
+ int ivalue; /* Integer to format as a FITS value. */
+ char *comm;
+ int append;
+{
+ FITSCard card;
+
+ if ( !(card = ft_cardseti(ft_headfind(fits, name, n, 1), ivalue, comm))
+ && append )
+ card = ft_headappi(fits, name, n, ivalue, comm);
+
+ return card;
+}
+
+/* Find a FITS card in the header and format a logical value into it.
+ */
+FITSCard ft_headsetil(fits, name, n, ivalue, comm, append)
+ FITSHead fits;
+ char *name;
+ int n;
+ longlong ivalue; /* Integer to format as a FITS value. */
+ char *comm;
+ int append;
+{
+ FITSCard card;
+
+ if ( !(card = ft_cardsetil(ft_headfind(fits, name, n, 1), ivalue, comm))
+ && append )
+ card = ft_headappil(fits, name, n, ivalue, comm);
+
+ return card;
+}
+
+/* Find a FITS card in the header and format a logical value into it.
+ */
+FITSCard ft_headsetr(fits, name, n, rvalue, prec, comm, append)
+ FITSHead fits;
+ char *name;
+ int n;
+ double rvalue; /* Double to format as a FITS value. */
+ int prec; /* The value is formatted
+ at this precision.
+ */
+ char *comm;
+ int append;
+{
+ FITSCard card;
+
+ if ( !(card = ft_cardsetr(ft_headfind(fits, name, n, 1)
+ , rvalue, prec, comm))
+ && append )
+ card = ft_headappr(fits, name, n, rvalue, prec, comm);
+
+ return card;
+}
+
+/* Find a FITS card in the header and format a string value into it.
+ */
+FITSCard ft_headsets(fits, name, n, svalue, comm, append)
+ FITSHead fits;
+ char *name;
+ int n;
+ char *svalue; /* String to format as a FITS value. */
+ char *comm;
+ int append;
+{
+ FITSCard card;
+
+ if ( !(card = ft_cardsets(ft_headfind(fits, name, n, 1), svalue, comm))
+ && append )
+ card = ft_headapps(fits, name, n, svalue, comm);
+
+ return card;
+}
+