aboutsummaryrefslogtreecommitdiff
path: root/src/libcf/calfits.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcf/calfits.c')
-rw-r--r--src/libcf/calfits.c658
1 files changed, 658 insertions, 0 deletions
diff --git a/src/libcf/calfits.c b/src/libcf/calfits.c
new file mode 100644
index 0000000..29b3a08
--- /dev/null
+++ b/src/libcf/calfits.c
@@ -0,0 +1,658 @@
+/*****************************************************************************
+ * Johns Hopkins University
+ * Center For Astrophysical Sciences
+ * FUSE
+ *****************************************************************************
+ *
+ * Description: Wrappers for cfitsio routines which includes error checking.
+ *
+ * History: 04/14/99 peb Finished work on subset of routines
+ * from cfitsio v2.031.
+ * 04/15/99 emm Replaced #include FITSIO.h with
+ * #include calfuse.h
+ * 04/15/99 barrett Added FITS_get_rowsize.
+ * 04/16/99 barrett Added FITS_get_hdu_num.
+ * 04/20/99 barrett Added FITS_insert_key_[str, log, lng,
+ * fixflt, flt, fixdbl, dbl, fixcmp,
+ * cmp, fixdblcmp, dblcmp]
+ * 04/23/99 emurphy Deleted error checking from
+ * cf_get_hdu_num
+ * 04/04/01 kruk Force casesen to FALSE in FITS_get_colnum
+ * 12/18/03 bjg Change calfusettag.h to calfuse.h
+ *
+ ****************************************************************************/
+
+#include "fitsio.h"
+#include "calfuse.h"
+
+int FITS_open_file(fitsfile **fptr, const char *filename, int iomode,
+ int *status)
+{
+ ffopen(fptr, filename, iomode, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_reopen_file(fitsfile *openfptr, fitsfile **newfptr, int *status)
+{
+ ffreopen(openfptr, newfptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_create_file(fitsfile **fptr, const char *filename, int *status)
+{
+ ffinit(fptr, filename, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_flush_file(fitsfile *fptr, int *status)
+{
+ ffflus(fptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_close_file(fitsfile *fptr, int *status)
+{
+ ffclos(fptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_file(fitsfile *fptr, int *status)
+{
+ ffdelt(fptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_file_name(fitsfile *fptr, char *filename, int *status)
+{
+ ffflnm(fptr, filename, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_file_mode(fitsfile *fptr, int *filemode, int *status)
+{
+ ffflmd(fptr, filemode, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_record(fitsfile *fptr, const char *card, int *status)
+{
+ ffprec(fptr, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_key(fitsfile *fptr, int datatype, char *keyname, void *value,
+ char *comm, int *status)
+{
+ ffpky(fptr, datatype, keyname, value,
+ comm, status);
+ if (*status) fprintf(stderr, "Error writing keyword %16.16s\n",keyname);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_comment(fitsfile *fptr, const char *comm, int *status)
+{
+ ffpcom(fptr, comm, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_history(fitsfile *fptr, const char *history, int *status)
+{
+ ffphis(fptr, history, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_date(fitsfile *fptr, int *status)
+{
+ ffpdat(fptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_copy_key(fitsfile *infptr,fitsfile *outfptr,int incol,int outcol,
+ char *rootname, int *status)
+{
+ ffcpky(infptr,outfptr,incol,outcol,
+ rootname, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_imghdr(fitsfile *fptr, int bitpix, int naxis, long naxes[],
+ int *status)
+{
+ ffphps( fptr, bitpix, naxis, naxes, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_grphdr(fitsfile *fptr, int simple, int bitpix, int naxis,
+ long naxes[], long pcount, long gcount, int extend,
+ int *status)
+{
+ ffphpr( fptr, simple, bitpix, naxis, naxes,
+ pcount, gcount, extend, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_btblhdr(fitsfile *fptr, long naxis2, int tfields, char **ttype,
+ char **tform, char **tunit, char *extname, long pcount,
+ int *status)
+{
+ ffphbn(fptr, naxis2, tfields, ttype,
+ tform, tunit, extname, pcount, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_hdrpos(fitsfile *fptr, int *nexist, int *position, int *status)
+{
+ ffghps(fptr, nexist, position, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_record(fitsfile *fptr, int nrec, char *card, int *status)
+{
+ ffgrec(fptr, nrec, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_card(fitsfile *fptr, char *keyname, char *card, int *status)
+{
+ ffgcrd(fptr, keyname, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_key(fitsfile *fptr, int datatype, char *keyname, void *value,
+ char *comm, int *status)
+{
+ ffgky( fptr, datatype, keyname, value,
+ comm, status);
+ if (*status) fprintf(stderr, "Error reading keyword %16.16s\n",keyname);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_imghdr(fitsfile *fptr, int maxdim, int *simple, int *bitpix,
+ int *naxis, long naxes[], long *pcount, long *gcount,
+ int *extend, int *status)
+{
+ ffghpr(fptr, maxdim, simple, bitpix, naxis,
+ naxes, pcount, gcount, extend, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_btblhdr(fitsfile *fptr, int maxfield, long *naxis2, int *tfields,
+ char **ttype, char **tform, char **tunit, char *extname,
+ long *pcount, int *status)
+{
+ ffghbn(fptr, maxfield, naxis2, tfields,
+ ttype, tform, tunit, extname,
+ pcount, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_update_card(fitsfile *fptr, char *keyname, char *card, int *status)
+{
+ ffucrd(fptr, keyname, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_update_key(fitsfile *fptr, int datatype, char *keyname, void *value,
+ char *comm, int *status)
+{
+ ffuky(fptr, datatype, keyname, value,
+ comm, status);
+ if (*status) fprintf(stderr, "Error updating keyword %16.16s\n",keyname);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_modify_record(fitsfile *fptr, int nkey, char *card, int *status)
+{
+ ffmrec(fptr, nkey, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_modify_card(fitsfile *fptr, char *keyname, char *card, int *status)
+{
+ ffmcrd(fptr, keyname, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_modify_comment(fitsfile *fptr, char *keyname, char *comm, int *status)
+{
+ ffmcom(fptr, keyname, comm, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_record(fitsfile *fptr, int nkey, char *card, int *status)
+{
+ ffirec(fptr, nkey, card, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_str(fitsfile *fptr, char *keyname, char *value,
+ char *comment, int *status)
+{
+ ffikys(fptr, keyname, value, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_log(fitsfile *fptr, char *keyname, int value,
+ char *comment, int *status)
+{
+ ffikyl(fptr, keyname, value, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_lng(fitsfile *fptr, char *keyname, long value,
+ char *comment, int *status)
+{
+ ffikyj(fptr, keyname, value, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_flt(fitsfile *fptr, char *keyname, float value,
+ int decimals, char *comment, int *status)
+{
+ ffikye(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_fixflt(fitsfile *fptr, char *keyname, float value,
+ int decimals, char *comment, int *status)
+{
+ ffikyf(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_dbl(fitsfile *fptr, char *keyname, double value,
+ int decimals, char *comment, int *status)
+{
+ ffikyd(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_fixdbl(fitsfile *fptr, char *keyname, double value,
+ int decimals, char *comment, int *status)
+{
+ ffikyg(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_cmp(fitsfile *fptr, char *keyname, float *value,
+ int decimals, char *comment, int *status)
+{
+ ffikyc(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_dblcmp(fitsfile *fptr, char *keyname, double *value,
+ int decimals, char *comment, int *status)
+{
+ ffikym(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_fixcmp(fitsfile *fptr, char *keyname, float *value,
+ int decimals, char *comment, int *status)
+{
+ ffikfc(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_fixdblcmp(fitsfile *fptr, char *keyname, double *value,
+ int decimals, char *comment, int *status)
+{
+ ffikfm(fptr, keyname, value, decimals, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_key_null(fitsfile *fptr, char *keyname, char *comment,
+ int *status)
+{
+ ffikyu(fptr, keyname, comment, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_key(fitsfile *fptr, char *keyname, int *status)
+{
+ ffdkey(fptr, keyname, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_record(fitsfile *fptr, int keypos, int *status)
+{
+ ffdrec(fptr, keypos, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_hdu_num(fitsfile *fptr, int *hdunum)
+{
+ /* This routine returns the HDU number instead of status. Therefore,
+ * it should not use any error checking. */
+ int status;
+ status = ffghdn(fptr, hdunum);
+ return status;
+}
+
+int FITS_get_hdu_type(fitsfile *fptr, int *exttype, int *status)
+{
+ ffghdt(fptr, exttype, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_movabs_hdu(fitsfile *fptr, int hdunum, int *exttype, int *status)
+{
+ ffmahd(fptr, hdunum, exttype, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_movrel_hdu(fitsfile *fptr, int hdumov, int *exttype, int *status)
+{
+ ffmrhd(fptr, hdumov, exttype, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_movnam_hdu(fitsfile *fptr, int exttype, char *hduname, int hduvers,
+ int *status)
+{
+ ffmnhd(fptr, exttype, hduname, hduvers,
+ status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_num_hdus(fitsfile *fptr, int *nhdu, int *status)
+{
+ ffthdu(fptr, nhdu, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_create_img(fitsfile *fptr, int bitpix, int naxis, long *naxes,
+ int *status)
+{
+ ffcrim(fptr, bitpix, naxis, naxes, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_create_tbl(fitsfile *fptr, int tbltype, long naxis2, int tfields,
+ char **ttype, char **tform, char **tunit, char *extname,
+ int *status)
+{
+ ffcrtb(fptr, tbltype, naxis2, tfields, ttype,
+ tform, tunit, extname, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_create_hdu(fitsfile *fptr, int *status)
+{
+ ffcrhd(fptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_img(fitsfile *fptr, int bitpix, int naxis, long *naxes,
+ int *status)
+{
+ ffiimg(fptr, bitpix, naxis, naxes, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_atbl(fitsfile *fptr, long naxis1, long naxis2, int tfields,
+ char **ttype, long *tbcol, char **tform, char **tunit,
+ char *extname, int *status)
+{
+ ffitab(fptr, naxis1, naxis2, tfields, ttype,
+ tbcol, tform, tunit, extname, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_btbl(fitsfile *fptr,long naxis2, int tfields, char **ttype,
+ char **tform, char **tunit, char *extname, long pcount,
+ int *status)
+{
+ ffibin(fptr,naxis2, tfields, ttype, tform,
+ tunit, extname, pcount, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_hdu(fitsfile *fptr, int *hdutype, int *status)
+{
+ ffdhdu(fptr, hdutype, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_copy_hdu(fitsfile *infptr, fitsfile *outfptr, int morekeys,
+ int *status)
+{
+ ffcopy(infptr, outfptr, morekeys, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_copy_header(fitsfile *infptr, fitsfile *outfptr, int *status)
+{
+ ffcphd(infptr, outfptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_copy_data(fitsfile *infptr, fitsfile *outfptr, int *status)
+{
+ ffcpdt(infptr, outfptr, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_colnum(fitsfile *fptr, int casesen, char *templt, int *colnum,
+ int *status)
+{
+ /* force casesen to FALSE, in accordance with the FITS standard */
+ casesen = FALSE;
+ ffgcno(fptr, casesen, templt, colnum,
+ status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_colname(fitsfile *fptr, int casesen, char *templt, char *colname,
+ int *colnum, int *status)
+{
+ ffgcnn(fptr, casesen, templt, colname,
+ colnum, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_coltype(fitsfile *fptr, int colnum, int *typecode, long *repeat,
+ long *width, int *status)
+{
+ ffgtcl(fptr, colnum, typecode, repeat,
+ width, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_num_rows(fitsfile *fptr, long *nrows, int *status)
+{
+ ffgnrw(fptr, nrows, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_rowsize(fitsfile *fptr, long *nrows, int *status)
+{
+ ffgrsz(fptr, nrows, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_num_cols(fitsfile *fptr, int *ncols, int *status)
+{
+ ffgncl(fptr, ncols, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_acolparms(fitsfile *fptr, int colnum, char *ttype, long *tbcol,
+ char *tunit, char *tform, double *tscal, double *tzero,
+ char *tnull, char *tdisp, int *status)
+{
+ ffgacl(fptr, colnum, ttype, tbcol,
+ tunit, tform, tscal, tzero,
+ tnull, tdisp, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_get_bcolparms(fitsfile *fptr, int colnum, char *ttype, char *tunit,
+ char *dtype, long *repeat, double *tscal, double *tzero,
+ long *tnull, char *tdisp, int *status)
+{
+ ffgbcl(fptr, colnum, ttype, tunit,
+ dtype, repeat, tscal, tzero,
+ tnull, tdisp, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_img(fitsfile *fptr, int datatype, long firstelem, long nelem,
+ void *nulval, void *array, int *anynul, int *status)
+{
+ ffgpv(fptr, datatype, firstelem, nelem,
+ nulval, array, anynul, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_read_col( fitsfile *fptr, int datatype, int colnum, long firstrow,
+ long firstelem, long nelem, void *nulval, void *array,
+ int *anynul, int *status)
+{
+ ffgcv( fptr, datatype, colnum, firstrow,
+ firstelem, nelem, nulval, array, anynul,
+ status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_img(fitsfile *fptr, int datatype, long firstelem, long nelem,
+ void *array, int *status)
+{
+ ffppr(fptr, datatype, firstelem, nelem,
+ array, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_write_col(fitsfile *fptr, int datatype, int colnum, long firstrow,
+ long firstelem, long nelem, void *array, int *status)
+{
+ ffpcl(fptr, datatype, colnum, firstrow,
+ firstelem, nelem, array, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_rows(fitsfile *fptr, long firstrow, long nrows, int *status)
+{
+ ffirow(fptr, firstrow, nrows, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_rows(fitsfile *fptr, long firstrow, long nrows, int *status)
+{
+ ffdrow(fptr, firstrow, nrows, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_rowlist(fitsfile *fptr, long *rownum, long nrows, int *status)
+{
+ ffdrws(fptr, rownum, nrows, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_col(fitsfile *fptr, int numcol, char *ttype, char *tform,
+ int *status)
+{
+ fficol(fptr, numcol, ttype, tform, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_insert_cols(fitsfile *fptr, int firstcol, int ncols, char **ttype,
+ char **tform, int *status)
+{
+ fficls(fptr, firstcol, ncols, ttype,
+ tform, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_delete_col(fitsfile *fptr, int numcol, int *status)
+{
+ ffdcol(fptr, numcol, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+
+int FITS_copy_col(fitsfile *infptr, fitsfile *outfptr, int incol, int outcol,
+ int create_col, int *status)
+{
+ ffcpcl(infptr, outfptr, incol, outcol,
+ create_col, status);
+ cf_if_fits_error(*status);
+ return *status;
+}
+