aboutsummaryrefslogtreecommitdiff
path: root/noao/nproto/ace/objs.h
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /noao/nproto/ace/objs.h
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/nproto/ace/objs.h')
-rw-r--r--noao/nproto/ace/objs.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/noao/nproto/ace/objs.h b/noao/nproto/ace/objs.h
new file mode 100644
index 00000000..20dff95a
--- /dev/null
+++ b/noao/nproto/ace/objs.h
@@ -0,0 +1,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