aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/daophot/lib/daophotdef.h
blob: 043e7f1b341e57222e9ac1aebd540092a2b5d034 (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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# DAOPHOT header file

# DAOPHOT PSF function types

define	FCTN_FTYPES	"|gauss|lorentz|moffat15|moffat25|penny1|penny2|auto|"
define	FCTN_GAUSS	1
define	FCTN_LORENTZ	2
define	FCTN_MOFFAT15	3
define	FCTN_MOFFAT25	4
define	FCTN_PENNY1	5
define	FCTN_PENNY2	6
define	FCTN_AUTO	7

define	FCTN_NFTYPES	6

# WCS types

define	WCS_LOGICAL	1
define	WCS_TV		2
define	WCS_PHYSICAL	3
define	WCS_WORLD	4

define	WCSINSTR	"|logical|tv|physical|world|"
define	WCSOUTSTR	"|logical|tv|physical|"
define	WCSPSFSTR	"|logical|tv|physical|"

# DAOPHOT parameters (# 1 - 100)

# wcs parameters

define	MW		1	# mwcs pointer
define	WCSIN		2	# input wcs type
define	WCSOUT		3	# output wcs type
define	WCSPSF		4	# psf wcs type
define	CTIN		5	# input transform
define	CTOUT		6	# output transform
define	CTPSF		7	# psf transform

# data dependent parameters

define	SFWHMPSF	8	# full-width at half-max of the psf (scale)
define	FWHMPSF		9	# full-width at half-max of the psf (pixels)
define	MAXGDATA	10	# maximum good data value (ADU)
define	MINGDATA	11	# minimum good data value (ADU)
define	PHOTADU		12 	# gain (e- / ADU)
define	READNOISE	13	# readout noise (e-)
define	SCALE		14 	# scale of the imge

# keyword parameters

define	CCDGAIN		15	# gain image header keyword
define	CCDREAD		16	# readnoise image header keyword
define	EXPTIME		17	# exposure time image header keyword
define	FILTER		18	# filter image header keyword
define	OBSTIME		19	# observing time image header keyword
define	AIRMASS		20	# airmass image header keyword

# observing parameters

define	XAIRMASS	21	# value of the airmass
define	IFILTER		22 	# filter id
define	ITIME		23	# integration time
define	OTIME		24 	# time of observation

# psf fitting parameters 

define	FUNCTION	25	# psf function analytic function
define	VARORDER	26	# order of psf variability (0, 1, or 2)
define	FEXPAND		27	# fraction pixel interpolation (yes or no)
define	SATURATED	28	# use saturated psf stars ?
define	NCLEAN		29	# the number of psf clean passes
define	FUNCLIST	30	# user function list
define	RPSFRAD		31	# requested psf radius (scale)
define	SPSFRAD		32	# psf radius (scale)
define	PSFRAD		33	# psf radius (pixels)
define	SMATCHRAD	34	# matching radius (scale)
define	MATCHRAD	35	# matching radius (pixels)

# star fitting parameters 

define	SFITRAD		36	# fitting radius (scale)
define	FITRAD		37	# fitting radius (pixels)
define	SANNULUS	38	# inner sky radius (scale)
define	ANNULUS		39	# inner sky radius (pixels)
define	SDANNULUS	40	# width of sky annulus (scale)
define	DANNULUS	41	# width of sky annulus (pixels)
define	SMERGERAD	42	# merging radius (scale)
define	MERGERAD	43	# merging radius (pixels)

define	CRITSNRATIO	44	# critical S/N overlap
define	MAXNSTAR	45	# maximum number of stars to fit
define	MAXGROUP	46	# maximum number of stars in group
define	MAXITER		47	# maximum number of iterations
define	RECENTER	48	# recenter ?
define	FITSKY		49	# refit the group sky ?
define	GROUPSKY	50	# use group or individual sky values
define	FLATERR		51	# the flat field error
define	PROFERR		52	# the profile or interpolation error 
define	CLIPRANGE	53	# clipping range
define	CLIPEXP		54	# clipping exponent


# file/image name and input/output parameters

define	TEXT		55	# text file
define	VERBOSE		56	# verbose mode
define	INIMAGE		57	# input image name
define	INPHOTFILE	58	# input photometry file
define	PSFIMAGE	59	# psf image name
define	COORDS		60	# input coordinate file
define	OUTPHOTFILE	61	# output photometry file
define	OUTIMAGE	62	# output image name
define	OUTREJFILE	63	# output rejected photometry file

define	MEMFUDGE	1.05

# DAOPHOT structure definitions

define	LEN_DPSTRUCT (70 + 17 * SZ_FNAME + 17)

# sub-structure pointers

define	DP_VERSION	Memi[$1]	# package version number
define	DP_ADDSTAR	Memi[$1+1]	# pointer to addstar structure
define	DP_ALLSTAR	Memi[$1+2]	# pointer to allstar structure (used)
define	DP_APSEL	Memi[$1+3]	# pointer to phot structure (used)
define	DP_GROUP	Memi[$1+4]	# pointer to group structure
define	DP_NSTAR	Memi[$1+5]	# pointer to nstar structure (used)
define	DP_PEAK		Memi[$1+6]	# pointer to the peak structure
define	DP_PSF		Memi[$1+7]	# pointer to psf structure (used)
define	DP_PSFFIT	Memi[$1+8]	# pointer to psffit structure (used)
define	DP_SUBSTAR	Memi[$1+9]	# pointer to substar structure

# the wcs parameters

define  DP_WCSIN        Memi[$1+10]     # the input wcs
define  DP_WCSOUT       Memi[$1+11]     # the output wcs
define  DP_WCSPSF       Memi[$1+12]     # the psf wcs
define	DP_MW		Memi[$1+13]	# pointer to mwcs structure
define  DP_CTIN         Memi[$1+14]     # the input transformation pointer
define  DP_CTOUT        Memi[$1+15]     # the output transformation pointer
define  DP_CTPSF        Memi[$1+16]     # the psf transformation pointer

# parameters

define	DP_VARORDER	Memi[$1+17]	# order of psf variability
define	DP_FEXPAND	Memi[$1+18]	# expand the analytic function ?
define	DP_SATURATED	Memi[$1+19]	# use saturated psf stars ?
define	DP_NCLEAN	Memi[$1+20]	# number of psf cleaning passes
define	DP_MAXNSTAR	Memi[$1+21]	# maximum number of stars
define	DP_MAXGROUP	Memi[$1+22]	# maximum group size
define	DP_MAXITER	Memi[$1+23]	# maximum number of iterations
define	DP_RECENTER	Memi[$1+24]	# recenter ?
define	DP_FITSKY	Memi[$1+25]	# fit the sky ?
define	DP_GROUPSKY	Memi[$1+26]	# use the group sky value ?
define	DP_CLIPEXP	Memi[$1+27]	# clip exponent
define	DP_TEXT		Memi[$1+28]	# text file or table input/output ?
define	DP_VERBOSE	Memi[$1+29]	# verbose mode ?

define	DP_SCALE	Memr[P2R($1+30)]	# image scale in units/pixel
define	DP_SFWHMPSF	Memr[P2R($1+31)]	# fwhm of the psf (scale)
define	DP_FWHMPSF	Memr[P2R($1+32)]	# fwhm of the psf (pixels)
define	DP_MAXGDATA	Memr[P2R($1+33)]	# maximum good data value (ADU)
define	DP_MINGDATA	Memr[P2R($1+34)]	# minimum good data value (ADU)
define 	DP_PHOTADU	Memr[P2R($1+35)]	# gain in electrons/ADU
define	DP_READNOISE 	Memr[P2R($1+36)]	# readout noise (electrons)
define	DP_XAIRMASS	Memr[P2R($1+37)]	# value of the airmass
define	DP_ITIME	Memr[P2R($1+38)]	# value of the exposure time
define	DP_SMATCHRAD	Memr[P2R($1+39)]	# matching radius (scale)
define	DP_MATCHRAD	Memr[P2R($1+40)]	# matching radius (pixels)
define	DP_RPSFRAD	Memr[P2R($1+41)]	# requested psf radius (scale)
define	DP_SPSFRAD	Memr[P2R($1+42)]	# actual psf radius (scale)
define	DP_PSFRAD	Memr[P2R($1+43)]	# actual psf radius (pixels)
define	DP_SFITRAD	Memr[P2R($1+44)]	# fitting radius (scale)
define	DP_FITRAD	Memr[P2R($1+45)]	# fitting radius (pixels)
define	DP_SANNULUS	Memr[P2R($1+46)]	# inner sky radius (scale)
define	DP_ANNULUS	Memr[P2R($1+47)]	# inner sky radius (pixels)
define	DP_SDANNULUS	Memr[P2R($1+48)]	# width of sky annulus (scale)
define	DP_DANNULUS	Memr[P2R($1+49)]	# width of sky annulus (pixels)
define	DP_CRITSNRATIO	Memr[P2R($1+50)]	# critical S/N overlap 
define	DP_FLATERR	Memr[P2R($1+51)]	# percent flat field error
define	DP_PROFERR	Memr[P2R($1+52)]	# percent profile error
define	DP_CLIPRANGE	Memr[P2R($1+53)]	# clipping range
define	DP_SMERGERAD	Memr[P2R($1+54)]	# merging radius (scale)
define	DP_MERGERAD	Memr[P2R($1+55)]	# merging radius (pixels)

# temporary variables, not yet used

#define	DP_FITRADSQ	Memr[P2R($1+56)]	# fit radius squared (pixels)
#define	DP_PSFRADSQ	Memr[P2R($1+57)]	# psf radius squared (pixels)
#define	DP_RNOISESQ	Memr[P2R($1+58)]	# read noise squared (ADU)
#define	DP_PERR		Memr[P2R($1+59)]	# percentage error
#define	DP_PKERR	Memr[P2R($1+60)]	# peak error
#define	DP_TMAXGDATA	Memr[P2R($1+61)]	# true data max
#define	DP_TMINGDATA	Memr[P2R($1+62)]	# true data min

# file / image names

define	DP_INIMAGE	Memc[P2C($1+64)]                # input image name
define	DP_PSFIMAGE	Memc[P2C($1+64+SZ_FNAME+1)]     # psf image name
define	DP_INPHOTFILE	Memc[P2C($1+64+2*SZ_FNAME+2)]   # input photometry file
define	DP_COORDS	Memc[P2C($1+64+3*SZ_FNAME+3)]   # input coordinate file
define	DP_OUTIMAGE	Memc[P2C($1+64+4*SZ_FNAME+4)]   # output image name
define	DP_OUTPHOTFILE	Memc[P2C($1+64+5*SZ_FNAME+5)]   # output photometry file
define	DP_OUTREJFILE	Memc[P2C($1+64+6*SZ_FNAME+6)]   # output photometry file

# keyword / parameter names

define	DP_IFILTER	Memc[P2C($1+64+7*SZ_FNAME+7)] # filter id
define	DP_OTIME	Memc[P2C($1+64+8*SZ_FNAME+8)] # time of observation
define	DP_CCDGAIN	Memc[P2C($1+64+9*SZ_FNAME+9)] # gain keyword
define	DP_CCDREAD	Memc[P2C($1+64+10*SZ_FNAME+10)] # readnoise keyword
define	DP_EXPTIME	Memc[P2C($1+64+11*SZ_FNAME+11)] # exposure keyword
define	DP_FILTER	Memc[P2C($1+64+12*SZ_FNAME+12)] # filter keyword
define	DP_OBSTIME	Memc[P2C($1+64+13*SZ_FNAME+13)] # obstime keyword
define	DP_AIRMASS	Memc[P2C($1+64+14*SZ_FNAME+14)] # airmass keyword
define	DP_FUNCTION	Memc[P2C($1+64+15*SZ_FNAME+15)]	# analytic psf function
define	DP_FUNCLIST	Memc[P2C($1+64+16*SZ_FNAME+16)]	# psf function list

# PSF Fit Parameters

define	LEN_PSFFIT	(20)

define	DP_PSFUNCTION	Memi[$1]	# PSF type
define	DP_PSFNPARS	Memi[$1+1]	# number of psf parameters
define	DP_PSFSIZE	Memi[$1+2]	# size of PSF lut
define	DP_PSFPARS	Memi[$1+3]	# pointer to the PSF parameters 
define	DP_PSFLUT	Memi[$1+4]	# pointer to the PSF lookup table
define	DP_NVLTABLE	Memi[$1+5]	# number of variability luts
define	DP_NFEXTABLE	Memi[$1+6]	# number of PSF expansion luts
define  DP_PSFHEIGHT 	Memr[P2R($1+7)]	# brightness of psf
define	DP_PSFMAG	Memr[P2R($1+8)]	# magnitude of the PSF
define	DP_PSFX		Memr[P2R($1+9)]	# x position of the PSF
define	DP_PSFY		Memr[P2R($1+10)]# y position of the PSF

define	MAX_NFCTNPARS	(6)		# max number of pars in psf function
define	MAX_NEXPTERMS	(11)		# max number of expansion terms

# default daophot parameter values

define	DEF_SCALE	1.0
define	DEF_FWHMPSF	2.5
define	DEF_PSFRAD	11.0
define	DEF_FITRAD	2.5
define	DEF_ANNULUS	10.0
define	DEF_DANNULUS	10.0
define	DEF_MAXNSTAR	5000
define	DEF_MAXGROUP	60
define	DEF_MAXITER	50
define	DEF_DEFNAME	"default"
define	DEF_LENDEFNAME	7

# some useful macros

define	DAO_GOODDATA	($2>DP_MINGDATA($1)&&$2<DP_MAXGDATA($1))
define	DAO_RELBRIGHT	(10.0**(0.4*(DP_PSFMAG($1) - $2)))
define	DAO_MAGCHECK	(0.4*(DP_PSFMAG($1) - $2))