aboutsummaryrefslogtreecommitdiff
path: root/sys/imio/imt/fxf.h
blob: c4e6188bc9b8b45f4507d08ea0ee9edce6aae628 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# FITS.H -- IKI/FITS internal definitions.

define	FITS_ORIGIN	"NOAO-IRAF FITS Image Kernel July 2003"

define	FITS_LENEXTN	4		# max length imagefile extension
define	SZ_DATATYPE	16		# size of datatype string (eg "REAL*4")
define	SZ_EXTTYPE	20		# size of exttype string (eg BINTABLE)
define	SZ_KEYWORD	8		# size of a FITS keyword
define	SZ_EXTRASPACE	(81*32)		# extra space for new cards in header
define	DEF_PHULINES	0		# initial allocation for PHU
define	DEF_EHULINES	0		# initial allocation for EHU
define	DEF_PADLINES	0		# initial value for extra lines in HU
define	DEF_PLMAXLEN	32768		# default max PLIO encoded line length
define	DEF_PLDEPTH	0		# default PLIO mask depth

define	FITS_BLOCK_BYTES 2880		# FITS logical block length (bytes)
define	FITS_BLOCK_CHARS 1440		# FITS logical block length (spp chars)
define	FITS_STARTVALUE 10		# first column of value field
define	FITS_ENDVALUE	30		# last	column of value field
define	FITS_SZVALSTR	21		# nchars in value string
define	LEN_CARD	80		# length of FITS card.
define	LEN_UACARD	81		# size of a Userarea line.
define	LEN_OBJECT	63		# maximum length of a FITS string value
define	LEN_FORMAT	40		# maximum length of a TFORM value
define	NO_KEYW		-1		# indicates no keyword is present.

define	MAX_OFFSETS	100		# max number of offsets per cache entry.
define	MAX_CACHE	60		# max number of cache entries.
define	DEF_CACHE	10		# default number of cache entries.

define	DEF_HDREXTN	"fits"		# default header file extension
define	ENV_FKINIT	"fkinit"	# FITS kernel initialization

define	DEF_ISOCUTOVER	0		# date when ISO format dates kick in
define	ENV_ISOCUTOVER	"isodates"	# environment override for default

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	# 32 Bits FITS IEEE float representation
define	FITS_DOUBLE	-64	# 64 Bits FITS IEEE double representation

define	COL_VALUE	11	# Starting column for parameter values
define	NDEC_REAL	7	# Precision of real
define	NDEC_DOUBLE	14	# Precision of double

define	FITS_LEN_CHAR	(((($1) + 1439)/1440)* 1440)

# Extension subtypes.
define	FK_PLIO		1

# Mapping of FITS Keywords to IRAF image header.  All unrecognized keywords
# are stored here.

#define	UNKNOWN	 Memc[($1+IMU-1)*SZ_MII_INT+1]
define	UNKNOWN	 Memc[($1+IMU-1)*SZ_STRUCT+1]


# FITS image descriptor, used internally by the FITS kernel.  The required
# header parameters are maintained in this descriptor, everything else is
# simply copied into the user area of the IMIO descriptor.

define	LEN_FITDES	500
define	LEN_FITBASE	400

define	FIT_ACMODE	Memi[$1]	# image access mode
define	FIT_PFD		Memi[$1+1]	# pixel file descriptor
define	FIT_PIXOFF	Memi[$1+2]	# pixel offset
define	FIT_TOTPIX	Memi[$1+3]	# size of image in pixfile, chars
define	FIT_IO		Memi[$1+4]	# FITS I/O channel
define	FIT_ZCNV	Memi[$1+5]	# set if on-the-fly conversion needed
define	FIT_IOSTAT	Memi[$1+6]	# i/o status for zfio routines
define  FIT_TFORMP      Memi[$1+7]      # TFORM keyword value pointer
define  FIT_TTYPEP      Memi[$1+8]      # TTYPE keyword value pointer
define  FIT_TFIELDS     Memi[$1+9]      # number of fields in binary table
define  FIT_PCOUNT      Memi[$1+10]     # PCOUNT keyword value
			# extra space
