aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/apphot/lib
diff options
context:
space:
mode:
Diffstat (limited to 'noao/digiphot/apphot/lib')
-rw-r--r--noao/digiphot/apphot/lib/apphot.h110
-rw-r--r--noao/digiphot/apphot/lib/apphotdef.h80
-rw-r--r--noao/digiphot/apphot/lib/center.h102
-rw-r--r--noao/digiphot/apphot/lib/centerdef.h60
-rw-r--r--noao/digiphot/apphot/lib/display.h21
-rw-r--r--noao/digiphot/apphot/lib/displaydef.h23
-rw-r--r--noao/digiphot/apphot/lib/find.h75
-rw-r--r--noao/digiphot/apphot/lib/finddef.h26
-rw-r--r--noao/digiphot/apphot/lib/fitpsf.h72
-rw-r--r--noao/digiphot/apphot/lib/fitpsfdef.h43
-rw-r--r--noao/digiphot/apphot/lib/fitsky.h128
-rw-r--r--noao/digiphot/apphot/lib/fitskydef.h65
-rw-r--r--noao/digiphot/apphot/lib/noise.h54
-rw-r--r--noao/digiphot/apphot/lib/noisedef.h21
-rw-r--r--noao/digiphot/apphot/lib/phot.h86
-rw-r--r--noao/digiphot/apphot/lib/photdef.h43
-rw-r--r--noao/digiphot/apphot/lib/polyphot.h63
-rw-r--r--noao/digiphot/apphot/lib/polyphotdef.h37
-rw-r--r--noao/digiphot/apphot/lib/radprof.h66
-rw-r--r--noao/digiphot/apphot/lib/radprofdef.h38
20 files changed, 1213 insertions, 0 deletions
diff --git a/noao/digiphot/apphot/lib/apphot.h b/noao/digiphot/apphot/lib/apphot.h
new file mode 100644
index 00000000..b9c7fb33
--- /dev/null
+++ b/noao/digiphot/apphot/lib/apphot.h
@@ -0,0 +1,110 @@
+# APPHOT header file
+
+# APPHOT parameters (# 1 - 100)
+
+define IMNAME 1 # Image name
+define IMROOT 2 # Image name
+define CLNAME 3 # Coordinates file name
+define CLROOT 4 # Coordinates file name
+define PLOTFILE 5 # Name of the plotfile
+define OUTNAME 6 # Output file name
+
+define WCSIN 7 # Input WCS
+define WCSOUT 8 # Input WCS
+define MW 9 # MWCS descriptor
+define CTIN 10 # Input WCS transformation
+define CTOUT 11 # Output WCS transformation
+
+define SCALE 12 # Scale in pixels / unit
+define FWHMPSF 13 # Full width half maximum of the PSF
+define POSITIVE 14 # Emission or absorption feature
+define DATAMIN 15 # Minimum good data value
+define DATAMAX 16 # Maximum good data value
+
+define ITIME 17 # Exposure time
+define AIRMASS 18 # Airmass keyword
+define FILTER 19 # Filter keyword
+define OBSTIME 20 # Time of observation keyword
+
+define XAIRMASS 21 # Airmass value
+define FILTERID 22 # Filter id
+define OTIME 23 # Time stamp
+define EXPOSURE 24 # Exposure time keyword
+
+define WX 25 # Previous X cursor position
+define WY 26 # Previous Y cursor position
+define CWX 27 # Current X cursor position
+define CWY 28 # Current Y cursor position
+
+# Define the WCS types
+
+define WCSINSTR "|logical|tv|physical|world|"
+define WCSOUTSTR "|logical|tv|physical|"
+define WCS_LOGICAL 1
+define WCS_TV 2
+define WCS_PHYSICAL 3
+define WCS_WORLD 4
+
+# define APPHOT keywords
+
+define KY_FWHMPSF "fwhmpsf"
+define KY_IMNAME "image"
+define KY_POSITIVE "emission"
+define KY_ITIME "itime"
+define KY_EXPOSURE "exposure"
+define KY_DATAMIN "datamin"
+define KY_DATAMAX "datamax"
+define KY_OUTNAME "output"
+define KY_CLNAME "coords"
+define KY_SCALE "scale"
+define KY_AIRMASS "airmass"
+define KY_XAIRMASS "xairmass"
+define KY_FILTER "filter"
+define KY_FILTERID "ifilter"
+define KY_OBSTIME "obstime"
+define KY_OTIME "otime"
+
+# define APPHOT units strings
+
+define UN_ASCALEUNIT "scaleunit"
+define UN_ASWITCH "switch"
+define UN_ACOUNTS "counts"
+define UN_AUNITS "units"
+define UN_ATIMEUNIT "timeunit"
+define UN_AKEYWORD "keyword"
+define UN_ANAME "name"
+define UN_ANUMBER "number"
+
+# APPHOT string commands
+
+define APCMDS "|fwhmpsf|emission|exposure|itime|datamin|datamax|image|coords|output|scale|airmass|xairmass|filter|ifilter|obstime|otime|"
+
+define APCMD_FWHMPSF 1
+define APCMD_EMISSION 2
+define APCMD_EXPOSURE 3
+define APCMD_ITIME 4
+define APCMD_DATAMIN 5
+define APCMD_DATAMAX 6
+define APCMD_IMAGE 7
+define APCMD_COORDS 8
+define APCMD_OUTPUT 9
+define APCMD_SCALE 10
+define APCMD_AIRMASS 11
+define APCMD_XAIRMASS 12
+define APCMD_FILTER 13
+define APCMD_FILTERID 14
+define APCMD_OBSTIME 15
+define APCMD_OTIME 16
+
+
+# Define the memory cacheing fudge factor
+
+define MEMFUDGE 1.05
+
+# Miscellaneous commands
+
+define MISC "|show|radplots|"
+define MISC1 "|show|"
+
+define ACMD_SHOW 1
+define ACMD_RADPLOTS 2
diff --git a/noao/digiphot/apphot/lib/apphotdef.h b/noao/digiphot/apphot/lib/apphotdef.h
new file mode 100644
index 00000000..a63b6dbd
--- /dev/null
+++ b/noao/digiphot/apphot/lib/apphotdef.h
@@ -0,0 +1,80 @@
+# APPHOT Structure
+
+define LEN_APSTRUCT (36 + 12 * SZ_FNAME + 12)
+
+# apphot definitions
+
+define AP_VERSION Memi[$1] # Package version number
+define AP_CWX Memr[P2R($1+1)] # Current x cursor coordinate
+define AP_CWY Memr[P2R($1+2)] # Current y cursor coordinate
+define AP_WX Memr[P2R($1+3)] # Previous x cursor coordinate
+define AP_WY Memr[P2R($1+4)] # Previous y cursor coordinate
+define AP_FWHMPSF Memr[P2R($1+5)] # FWHM of the PSF
+define AP_SCALE Memr[P2R($1+6)] # Scale in pixels / unit (internal)
+define AP_POSITIVE Memi[$1+7] # Emission feature ?
+define AP_DATAMIN Memr[P2R($1+8)] # Mininum good data value
+define AP_DATAMAX Memr[P2R($1+9)] # Maximum good data value
+define AP_ITIME Memr[P2R($1+10)] # Exposure time
+define AP_XAIRMASS Memr[P2R($1+11)] # Air mass
+
+# pointer to the apphot strucutures
+
+define AP_NOISE Memi[$1+12] # Pointer to noise structure
+define AP_PCENTER Memi[$1+13] # Pointer to center structure
+define AP_PSKY Memi[$1+14] # Pointer to sky structure
+define AP_PPSF Memi[$1+15] # Pointer to psf structure
+define AP_PPHOT Memi[$1+16] # Pointer to phot structure
+define AP_PDISPLAY Memi[$1+17] # Pointer to display structure
+define AP_POLY Memi[$1+18] # Pointer to polyphot structure
+define AP_RPROF Memi[$1+19] # Pointer to radprof strucuture
+define AP_PFIND Memi[$1+20] # Pointer to the find structure
+
+# pointer to sequential access buffer (not used currently)
+
+define AP_SEQUENTIAL Memi[$1+21] # Sequential or random access
+define AP_IMBUF Memi[$1+22] # Pointer to internal buffer
+define AP_HWIDTH Memi[$1+23] # Half-width of buffer in image lines
+define AP_IMX1 Memi[$1+24] # Lower column limit of buffer
+define AP_IMX2 Memi[$1+25] # Upper column limit of buffer
+define AP_IMY1 Memi[$1+26] # Lower line limit of buffer
+define AP_IMY2 Memi[$1+27] # Upper line limit of buffer
+
+# pointer to the wcs info
+
+
+define AP_WCSIN Memi[$1+28] # the input wcs
+define AP_WCSOUT Memi[$1+29] # the output wcs
+define AP_MW Memi[$1+30] # the mwcs pointer
+define AP_CTIN Memi[$1+31] # the input transformation pointer
+define AP_CTOUT Memi[$1+32] # the output transformation pointer
+
+# image, file and keyword names
+
+define AP_IMNAME Memc[P2C($1+36)] # IRAF image name
+define AP_IMROOT Memc[P2C($1+36+SZ_FNAME+1)] # IRAF image root name
+define AP_CLNAME Memc[P2C($1+36+2*SZ_FNAME+2)] # Coordinate list
+define AP_CLROOT Memc[P2C($1+36+3*SZ_FNAME+3)] # Coordinate list root
+define AP_PLOTFILE Memc[P2C($1+36+4*SZ_FNAME+4)] # Plotfile
+define AP_OUTNAME Memc[P2C($1+36+5*SZ_FNAME+5)] # Output
+define AP_EXPOSURE Memc[P2C($1+36+6*SZ_FNAME+6)] # Exposure keyword
+define AP_AIRMASS Memc[P2C($1+36+7*SZ_FNAME+7)] # Airmass keyword
+define AP_FILTER Memc[P2C($1+36+8*SZ_FNAME+8)] # Filter keyword
+define AP_FILTERID Memc[P2C($1+36+9*SZ_FNAME+9)] # Filter id
+define AP_OBSTIME Memc[P2C($1+36+10*SZ_FNAME+10)] # Obstime keyword
+define AP_OTIME Memc[P2C($1+36+11*SZ_FNAME+11)] # Time of observation
+
+# default definitions
+
+define DEF_SCALE 1.0000
+define DEF_POSITIVE YES
+define DEF_DATAMIN INDEFR
+define DEF_DATAMAX INDEFR
+
+define DEF_EXPOSURE ""
+define DEF_AIRMASS ""
+define DEF_FILTER ""
+define DEF_OBSTIME ""
+define DEF_ITIME INDEFR
+define DEF_XAIRMASS INDEFR
+define DEF_FILTERID "INDEF"
+define DEF_OTIME "INDEF"
diff --git a/noao/digiphot/apphot/lib/center.h b/noao/digiphot/apphot/lib/center.h
new file mode 100644
index 00000000..ecf672f3
--- /dev/null
+++ b/noao/digiphot/apphot/lib/center.h
@@ -0,0 +1,102 @@
+# CENTER defintions
+
+# centering algorithms
+
+define AP_CENTROID1D 1 # 1D centroiding
+define AP_GAUSS1D 2 # 1D Gaussian
+define AP_NONE 3 # No centering
+define AP_OFILT1D 4 # 1-D optimal filtering
+
+# centering errors (# 101 - 200)
+
+define AP_OK 0 # No error
+define AP_CTR_NOAREA 101 # No pixels for centering
+define AP_CTR_OUTOFBOUNDS 102 # Centering aperture extends oob
+define AP_CTR_LOWSNRATIO 103 # S/N ratio too low for centering
+define AP_CTR_NTOO_SMALL 104 # Too few histogram bins
+define AP_CTR_SINGULAR 105 # Fit is singular
+define AP_CTR_NOCONVERGE 106 # Solution does not converge
+define AP_CTR_BADSHIFT 107 # Max shift parameter exceeded
+define AP_CTR_BADDATA 108 # Bad data in centering subraster
+
+# centering parameters (# 101 - 200)
+
+define CAPERT 101
+define CENTERFUNCTION 102
+define MINSNRATIO 103
+define MAXSHIFT 104
+define CLEAN 105
+define RCLEAN 106
+define RCLIP 107
+define SIGMACLEAN 108
+define OXINIT 109
+define OYINIT 110
+define XCENTER 111
+define YCENTER 112
+define OXCENTER 113
+define OYCENTER 114
+define XERR 115
+define YERR 116
+define CMAXITER 117
+define CXCUR 118
+define CYCUR 119
+define XSHIFT 120
+define YSHIFT 121
+define OXSHIFT 122
+define OYSHIFT 123
+define CSTRING 124
+define CDATALIMIT 125
+define CTHRESHOLD 126
+
+# center keywords
+
+define KY_CAPERT "cboxwidth"
+define KY_CSTRING "calgorithm"
+define KY_MINSNRATIO "minsnratio"
+define KY_MAXSHIFT "maxshift"
+define KY_CLEAN "clean"
+define KY_RCLEAN "rclean"
+define KY_RCLIP "rclip"
+define KY_SIGMACLEAN "kclean"
+define KY_CMAXITER "cmaxiter"
+define KY_CTHRESHOLD "cthreshold"
+
+# center unit strings
+
+#define UN_CAPERT "scaleunit"
+#define UN_CSTRING "algorithm"
+#define UN_MINSNRATIO "number"
+#define UN_MAXSHIFT "scaleunit"
+#define UN_CLEAN "switch"
+#define UN_RCLEAN "scaleunit"
+#define UN_RCLIP "scaleunit"
+#define UN_SIGMACLEAN "sigma"
+#define UN_CMAXITER "number"
+#define UN_CTHRESHOLD "sigma"
+
+define UN_CSCALEUNIT "scaleunit"
+define UN_CNUMBER "number"
+define UN_CSIGMA "sigma"
+define UN_CSWITCH "switch"
+define UN_CALGORITHM "algorithm"
+
+# center string commands
+
+define CSHOWARGS "|data|center|"
+define CFUNCS "|centroid|gauss|none|ofilter|"
+define CCMDS "|cboxwidth|calgorithm|maxshift|minsnratio|cmaxiter|clean|rclean|rclip|kclean|mkcenter|cthreshold|"
+
+define CCMD_CBOXWIDTH 1
+define CCMD_CALGORITHM 2
+define CCMD_MAXSHIFT 3
+define CCMD_MINSNRATIO 4
+define CCMD_CMAXITER 5
+define CCMD_CLEAN 6
+define CCMD_RCLEAN 7
+define CCMD_RCLIP 8
+define CCMD_KCLEAN 9
+define CCMD_MKCENTER 10
+define CCMD_CTHRESHOLD 11
+
+define CCMD_DATA 1
+define CCMD_CENTER 2
diff --git a/noao/digiphot/apphot/lib/centerdef.h b/noao/digiphot/apphot/lib/centerdef.h
new file mode 100644
index 00000000..c9dcd6a4
--- /dev/null
+++ b/noao/digiphot/apphot/lib/centerdef.h
@@ -0,0 +1,60 @@
+# CENTER header file
+
+define LEN_CENSTRUCT (36 + SZ_FNAME + 1)
+
+# centering parameters
+
+define AP_CENTERFUNCTION Memi[$1] # Centering algorithm
+define AP_CAPERT Memr[P2R($1+1)] # Centering box half-width
+define AP_CTHRESHOLD Memr[P2R($1+2)] # Threshold above cdatalimit
+define AP_MAXSHIFT Memr[P2R($1+3)] # Maximum center shift
+define AP_MINSNRATIO Memr[P2R($1+4)] # Minimum s/n ratio
+define AP_CLEAN Memi[$1+5] # Clean before centering
+define AP_RCLEAN Memr[P2R($1+6)] # Cleaning radius
+define AP_RCLIP Memr[P2R($1+7)] # Clipping radius
+define AP_SIGMACLEAN Memr[P2R($1+8)] # Sky sigma for cleaning
+define AP_CMAXITER Memi[$1+9] # Maximum number of iterations
+
+# centering buffers
+
+define AP_CTRPIX Memi[$1+10] # Pointer to pixels
+define AP_XCTRPIX Memi[$1+11] # Pointer to x coords (not used)
+define AP_YCTRPIX Memi[$1+12] # Pointer to y coords (not used)
+define AP_NCTRPIX Memi[$1+13] # Number of pixels (not used)
+define AP_LENCTRBUF Memi[$1+14] # Centering buffer sz (not used)
+define AP_CXCUR Memr[P2R($1+15)] # Centering buffer x center
+define AP_CYCUR Memr[P2R($1+16)] # Centering buffer y center
+define AP_CXC Memr[P2R($1+17)] # X center of subraster
+define AP_CYC Memr[P2R($1+18)] # Y center of subraster
+define AP_CNX Memi[$1+19] # Y dimension of subraster
+define AP_CNY Memi[$1+20] # Y dimension of subraster
+
+# center fitting output
+
+define AP_OXINIT Memr[P2R($1+21)] # initial output x center
+define AP_OYINIT Memr[P2R($1+22)] # initial output y center
+define AP_XCENTER Memr[P2R($1+23)] # computed x center
+define AP_YCENTER Memr[P2R($1+24)] # computed y center
+define AP_OXCENTER Memr[P2R($1+25)] # computed output x center
+define AP_OYCENTER Memr[P2R($1+26)] # computed output y center
+define AP_XSHIFT Memr[P2R($1+27)] # total x shift
+define AP_YSHIFT Memr[P2R($1+28)] # total y shift
+define AP_OXSHIFT Memr[P2R($1+29)] # total output x shift
+define AP_OYSHIFT Memr[P2R($1+30)] # total output y shift
+define AP_XERR Memr[P2R($1+31)] # x error
+define AP_YERR Memr[P2R($1+32)] # y error
+define AP_CDATALIMIT Memr[P2R($1+33)] # min (max) of subraster
+define AP_CSTRING Memc[P2C($1+34)]# centering algorithm id
+
+# default setup values for centering parameters
+
+define DEF_CENTERFUNCTION AP_CENTROID1D
+define DEF_CAPERT 2.5
+define DEF_CTHRESHOLD 0.0
+define DEF_MINSNRATIO 1.0
+define DEF_CMAXITER 10
+define DEF_MAXSHIFT 1.0
+define DEF_CLEAN NO
+define DEF_RCLEAN 1.0
+define DEF_RCLIP 2.0
+define DEF_CLEANSIGMA 3.0
diff --git a/noao/digiphot/apphot/lib/display.h b/noao/digiphot/apphot/lib/display.h
new file mode 100644
index 00000000..ae8ff523
--- /dev/null
+++ b/noao/digiphot/apphot/lib/display.h
@@ -0,0 +1,21 @@
+# APPHOT display parameters
+
+# display parameters (# 501 - 600)
+
+define MKSKY 501
+define MKCENTER 502
+define MKAPERT 503
+define MKPOLYGON 504
+define MKPSFBOX 505
+define RADPLOTS 506
+define MKDETECTIONS 507
+
+# display parameters
+
+define KY_MKSKY "mksky"
+define KY_MKCENTER "mkcenter"
+define KY_MKAPERT "mkapert"
+define KY_MKPOLYGON "mkpolygon"
+define KY_MKPSFBOX "mkbox"
+define KY_RADPLOTS "radplots"
+define KY_MKDETECTIONS "mkdetections"
diff --git a/noao/digiphot/apphot/lib/displaydef.h b/noao/digiphot/apphot/lib/displaydef.h
new file mode 100644
index 00000000..8add188d
--- /dev/null
+++ b/noao/digiphot/apphot/lib/displaydef.h
@@ -0,0 +1,23 @@
+# APPHOT display structure
+
+define LEN_DISPLAYSTRUCT 10
+
+# display parameters
+
+define AP_MKSKY Memi[$1] # Mark sky circles
+define AP_MKCENTER Memi[$1+1] # Mark center circles
+define AP_MKAPERT Memi[$1+2] # Mark aperture circles
+define AP_MKPOLYGON Memi[$1+3] # Mark polygon
+define AP_MKPSFBOX Memi[$1+4] # Mark psf fitting box
+define AP_RADPLOTS Memi[$1+5] # Make radial plots
+define AP_MKDETECTIONS Memi[$1+6] # Mark detected stars
+
+# default values for the display parameters
+
+define DEF_MKSKY NO
+define DEF_MKCENTER NO
+define DEF_MKAPERT NO
+define DEF_MKPOLYGON NO
+define DEF_MKPSFBOX NO
+define DEF_RADPLOTS NO
+define DEF_MKDETECTIONS NO
diff --git a/noao/digiphot/apphot/lib/find.h b/noao/digiphot/apphot/lib/find.h
new file mode 100644
index 00000000..b5e3760b
--- /dev/null
+++ b/noao/digiphot/apphot/lib/find.h
@@ -0,0 +1,75 @@
+# Find header file
+
+# find parameters (# 701 - 800)
+
+define RATIO 701
+define THETA 702
+define NSIGMA 703
+define SHARPLO 704
+define SHARPHI 705
+define ROUNDLO 706
+define ROUNDHI 707
+define THRESHOLD 708
+
+# find keyword units
+
+define KY_RATIO "ratio"
+define KY_THETA "theta"
+define KY_NSIGMA "nsigma"
+define KY_SHARPLO "sharplo"
+define KY_SHARPHI "sharphi"
+define KY_ROUNDLO "roundlo"
+define KY_ROUNDHI "roundhi"
+define KY_THRESHOLD "threshold"
+
+# find parameter units
+
+#define UN_RATIO "number"
+#define UN_THETA "degrees"
+#define UN_NSIGMA "sigma"
+#define UN_SHARPLO "number"
+#define UN_SHARPHI "number"
+#define UN_ROUNDLO "number"
+#define UN_ROUNDHI "number"
+#define UN_THRESHOLD "sigma"
+
+define UN_FNUMBER "number"
+define UN_FSIGMA "sigma"
+define UN_FDEGREES "degrees"
+
+# define daofind commands
+
+define FSHOWARGS "|data|find|"
+define FCMDS "|nsigma|ratio|sharplo|sharphi|roundlo|roundhi|mkdetections|\
+theta|threshold|"
+
+# define daofind command strings
+
+define FCMD_NSIGMA 1
+define FCMD_RATIO 2
+define FCMD_SHARPLO 3
+define FCMD_SHARPHI 4
+define FCMD_ROUNDLO 5
+define FCMD_ROUNDHI 6
+define FCMD_MKDETECTIONS 7
+define FCMD_THETA 8
+define FCMD_THRESHOLD 9
+
+define FCMD_DATA 1
+define FCMD_FIND 2
+
+
+# define the gaussian sums structure
+
+define LEN_GAUSS 10
+
+define GAUSS_SUMG 1
+define GAUSS_SUMGSQ 2
+define GAUSS_PIXELS 3
+define GAUSS_DENOM 4
+define GAUSS_SGOP 5
+
+# miscellaneous
+
+define FWHM_TO_SIGMA 0.42467
+define RMIN 2.001
diff --git a/noao/digiphot/apphot/lib/finddef.h b/noao/digiphot/apphot/lib/finddef.h
new file mode 100644
index 00000000..4ea9e99d
--- /dev/null
+++ b/noao/digiphot/apphot/lib/finddef.h
@@ -0,0 +1,26 @@
+# FIND header file
+
+define LEN_FIND (10)
+
+# find model parameters
+
+define AP_RATIO Memr[P2R($1)] # Gaussian axis ratio
+define AP_THETA Memr[P2R($1+1)] # Gaussian position angle
+define AP_NSIGMA Memr[P2R($1+2)] # Size of convolution kernel
+define AP_SHARPLO Memr[P2R($1+3)] # Lower sharpness bound
+define AP_SHARPHI Memr[P2R($1+4)] # Upper sharpness bound
+define AP_ROUNDLO Memr[P2R($1+5)] # Lower roundness bound
+define AP_ROUNDHI Memr[P2R($1+6)] # Higher roundness bound
+define AP_THRESHOLD Memr[P2R($1+7)] # Threshold in sigma for detection
+
+
+# noise model defaults
+
+define DEF_RATIO 1.0
+define DEF_THETA 0.0
+define DEF_NSIGMA 1.5
+define DEF_SHARPLO 0.2
+define DEF_SHARPHI 1.0
+define DEF_ROUNDLO -1.0
+define DEF_ROUNDHI 1.0
+define DEF_THRESHOLD 0.0
diff --git a/noao/digiphot/apphot/lib/fitpsf.h b/noao/digiphot/apphot/lib/fitpsf.h
new file mode 100644
index 00000000..5aa5f04c
--- /dev/null
+++ b/noao/digiphot/apphot/lib/fitpsf.h
@@ -0,0 +1,72 @@
+# FITPSF header file
+
+# fitpsf functions
+
+define AP_RADGAUSS 1 # Radial Gaussian
+define AP_ELLGAUSS 2 # Elliptical Gaussian
+define AP_MOMENTS 3 # Moment analysis
+
+# fitpsf errors (# 401 - 500)
+
+define AP_OK 0 # no error
+define AP_NOPSFAREA 401 # No pixels for PSF
+define AP_PSF_OUTOFBOUNDS 402 # PSF aperture extends oob
+define AP_NPSF_TOO_SMALL 403 # Too few PSF points
+define AP_PSF_SINGULAR 404 # Fit is singular
+define AP_PSF_NOCONVERGE 405 # Solution does not converge
+
+# fitpsf parameters (# 401 - 500)
+
+define PSFUNCTION 401
+define MAXNPARS 402
+define PK2 403
+define PMAXITER 404
+define PSFAPERT 405
+define NPARS 406
+define PARS 407
+define PERRS 408
+define PNREJECT 409
+define PFXCUR 410
+define PFYCUR 411
+define OPFXCUR 412
+define OPFYCUR 413
+define PSFSTRING 414
+
+# define fitpsf keywords
+
+define KY_PSFUNCTION "function"
+define KY_PSFAPERT "box"
+define KY_PK2 "kreject"
+define KY_PMAXITER "maxiter"
+define KY_PNREJECT "nreject"
+define KY_PSFSTRING "function"
+
+# define fitpsf units
+
+#define UN_PSFUNCTION "model"
+#define UN_PSFAPERT "scaleunit"
+#define UN_PK2 "sigma"
+#define UN_PMAXITER "number"
+#define UN_PNREJECT "number"
+#define UN_PSFSTRING "model"
+
+define UN_PSFSCALEUNIT "scaleunit"
+define UN_PSFNUMBER "number"
+define UN_PSFMODEL "model"
+define UN_PSFSIGMA "sigma"
+
+# fitpsf string constants
+
+define PFSHOWARGS "|data|fit|"
+define PSFFUNCS "|radgauss|elgauss|moments|"
+define PSFCMDS "|function|box|kreject|maxiter|nreject|mkbox|"
+
+define PFCMD_DATA 1
+define PFCMD_FIT 2
+
+define PFCMD_FUNCTION 1
+define PFCMD_BOX 2
+define PFCMD_KREJECT 3
+define PFCMD_MAXITER 4
+define PFCMD_NREJECT 5
+define PFCMD_MKBOX 6
diff --git a/noao/digiphot/apphot/lib/fitpsfdef.h b/noao/digiphot/apphot/lib/fitpsfdef.h
new file mode 100644
index 00000000..bbd88ad0
--- /dev/null
+++ b/noao/digiphot/apphot/lib/fitpsfdef.h
@@ -0,0 +1,43 @@
+# FITPSF header file
+
+define LEN_PSFSTRUCT (25 + SZ_FNAME + 1)
+
+# fitpsf parameters
+
+define AP_PSFUNCTION Memi[$1] # PSF function
+define AP_PSFNPARS Memi[$1+1] # Number of parameters
+define AP_MAXNPARS Memi[$1+2] # Maximum number of parameters
+define AP_PSFAPERT Memr[P2R($1+3)] # Half-width of fitting box
+define AP_PMAXITER Memi[$1+4] # Maximum number of iterations
+define AP_PK2 Memr[P2R($1+5)] # Rejection limit in sigma
+define AP_PNREJECT Memi[$1+6] # Maximum number of rejections
+
+# fitpsf buffers
+
+define AP_PSFPIX Memi[$1+7] # Pointer to pixels
+define AP_PSFXPIX Memi[$1+8] # X coordinates array (not used)
+define AP_PSFYPIX Memi[$1+9] # Y coordinates array (not used)
+define AP_NPSFPIX Memi[$1+10] # Number of pixels (not used)
+define AP_LENPSFBUF Memi[$1+11] # Length of pixel buffer (not used)
+define AP_PXC Memr[P2R($1+12)]# X center of subraster
+define AP_PYC Memr[P2R($1+13)]# Y center of subraster
+define AP_PNX Memi[$1+14] # X dimension of subraster
+define AP_PNY Memi[$1+15] # Y dimension of subraster
+define AP_PFXCUR Memr[P2R($1+16)]# X initial position
+define AP_PFYCUR Memr[P2R($1+17)]# Y initial position
+define AP_OPFXCUR Memr[P2R($1+18)]# X initial position
+define AP_OPFYCUR Memr[P2R($1+19)]# Y initial position
+
+# fitpsf answers
+
+define AP_PPARS Memi[$1+20] # fitted parameters
+define AP_PPERRS Memi[$1+21] # errors in the parameters
+define AP_PSFSTRING Memc[P2C($1+22)] # functions string
+
+# default fitpsf parameters
+
+define DEF_MAXNPARS 10
+define DEF_PSFUNCTION AP_RADGAUSS
+define DEF_PMAXITER 50
+define DEF_PK2 3.0
+define DEF_PNREJECT 1
diff --git a/noao/digiphot/apphot/lib/fitsky.h b/noao/digiphot/apphot/lib/fitsky.h
new file mode 100644
index 00000000..b4cedaea
--- /dev/null
+++ b/noao/digiphot/apphot/lib/fitsky.h
@@ -0,0 +1,128 @@
+# FITSKY definitions
+
+# define the sky fitting algorithms
+
+define AP_CONSTANT 1 # Use a constant sky
+define AP_MODE 2 # Compute the mode of the sky pixels
+define AP_CENTROID 3 # Compute the peak of the histogram
+define AP_SKYFILE 4 # Get values from a file
+define AP_HISTPLOT 5 # Mark the sky on a histogram plot
+define AP_MEDIAN 6 # Take median of sky pixels
+define AP_RADPLOT 7 # Mark sky on radial profile plot
+define AP_GAUSS 8 # Non-linear fit to a Gaussian
+define AP_OFILT 9 # Optimal filtering
+define AP_CROSSCOR 10 # Cross correlation method
+define AP_MEAN 11 # Compute the mean of the sky pixels
+
+# define sky fitting errors (# 201 - 300)
+
+define AP_OK 0 # No error
+define AP_NOSKYAREA 201 # Width of the annulus is <= 0.0 pixels
+define AP_SKY_OUTOFBOUNDS 202 # Sky annulus out of bounds
+define AP_NOHISTOGRAM 203 # Cannot make a histogram
+define AP_FLAT_HIST 204 # Histogram is flat or concave
+define AP_NSKY_TOO_SMALL 205 # Too few points for fit
+define AP_SKY_SINGULAR 206 # Fit is singular
+define AP_SKY_NOCONVERGE 207 # Solution does not converge
+define AP_NOGRAPHICS 208 # NULL graphics pointer
+define AP_NOSKYFILE 209 # NULL sky file descriptor
+define AP_EOFSKYFILE 210 # End of sky file
+define AP_BADSKYSCAN 211 # Incomplete scan of sky file
+define AP_BADPARAMS 212 # Non-physical parameters
+
+# sky fitting parameters (# 201 - 300)
+
+define SKYFUNCTION 201
+define ANNULUS 202
+define DANNULUS 203
+define SKY_BACKGROUND 204
+define K1 205
+define BINSIZE 206
+define SMOOTH 207
+define SMAXITER 208
+define SLOCLIP 209
+define SHICLIP 210
+define SNREJECT 211
+define SLOREJECT 212
+define SHIREJECT 213
+define RGROW 214
+define SKY_MODE 215
+define SKY_SIGMA 216
+define SKY_SKEW 217
+define NSKY 218
+define NSKY_REJECT 219
+define SXCUR 220
+define SYCUR 221
+define OSXCUR 222
+define OSYCUR 223
+define SSTRING 224
+
+# define sky fitting keywords
+
+define KY_SSTRING "salgorithm"
+define KY_ANNULUS "annulus"
+define KY_DANNULUS "dannulus"
+define KY_SKY_BACKGROUND "skyvalue"
+define KY_K1 "khist"
+define KY_BINSIZE "binsize"
+define KY_SMOOTH "smooth"
+define KY_SMAXITER "smaxiter"
+define KY_SLOCLIP "sloclip"
+define KY_SHICLIP "shiclip"
+define KY_SNREJECT "snreject"
+define KY_SLOREJECT "sloreject"
+define KY_SHIREJECT "shireject"
+define KY_RGROW "rgrow"
+
+# define sky fitting units strings
+
+#define UN_SSTRING "algorithm"
+#define UN_ANNULUS "scaleunit"
+#define UN_DANNULUS "scaleunit"
+#define UN_SKY_BACKGROUND "counts"
+#define UN_K1 "sigma"
+#define UN_BINSIZE "sigma"
+#define UN_SMOOTH "switch"
+#define UN_SMAXITER "number"
+#define UN_SLOCLIP "percent"
+#define UN_SHICLIP "percent"
+#define UN_SNREJECT "number"
+#define UN_SLOREJECT "sigma"
+#define UN_SHIREJECT "sigma"
+#define UN_RGROW "scaleunit"
+
+define UN_SALGORITHM "algorithm"
+define UN_SSCALEUNIT "scaleunit"
+define UN_SSIGMA "sigma"
+define UN_SNUMBER "number"
+define UN_SPERCENT "percent"
+define UN_SCOUNTS "counts"
+define UN_SSWITCH "switch"
+
+# fitsky string definitions
+
+define SSHOWARGS "|data|sky|"
+define SFUNCS "|constant|mode|centroid|file|histplot|median|\
+radplot|gauss|ofilter|crosscor|mean|"
+define SCMDS "|annulus|dannulus|salgorithm|khist|sloreject|\
+shireject|smaxiter|binsize|smooth|rgrow|snreject|skyvalue|mksky|sloclip|\
+shiclip|"
+
+define SCMD_ANNULUS 1
+define SCMD_DANNULUS 2
+define SCMD_SALGORITHM 3
+define SCMD_KHIST 4
+define SCMD_SLOREJECT 5
+define SCMD_SHIREJECT 6
+define SCMD_SMAXITER 7
+define SCMD_BINSIZE 8
+define SCMD_SMOOTH 9
+define SCMD_RGROW 10
+define SCMD_SNREJECT 11
+define SCMD_SKYVALUE 12
+define SCMD_MKSKY 13
+define SCMD_SLOCLIP 14
+define SCMD_SHICLIP 15
+
+define SCMD_DATA 1
+define SCMD_SKY 2
diff --git a/noao/digiphot/apphot/lib/fitskydef.h b/noao/digiphot/apphot/lib/fitskydef.h
new file mode 100644
index 00000000..f768851f
--- /dev/null
+++ b/noao/digiphot/apphot/lib/fitskydef.h
@@ -0,0 +1,65 @@
+# FITSKY structure
+
+define LEN_SKYSTRUCT (36 + SZ_FNAME + 1)
+
+# sky fitting parameters
+
+define AP_SKYFUNCTION Memi[$1] # sky fitting algorithm
+define AP_ANNULUS Memr[P2R($1+1)] # inner radius of annulus in scale
+define AP_DANNULUS Memr[P2R($1+2)] # annulus width in scale
+define AP_SKYBACKGROUND Memr[P2R($1+3)] # user defined sky value
+define AP_K1 Memr[P2R($1+4)] # K-sigma histogram rejection
+define AP_BINSIZE Memr[P2R($1+5)] # histogram binsize in sky sigma
+define AP_SMOOTH Memi[$1+6] # Smooth histogram ?
+define AP_SMAXITER Memi[$1+7] # maximum number of iterations
+define AP_SLOCLIP Memr[P2R($1+8)] # lower clipping percentile
+define AP_SHICLIP Memr[P2R($1+9)] # lower clipping percentile
+define AP_SNREJECT Memi[$1+10] # maximum number of rejection cycles
+define AP_SLOREJECT Memr[P2R($1+11)] # lower K-sigma rejection for pixels
+define AP_SHIREJECT Memr[P2R($1+12)] # higher K-sigma rejection for pixels
+define AP_RGROW Memr[P2R($1+13)] # region growing radius in scale
+
+# sky buffer definitions
+
+define AP_SKYPIX Memi[$1+14] # pointer to sky pixels
+define AP_INDEX Memi[$1+15] # pointer to ordering array
+define AP_COORDS Memi[$1+16] # pointer to sky coordinates array
+define AP_SWGT Memi[$1+17] # pointer to sky weights
+define AP_NSKYPIX Memi[$1+18] # number of sky pixels
+define AP_NBADSKYPIX Memi[$1+19] # number of bad sky pixels
+define AP_LENSKYBUF Memi[$1+20] # length of sky buffers
+define AP_SXCUR Memr[P2R($1+21)] # x center of sky annulus
+define AP_SYCUR Memr[P2R($1+22)] # y center of sky annulus
+define AP_SXC Memr[P2R($1+23)] # x center of sky subraster
+define AP_SYC Memr[P2R($1+24)] # y center of sky subraster
+define AP_SNX Memi[$1+25] # x dimension of sky subraster
+define AP_SNY Memi[$1+26] # y dimension of sky subraster
+
+# fitsky output
+
+define AP_OSXCUR Memr[P2R($1+27)] # x center of sky annulus
+define AP_OSYCUR Memr[P2R($1+28)] # y center of sky annulus
+define AP_SKY_MODE Memr[P2R($1+29)] # computed sky value
+define AP_SKY_SIG Memr[P2R($1+30)] # computed sky sigma
+define AP_SKY_SKEW Memr[P2R($1+31)] # computed sky skew
+define AP_NSKY Memi[$1+32] # number of sky pix
+define AP_NSKY_REJECT Memi[$1+33] # number of rejected sky pix
+
+define AP_SSTRING Memc[P2C($1+34)] # salgorithm string
+
+# default setup values for sky fitting
+
+define DEF_SKYFUNCTION AP_MODE
+define DEF_SKYVALUE 0.0
+define DEF_ANNULUS 10.
+define DEF_DANNULUS 10.
+define DEF_SLOCLIP 0.0
+define DEF_SHICLIP 0.0
+define DEF_SNREJECT 50
+define DEF_SLOREJECT 3.0
+define DEF_SHIREJECT 3.0
+define DEF_SMAXITER 10
+define DEF_RGROW 0.0
+define DEF_K1 3.0
+define DEF_BINSIZE 0.10
+define DEF_SMOOTH NO
diff --git a/noao/digiphot/apphot/lib/noise.h b/noao/digiphot/apphot/lib/noise.h
new file mode 100644
index 00000000..32ef1ed1
--- /dev/null
+++ b/noao/digiphot/apphot/lib/noise.h
@@ -0,0 +1,54 @@
+# Noise model header file
+
+# noise parameters (# 601 - 700)
+
+define SKYSIGMA 601
+define EPADU 603
+define NOISEFUNCTION 604
+define GAIN 605
+define NSTRING 606
+define CCDREAD 607
+define READNOISE 608
+
+# noise keywords
+
+define KY_SKYSIGMA "sigma"
+define KY_EPADU "epadu"
+define KY_GAIN "gain"
+define KY_NSTRING "noise"
+define KY_CCDREAD "ccdread"
+define KY_READNOISE "readnoise"
+
+# noise parameter units
+
+#define UN_SKYSIGMA "counts"
+#define UN_EPADU "e-/adu"
+#define UN_GAIN "keyword"
+#define UN_NSTRING "model"
+#define UN_CCDREAD "keyword"
+#define UN_READNOISE "e-"
+
+define UN_NKEYWORD "keyword"
+define UN_NCOUNTS "counts"
+define UN_NELECTRONS "e-"
+define UN_NMODEL "model"
+define UN_NEPADU "e-/adu"
+
+# noise functions
+
+define AP_NCONSTANT 1
+define AP_NPOISSON 2
+
+# noise model strings
+
+define NCMDS "|noise|sigma|epadu|gain|ccdread|readnoise|"
+define NFUNCS "|constant|poisson|"
+
+# noise string cases
+
+define NCMD_NOISE 1
+define NCMD_SIGMA 2
+define NCMD_EPADU 3
+define NCMD_GAIN 4
+define NCMD_CCDREAD 5
+define NCMD_READNOISE 6
diff --git a/noao/digiphot/apphot/lib/noisedef.h b/noao/digiphot/apphot/lib/noisedef.h
new file mode 100644
index 00000000..3d67f5ec
--- /dev/null
+++ b/noao/digiphot/apphot/lib/noisedef.h
@@ -0,0 +1,21 @@
+# APPHOT header file
+
+define LEN_APNOISE (10 + 3 * SZ_FNAME + 3)
+
+# noise model parameters
+
+define AP_NOISEFUNCTION Memi[$1] # Noise function
+define AP_SKYSIGMA Memr[P2R($1+2)] # Sky sigma in counts
+define AP_EPADU Memr[P2R($1+3)] # Photons per adu
+define AP_READNOISE Memr[P2R($1+4)] # CCD readnoise in adu
+define AP_GAIN Memc[P2C($1+6)] # Gain keyword
+define AP_NSTRING Memc[P2C($1+6+SZ_FNAME+1)] # Noise model
+define AP_CCDREAD Memc[P2C($1+6+2*SZ_FNAME+2)] # Readnoise
+
+# noise model defaults
+
+define DEF_SKYSIGMA INDEFR
+define DEF_EPADU 1.0
+define DEF_CCDREAD ""
+define DEF_GAIN ""
+define DEF_READNOISE INDEFR
diff --git a/noao/digiphot/apphot/lib/phot.h b/noao/digiphot/apphot/lib/phot.h
new file mode 100644
index 00000000..ca9430f5
--- /dev/null
+++ b/noao/digiphot/apphot/lib/phot.h
@@ -0,0 +1,86 @@
+# APPHOT header file
+
+# phot errors (# 301 - 400)
+
+define AP_OK 0 # no error
+define AP_APERT_NOAPERT 301 # no aperture area
+define AP_APERT_OUTOFBOUNDS 302 # 1 or more apertures out of bounds
+define AP_APERT_NOSKYMODE 303 # INDEF valued sky
+define AP_APERT_NEGMAG 304 # 0 or -ve magnitude
+define AP_APERT_BADDATA 305 # bad pixels in aperture
+
+# phot parameters and answers (# 301 - 400)
+
+define ZMAG 301
+define APERTS 302
+define NAPERTS 303
+define MAGS 304
+define MAGERRS 305
+define PXCUR 306
+define PYCUR 307
+define OPXCUR 308
+define OPYCUR 309
+define AREAS 310
+define SUMS 311
+define PWEIGHTS 312
+define PWSTRING 313
+define APSTRING 314
+
+# define the phot keywords
+
+define KY_ZMAG "zmag"
+define KY_PWSTRING "weighting"
+define KY_APERTS "apertures"
+
+# define the phot units
+
+#define UN_ZMAG "zeropoint"
+#define UN_PWSTRING "model"
+#define UN_APERTS "scaleunit"
+
+define UN_PZMAG "zeropoint"
+define UN_PMODEL "model"
+define UN_PSCALEUNIT "scaleunit"
+
+# define the weighting functions
+
+define AP_PWCONSTANT 1 # uniform weighting
+define AP_PWCONE 2 # a cone of given fwhm is used
+define AP_PWGAUSS 3 # a Gaussian of given fwhm is used
+
+# phot strings
+
+define PCMDS "|apertures|zmag|mkapert|weighting|"
+define PSHOWARGS "|center|sky|phot|data|"
+define PWFUNCS "|constant|cone|gauss|"
+define QCMDS "|show|cboxwidth|annulus|dannulus|apertures|zmag|epadu|exposure|radplots|image|output|coords|airmass|filter|obstime|"
+
+define PCMD_APERTURES 1
+define PCMD_ZMAG 2
+define PCMD_MKAPERT 3
+define PCMD_WEIGHTING 4
+
+define PCMD_CENTER 1
+define PCMD_SKY 2
+define PCMD_PHOT 3
+define PCMD_DATA 4
+
+define QCMD_SHOW 1
+define QCMD_CBOXWIDTH 2
+define QCMD_ANNULUS 3
+define QCMD_DANNULUS 4
+define QCMD_APERTURES 5
+define QCMD_ZMAG 6
+define QCMD_EPADU 7
+define QCMD_EXPOSURE 8
+define QCMD_RADPLOTS 9
+define QCMD_IMAGE 10
+define QCMD_OUTPUT 11
+define QCMD_COORDS 12
+define QCMD_AIRMASS 13
+define QCMD_FILTER 14
+define QCMD_OBSTIME 15
+
+# miscellaneous
+
+define MAX_NAPERTS 100
diff --git a/noao/digiphot/apphot/lib/photdef.h b/noao/digiphot/apphot/lib/photdef.h
new file mode 100644
index 00000000..3d02f11a
--- /dev/null
+++ b/noao/digiphot/apphot/lib/photdef.h
@@ -0,0 +1,43 @@
+# PHOT header file
+
+define LEN_PHOTSTRUCT (30 + SZ_FNAME + SZ_LINE + 2)
+
+# photmetry aperture parameters
+
+define AP_NAPERTS Memi[$1] # Number of apertures
+define AP_PXCUR Memr[P2R($1+1)] # X aperture center
+define AP_PYCUR Memr[P2R($1+2)] # Y aperture center
+define AP_NMAXAP Memi[$1+3] # Maximum number of apertures
+define AP_NMINAP Memi[$1+4] # Minimum number of apertures
+define AP_APERTS Memi[$1+5] # Pointer to aperture array
+define AP_APIX Memi[$1+6] # Pointer to pixels
+define AP_XAPIX Memi[$1+7] # Pointer to x coords array (not used)
+define AP_YAPIX Memi[$1+8] # Pointer to y coords array (not used)
+define AP_NAPIX Memi[$1+9] # Number of pixels (not used)
+define AP_LENABUF Memi[$1+10] # Size of pixels buffer (not used)
+define AP_AXC Memr[P2R($1+11)] # X center of subraster
+define AP_AYC Memr[P2R($1+12)] # X center of subraster
+define AP_ANX Memi[$1+13] # X dimension of subraster
+define AP_ANY Memi[$1+14] # Y dimension of subraster
+define AP_OPXCUR Memr[P2R($1+15)] # X aperture center
+define AP_OPYCUR Memr[P2R($1+16)] # Y aperture center
+
+# photometry output
+
+define AP_MAGS Memi[$1+17] # Pointer to magnitude array
+define AP_MAGERRS Memi[$1+18] # Pointer to mag errors array
+define AP_AREA Memi[$1+19] # Pointer to areas array
+define AP_SUMS Memi[$1+20] # Pointer to aperture sums array
+
+# photometry parameters
+
+define AP_ZMAG Memr[P2R($1+21)] # Zero point of magnitude scale
+define AP_PWEIGHTS Memi[$1+22] # Weighting function for ophot
+define AP_PWSTRING Memc[P2C($1+24)] # Weights string
+define AP_APSTRING Memc[P2C($1+24+SZ_FNAME+1)] # Apertures string
+
+# phot default defintions
+
+define DEF_ZMAG 25.0
+define DEF_APERTS "3.0"
+define DEF_PWEIGHTS AP_PWCONSTANT
diff --git a/noao/digiphot/apphot/lib/polyphot.h b/noao/digiphot/apphot/lib/polyphot.h
new file mode 100644
index 00000000..d41751c2
--- /dev/null
+++ b/noao/digiphot/apphot/lib/polyphot.h
@@ -0,0 +1,63 @@
+# POLYPHOT header file
+
+# polyphot error codes (# 801 - 900)
+
+define PY_NOPOLYGON 801
+define PY_OUTOFBOUNDS 802
+define PY_NOPIX 803
+define PY_NOSKYMODE 804
+define PY_BADDATA 805
+define PY_OK 0
+
+# polyphot parameters and answers (# 801 - 900)
+
+define PYXMEAN 801
+define PYYMEAN 802
+define PYCX 803
+define PYCY 804
+define OPYXMEAN 805
+define OPYYMEAN 806
+define OPYCX 807
+define OPYCY 808
+define PYFLUX 809
+define PYNPIX 810
+define PYNVER 811
+define PYMINRAD 812
+define PYX 813
+define PYY 814
+define PYZMAG 815
+define PYMAG 816
+define PYMAGERR 817
+define PYNAME 818
+define PYROOT 819
+define PYBADPIX 820
+
+# polyphot keywords
+
+define KY_PYZMAG "zmag"
+define KY_PYNAME "polyfile"
+
+# polyphot units
+
+define UN_PYZMAG "zeropoint"
+
+# miscellaneous polyphot definitions
+
+define MAX_NVERTICES 900
+define NEXT_POLYGON 0
+define NEXT_OBJECT 1
+define THIS_OBJECT 2
+
+# polyphot strings
+
+define PYSHOWARGS "|center|sky|phot|data|"
+define PYCMDS "|zmag|mkpolygon|polygons|"
+
+define PLCMD_CENTER 1
+define PLCMD_SKY 2
+define PLCMD_PHOT 3
+define PLCMD_DATA 4
+
+define PLCMD_ZMAG 1
+define PLCMD_MKPOLYGON 2
+define PLCMD_POLYGONS 3
diff --git a/noao/digiphot/apphot/lib/polyphotdef.h b/noao/digiphot/apphot/lib/polyphotdef.h
new file mode 100644
index 00000000..4b354bfc
--- /dev/null
+++ b/noao/digiphot/apphot/lib/polyphotdef.h
@@ -0,0 +1,37 @@
+# POLYPHOT header file
+
+define LEN_PYSTRUCT (25 + 2 * SZ_FNAME + 2)
+
+# polyphot parameters
+
+define AP_PYZMAG Memr[P2R($1)] # Zero point of mag scale
+
+# polygon parameters
+
+define AP_PYXMEAN Memr[P2R($1+1)] # Original mean X of polygon
+define AP_PYYMEAN Memr[P2R($1+2)] # Original mean Y of polygon
+define AP_PYCX Memr[P2R($1+3)] # Current mean X of polygon
+define AP_PYCY Memr[P2R($1+4)] # Current mean Y of polygon
+define AP_PYX Memr[P2R($1+5)] # Previous mean X of polygon
+define AP_PYY Memr[P2R($1+6)] # Previous mean Y of polygon
+define AP_PYNVER Memi[$1+7] # Number of vertices
+define AP_PYMINRAD Memr[P2R($1+8)] # Minimum sky fitting radius in scale
+define AP_OPYXMEAN Memr[P2R($1+9)] # Original output mean X of polygon
+define AP_OPYYMEAN Memr[P2R($1+10)]# Original output mean Y of polygon
+define AP_OPYCX Memr[P2R($1+11)]# Current output mean X of polygon
+define AP_OPYCY Memr[P2R($1+12)]# Current output mean Y of polygon
+
+# polyphot answers
+
+define AP_PYBADPIX Memi[$1+13] # Are there bad pixels ?
+define AP_PYFLUX Memd[P2D($1+14)]# Flux
+define AP_PYNPIX Memd[P2D($1+16)]# Polygon area
+define AP_PYMAG Memr[P2R($1+18)]# Magnitude
+define AP_PYMAGERR Memr[P2R($1+19)]# Magnitude error
+
+define AP_PYNAME Memc[P2C($1+21)]# Polygons file name
+define AP_PYROOT Memc[P2C($1+21+SZ_FNAME+1)]# Polygons file name
+
+# polyphot defaults
+
+define DEF_PYZMAG 25.0
diff --git a/noao/digiphot/apphot/lib/radprof.h b/noao/digiphot/apphot/lib/radprof.h
new file mode 100644
index 00000000..56572c50
--- /dev/null
+++ b/noao/digiphot/apphot/lib/radprof.h
@@ -0,0 +1,66 @@
+# RADPROF header file
+
+# radprof error codes (# 901 - 1000)
+
+define AP_OK 0
+define AP_RP_NOPROFILE 901
+define AP_RP_OUTOFBOUNDS 902
+define AP_RP_NPTS_TOO_SMALL 903
+define AP_RP_SINGULAR 904
+define AP_RP_NOSKYMODE 905
+
+# radprof fit parameters and answers (# 901 - 1000)
+
+define RPXCUR 901
+define RPYCUR 902
+define ORPXCUR 903
+define ORPYCUR 904
+define RPRADIUS 905
+define RPSTEP 906
+define RPKSIGMA 907
+define RPNREJECT 908
+define RPORDER 909
+define INORM 910
+define TNORM 911
+define DNORM 912
+define RPFWHM 913
+define RPNPTS 914
+define RPNDATA 915
+define RPNDATAREJ 916
+
+# define radprof keywords
+
+define KY_RPRADIUS "radius"
+define KY_RPSTEP "stepsize"
+define KY_RPORDER "order"
+define KY_RPKSIGMA "kreject"
+define KY_RPNREJECT "nreject"
+
+# define radprof units
+
+#define UN_RPRADIUS "scaleunit"
+#define UN_RPSTEP "scaleunit"
+#define UN_RPORDER "number"
+#define UN_RPKSIGMA "sigma"
+#define UN_RPNREJECT "number"
+
+define UN_RSCALEUNIT "scaleunit"
+define UN_RNUMBER "number"
+define UN_RSIGMA "sigma"
+
+# radprof strings
+
+define RPSHOWARGS "|center|sky|phot|fit|data|"
+define RPCMDS "|radius|stepsize|order|kreject|nreject|"
+
+define RCMD_CENTER 1
+define RCMD_SKY 2
+define RCMD_PHOT 3
+define RCMD_FIT 4
+define RCMD_DATA 5
+
+define RCMD_RADIUS 1
+define RCMD_STEPSIZE 2
+define RCMD_ORDER 3
+define RCMD_KREJECT 4
+define RCMD_NREJECT 5
diff --git a/noao/digiphot/apphot/lib/radprofdef.h b/noao/digiphot/apphot/lib/radprofdef.h
new file mode 100644
index 00000000..1fcb3dcc
--- /dev/null
+++ b/noao/digiphot/apphot/lib/radprofdef.h
@@ -0,0 +1,38 @@
+# RADPROF header file
+
+define LEN_RPSTRUCT 30
+
+# Radprof data parameters
+
+define AP_RPXCUR Memr[P2R($1)] # X image center in pixels
+define AP_RPYCUR Memr[P2R($1+1)] # Y image center in pixels
+define AP_RPIX Memi[$1+2] # Pointer to radial profile pixels
+define AP_RPXC Memr[P2R($1+3)] # X center of subraster
+define AP_RPYC Memr[P2R($1+4)] # Y center of subraster
+define AP_RPNX Memi[$1+5] # Subraster length in x
+define AP_RPNY Memi[$1+6] # Subraster length in y
+define AP_ORPXCUR Memr[P2R($1+7)] # output system X image center in pixels
+define AP_ORPYCUR Memr[P2R($1+8)] # output system Y image center in pixels
+
+# Radprof fit parameters
+
+define AP_RPRADIUS Memr[P2R($1+9)] # Radprof radius in scale
+define AP_RPSTEP Memr[P2R($1+10)]# Radprof step size in scale
+define AP_RPORDER Memi[$1+11] # Order of the spline3 fit
+define AP_RPKSIGMA Memr[P2R($1+12)]# Radprof K-rejection criterion in sigma
+define AP_RPNREJECT Memi[$1+13] # Maximum number of rejection cycles
+
+# Radprof answers
+
+define AP_RPNPTS Memi[$1+14] # Number of points in radial profile
+define AP_RPDIST Memi[$1+15] # Pointer to radial distance array
+define AP_INTENSITY Memi[$1+16] # Pointer to fitted intensity array
+define AP_DINTENSITY Memi[$1+17] # Pointer incremental intensity array
+define AP_TINTENSITY Memi[$1+18] # Pointer to total intensity array
+define AP_INORM Memr[P2R($1+19)]# Normalization for intensity profile
+define AP_TINORM Memr[P2R($1+20)]# Normalization for total intensity
+define AP_DNORM Memr[P2R($1+21)]# Normalization for incremental inten
+define AP_RPFWHM Memr[P2R($1+22)]# Fitted profile FWHM
+define AP_RPNDATA Memi[$1+23] # Number of data points
+define AP_RPNDATAREJ Memi[$1+24] # Number of points rejected from fit
+define AP_RPNBAD Memi[$1+25] # Number of bad pixel points