aboutsummaryrefslogtreecommitdiff
path: root/pkg/dataio/fits/rfits.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /pkg/dataio/fits/rfits.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'pkg/dataio/fits/rfits.h')
-rw-r--r--pkg/dataio/fits/rfits.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/pkg/dataio/fits/rfits.h b/pkg/dataio/fits/rfits.h
new file mode 100644
index 00000000..bab29220
--- /dev/null
+++ b/pkg/dataio/fits/rfits.h
@@ -0,0 +1,96 @@
+# FITS Definitions
+
+# The FITS standard readable by the FITS reader using these definitions:
+#
+# 1. 8 bits / byte
+# 2. ASCII character code
+# 3. MII integer data format (i.e. 8 bit unsigned integers and 16 and 32
+# bit signed twos complement integers with most significant bytes first.)
+# 4. IEEE 32 and 64 bit floating point format
+#
+#
+# The following deviations from the FITS standard are allowed:
+#
+# 1. The number of FITS bytes per record is normally 2880 or up to 10 times
+# 2880 bytes but may be arbitrarily specified by the user.
+
+# Define the bits per pixel, precision and byte order of the basic FITS types
+
+define FITS_RECORD 2880 # number of bytes in a standard FITS record
+
+define FITS_BYTE 8 # Bits in a FITS byte
+define FITS_SHORT 16 # Bits in a FITS short
+define FITS_LONG 32 # Bits in a FITS long
+define FITS_REAL -32 # Bits in a FITS real * -1
+define FITS_DOUBLE -64 # Bits in a FITS double * -1
+
+define FITSB_PREC 3 # Decimal digits of precision in a FITS byte
+define FITSS_PREC 5 # Decimal digits of precision in a FITS short
+define FITSL_PREC 10 # Decimal digits of precision in a FITS long
+
+define LSBF NO # Least significant byte first
+
+# Define the basic format of a FITS cardimage
+
+define LEN_CARD 80 # Length of FITS card in characters
+define COL_VALUE 11 # Starting column for parameter values
+
+
+# FITS standards not recognized currently by IRAF.
+#
+# 1. SIMPLE SIMPLE = 'F' not implemented, file skipped
+# 2. GROUPS Group data not currently implemented, file skippped
+
+# FITS extension currently recognised by IRAF
+
+define EXT_PRIMARY 1 # recognized and read
+define EXT_IMAGE 2 # recognized and read
+define EXT_TABLE 3 # recognized and skipped
+define EXT_BINTABLE 4 # recognized and skipped
+define EXT_UNKNOWN 5 # unrecognized and skipped
+define EXT_SPECIAL 6 # undefined
+
+
+# Values for the following quantities are stored in the structure below.
+
+define LEN_FITS (20 + SZ_FNAME + 1)
+
+define FITS_BSCALE Memd[P2D($1)] # FITS scaling parameter
+define FITS_BZERO Memd[P2D($1+2)] # FITS zero parameter
+define BLANK_VALUE Meml[P2L($1+4)] # Blank value
+define BLANKS Memi[$1+5] # YES if blank keyword in header
+define BITPIX Memi[$1+6] # Bits per pixel (Must be an MII type)
+define SCALE Memi[$1+7] # Scale the data ?
+define SIMPLE Memi[$1+8] # Standard FITS format
+define NRECORDS Memi[$1+9] # Number of FITS logical records
+define EXTEND Memi[$1+10] # FITS extensions may be present
+define XTENSION Memi[$1+11] # FITS extension type
+define PCOUNT Memi[$1+12] # Number of random parameters
+define GCOUNT Memi[$1+13] # Number of groups
+define GLOBALHDR Memi[$1+14] # Global header may be present
+define INHERIT Memi[$1+15] # Inherit global header if present
+define IRAFNAME Memc[P2C($1+16)] # Old IRAF name
+
+# Mapping of additional IRAF header parameters
+
+define PIXTYPE IM_PIXTYPE($1)
+define NBPIX IM_NBPIX($1)
+define IRAFMAX IM_MAX($1)
+define IRAFMIN IM_MIN($1)
+define LIMTIME IM_LIMTIME($1)
+define LEN_USERAREA 28800
+
+# Mapping of FITS Keywords to IRAF image header
+
+define NAXIS IM_NDIM($1)
+define NAXISN IM_LEN($1,$2)
+define OBJECT IM_TITLE($1)
+define HISTORY IM_HISTORY($1)
+define UNKNOWN Memc[($1+IMU-1)*SZ_STRUCT+1] # All unrecognized keywords
+ # are stored here
+# Miscellaneous definitions.
+
+define SZ_OBJECT SZ_IMTITLE
+define SZ_HISTORY SZ_IMHIST
+define SZ_FCTYPE SZ_CTYPE
+define LEN_TYPESTR 8