define	FIT_BSCALE	Memd[P2D($1+16)]
define	FIT_BZERO	Memd[P2D($1+18)]
define	FIT_BITPIX	Memi[$1+20]	# bits per pixel
define	FIT_NAXIS	Memi[$1+21]	# number of axes in image
define	FIT_LENAXIS	Memi[$1+22+$2-1]# 35:41 = [7] max
define	FIT_ZBYTES	Memi[$1+30]	# Status value for FIT_ZCNV mode
define	FIT_HFD		Memi[$1+31]	# Header file descriptor
define	FIT_PIXTYPE	Memi[$1+32]
define	FIT_CACHEHDR	Memi[$1+33]	# Cached main header unit's address.
define	FIT_CACHEHLEN	Memi[$1+34]	# Lenght of the above.
define	FIT_IM		Memi[$1+35]	# Has the 'im' descriptor value 
define	FIT_GROUP	Memi[$1+36]
define	FIT_NEWIMAGE	Memi[$1+37]	# Newimage flag
define	FIT_HDRPTR	Memi[$1+38]	# Header data Xtension pointer
define	FIT_PIXPTR	Memi[$1+39]	# Pixel data Xtension pointer
define	FIT_NUMOFFS	Memi[$1+40]	# Number of offsets in cache header.
define	FIT_EOFSIZE	Memi[$1+41]	# Size in char of file before append.
define	FIT_XTENSION	Memi[$1+42]	# Yes, if an Xtension has been read.
define	FIT_INHERIT	Memi[$1+43]	# INHERIT header keyword value.
define	FIT_EXTVER	Memi[$1+44]	# EXTVER value (integer only)
define	FIT_EXPAND	Memi[$1+45]	# Expand the header?
define	FIT_MIN		Memr[P2R($1+46)]# Minimum pixel value
define	FIT_MAX		Memr[P2R($1+47)]# Maximum pixel value
define	FIT_MTIME	Meml[$1+48]	# Time of last mod. for FITS unit 
define	FIT_SVNANR	Memr[P2R($1+49)]
define	FIT_SVNAND	Memd[P2D($1+50)]
define	FIT_SVMAPRIN	Memi[$1+52]
define	FIT_SVMAPROUT	Memi[$1+53]
define	FIT_SVMAPDIN	Memi[$1+54]
define	FIT_SVMAPDOUT	Memi[$1+55]
define	FIT_EXTEND	Memi[$1+56]	# FITS extend keyword
define	FIT_PLMAXLEN	Memi[$1+57]	# PLIO maximum linelen
			# extra space
define	FIT_EXTTYPE	Memc[P2C($1+70)]  # extension type
define	FIT_FILENAME	Memc[P2C($1+110)] # FILENAME value 
define	FIT_EXTNAME	Memc[P2C($1+150)] # EXTNAME value 
define	FIT_DATATYPE	Memc[P2C($1+190)] # datatype string
define	FIT_TITLE	Memc[P2C($1+230)] # title string
define	FIT_OBJECT	Memc[P2C($1+270)] # object string
define  FIT_EXTSTYPE    Memc[P2C($1+310)] # FITS extension subtype
			# extra space

# The FKS terms carry the fkinit or kernel section arguments.
define	FKS_APPEND	Memi[$1+400]	# YES, NO append an extension
define	FKS_INHERIT	Memi[$1+401]	# YES, NO inherit the main header
define	FKS_OVERWRITE	Memi[$1+402]	# YES, NO overwrite an extension
define	FKS_DUPNAME	Memi[$1+403]	# YES, NO allow duplicated EXTNAME
define	FKS_EXTVER	Memi[$1+404]	# YES, NO allow duplicated EXTNAME
define	FKS_EXPAND	Memi[$1+405]	# YES, NO expand the header
define	FKS_PHULINES	Memi[$1+406]	# Allocated lines in PHU
define	FKS_EHULINES	Memi[$1+407]	# Allocated lines in EHU
define	FKS_PADLINES	Memi[$1+408]	# Additional lines for HU
define	FKS_NEWFILE	Memi[$1+409]	# YES, NO force newfile
define	FKS_CACHESIZE	Memi[$1+410]	# size of header cache
define  FKS_SUBTYPE     Memi[$1+411]	# BINTABLE subtype
define	FKS_EXTNAME	Memc[P2C($1+412)] # EXTNAME value
			# extra space


# Reserved FITS keywords known to this code.

define	FK_KEYWORDS "|bitpix|datatype|end|naxis|naxisn|simple|bscale|bzero\
|origin|iraf-tlm|filename|extend|irafname|irafmax|irafmin|datamax\
|datamin|xtension|object|pcount|extname|extver|nextend|inherit\
|zcmptype|tform|ttype|tfields|date|"

define	KW_BITPIX	1
define	KW_DATATYPE	2
define	KW_END		3
define	KW_NAXIS	4
define	KW_NAXISN	5
define	KW_SIMPLE	6
define	KW_BSCALE	7
define	KW_BZERO	8
define	KW_ORIGIN	9
define	KW_IRAFTLM	10
define	KW_FILENAME	11
define	KW_EXTEND	12
define	KW_IRAFNAME	13
define	KW_IRAFMAX	14
define	KW_IRAFMIN	15
define	KW_DATAMAX	16
define	KW_DATAMIN	17
define	KW_XTENSION	18
define	KW_OBJECT	19
define	KW_PCOUNT	20
define	KW_EXTNAME	21
define	KW_EXTVER	22
define	KW_NEXTEND	23
define	KW_INHERIT	24
define  KW_ZCMPTYPE     25
define  KW_TFORM        26
define  KW_TTYPE        27
define  KW_TFIELDS      28
define  KW_DATE         29