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
|
# This file defines the object parameters.
# The following are the parameter ids which are the offsets into the object
# data structure. Note that the first group of parameters are those
# determined during detection for potential objects. The second group
# are parameters added after an object has been accepted.
define ID_ROW 0 # i "" "" "Catalog row"
define ID_NUM 1 # i "" "" "Object number"
define ID_PNUM 2 # i "" "" "Parent number"
define ID_XAP 3 # r pixels %.2f "X aperture coordinate"
define ID_YAP 4 # r pixels %.2f "Y aperture coordinate"
define ID_FLUX 5 # r counts "" "Isophotal flux (I - sky)"
define ID_NPIX 6 # i pixels "" "Number of pixels"
define ID_NDETECT 7 # i pixels "" "Number of detected pixels"
define ID_ISIGAVG 8 # r sigma "" "Average (I - sky) / sig"
define ID_ISIGMAX 9 # r sigma "" "Maximum (I - sky) / sig"
define ID_ISIGAVG2 10 # r sigma "" "*Ref average (I - sky) / sig"
define ID_FLAGS 11 # 8 "" "" "Flags"
define ID_SKY 12 # r counts "" "Mean sky"
define ID_SIG 13 # r counts "" "Sky sigma"
define ID_PEAK 14 # r counts "" "Peak pixel value above sky"
define ID_APFLUX 15 # r counts "" "Aperture fluxes"
define ID_FRACFLUX 16 # r counts "" "Apportioned flux"
define ID_FRAC 17 # r "" "" "Apportioned fraction"
define ID_XMIN 18 # i pixels "" "Minimum X"
define ID_XMAX 19 # i pixels "" "Maxium X"
define ID_YMIN 20 # i pixels "" "Minimum Y"
define ID_YMAX 21 # i pixels "" "Maxium Y"
define ID_WX 22 # d pixels %.2f "X world coordinate"
define ID_WY 24 # d pixels %.2f "Y world coordinate"
define ID_X1 26 # r pixels %.2f "X centroid"
define ID_Y1 27 # r pixels %.2f "Y centroid"
define ID_X2 28 # r pixels "" "X 2nd moment"
define ID_Y2 29 # r pixels "" "Y 2nd moment"
define ID_XY 30 # r pixels "" "X 2nd cross moment"
define ID_FLUXVAR 31 # r counts "" "*Variance in the flux"
define ID_XVAR 32 # r pixels "" "*Variance in X centroid"
define ID_YVAR 33 # r pixels "" "*Variance in Y centroid"
define ID_XYCOV 34 # r pixels "" "*Covariance of X and Y"
# The following are derived quantities which have ids above 1000.
define ID_A 1001 # r pixels "" "Semimajor axis"
define ID_B 1002 # r pixels "" "Semiminor axis"
define ID_THETA 1003 # r degrees "" "Position angle"
define ID_ELONG 1004 # r "" "" "Elongation = A/B"
define ID_ELLIP 1005 # r "" "" "Ellipticity = 1 - B/A"
define ID_R 1006 # r pixels "" "Second moment radius"
define ID_CXX 1007 # r pixels "" "Second moment ellipse"
define ID_CYY 1008 # r pixels "" "Second moment ellipse"
define ID_CXY 1009 # r pixels "" "Second moment ellipse"
define ID_FLUXERR 1011 # r counts "" "Error in flux"
define ID_XERR 1012 # r pixels "" "Error in X centroid"
define ID_YERR 1013 # r pixels "" "Error in Y centroid"
define ID_AERR 1014 # r "" "" "Error in A"
define ID_BERR 1015 # r "" "" "Error in B"
define ID_THETAERR 1016 # r degrees "" "Error in THETA"
define ID_CXXERR 1017 # r pixels "" "Error in CXX"
define ID_CYYERR 1018 # r pixels "" "Error in CYY"
define ID_CXYERR 1019 # r pixels "" "Error in CXY"
# Reference to elements of the object data structure may be made with
# the generic OBJ[IRDC] macros or with the individual structure macros.
define OBJI Memi[$1+$2] # Reference integer parameter
define OBJR Memr[P2R($1+$2)] # Reference real parameter
define OBJD Memd[P2D($1+$2)] # Reference double parameter
define OBJC Memc[P2C($1+$2)] # Reference char parameter
define OBJ_DETLEN 12 # Length for candidate objects
define OBJ_LEN 35 # Length for accepted objects
# Detection pass parameters.
define OBJ_ROW OBJI($1,ID_ROW) # Catalog row
define OBJ_NUM OBJI($1,ID_NUM) # Object number
define OBJ_PNUM OBJI($1,ID_PNUM) # Parent object number
define OBJ_XAP OBJR($1,ID_XAP) # X aperture coordinate
define OBJ_YAP OBJR($1,ID_YAP) # Y aperture coordinate
define OBJ_NPIX OBJI($1,ID_NPIX) # Number of pixels
define OBJ_NDETECT OBJI($1,ID_NDETECT) # Number of detected pixels
define OBJ_ISIGAVG OBJR($1,ID_ISIGAVG) # Average (I - sky) / sig
define OBJ_ISIGMAX OBJR($1,ID_ISIGMAX) # Maximum (I - sky) / sig
define OBJ_ISIGAVG2 OBJR($1,ID_ISIGAVG2) # Ref average (I - sky) / sig
define OBJ_FLAGS OBJI($1,ID_FLAGS) # Flags
define OBJ_SKY OBJR($1,ID_SKY) # Mean sky
define OBJ_SIG OBJR($1,ID_SIG) # Sky sigma
define OBJ_PEAK OBJR($1,ID_PEAK) # Peak pixel value above sky
define OBJ_FLUX OBJR($1,ID_FLUX) # Isophotal flux (I - sky)
define OBJ_APFLUX OBJI($1,ID_APFLUX) # Array of aperture fluxes (ptr)
define OBJ_FRACFLUX OBJR($1,ID_FRACFLUX) # Apportioned flux
define OBJ_FRAC OBJR($1,ID_FRAC) # Approtioned fraction
define OBJ_XMIN OBJI($1,ID_XMIN) # Minimum X
define OBJ_XMAX OBJI($1,ID_XMAX) # Maxium X
define OBJ_YMIN OBJI($1,ID_YMIN) # Minimum Y
define OBJ_YMAX OBJI($1,ID_YMAX) # Maxium Y
define OBJ_WX OBJD($1,ID_WX) # X world coordinate
define OBJ_WY OBJD($1,ID_WY) # Y world coordinate
define OBJ_X1 OBJR($1,ID_X1) # X centroid
define OBJ_Y1 OBJR($1,ID_Y1) # Y centroid
define OBJ_X2 OBJR($1,ID_X2) # X centroid
define OBJ_Y2 OBJR($1,ID_Y2) # Y centroid
define OBJ_XY OBJR($1,ID_XY) # X centroid
define OBJ_FLUXVAR OBJR($1,ID_FLUXVAR) # Variance in flux
define OBJ_XVAR OBJR($1,ID_XVAR) # Variance in X centroid
define OBJ_YVAR OBJR($1,ID_YVAR) # Variance in Y centroid
define OBJ_XYCOV OBJR($1,ID_XYCOV) # Covariance of X and Y centroid
# Object flags.
define OBJ_EVAL 001B # Object was evaluated
define OBJ_GROW 002B # Object was grown
define OBJ_SPLIT 004B # Object was split
define OBJ_SINGLE 010B # Object was not split
define OBJ_DARK 020B # Object was below sky
define FLAGSET (andi(OBJ_FLAGS($1),$2)!=0)
define FLAGNOTSET (andi(OBJ_FLAGS($1),$2)==0)
define SETFLAG OBJ_FLAGS($1)=ori(OBJ_FLAGS($1),$2)
define UNSETFLAG OBJ_FLAGS($1)=andi(OBJ_FLAGS($1),noti($2))
define DARK (andi(OBJ_FLAGS($1),OBJ_DARK)!=0)
define EVAL (andi(OBJ_FLAGS($1),OBJ_EVAL)!=0)
define SPLIT (andi(OBJ_FLAGS($1),OBJ_SPLIT)!=0)
define NOTSPLIT (andi(OBJ_FLAGS($1),OBJ_SPLIT)==0)
define SINGLE (andi(OBJ_FLAGS($1),OBJ_SINGLE)!=0)
define NOTSINGLE (andi(OBJ_FLAGS($1),OBJ_SINGLE)==0)
define GROWN (andi(OBJ_FLAGS($1),OBJ_GROW)!=0)
define NOTGROWN (andi(OBJ_FLAGS($1),OBJ_GROW)==0)
define SZ_FLAGS 5 # Size of flag string
|