aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/photcal/mkapfile.cl
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/digiphot/photcal/mkapfile.cl
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/digiphot/photcal/mkapfile.cl')
-rw-r--r--noao/digiphot/photcal/mkapfile.cl187
1 files changed, 187 insertions, 0 deletions
diff --git a/noao/digiphot/photcal/mkapfile.cl b/noao/digiphot/photcal/mkapfile.cl
new file mode 100644
index 00000000..086bb735
--- /dev/null
+++ b/noao/digiphot/photcal/mkapfile.cl
@@ -0,0 +1,187 @@
+# MKAPFILE -- Create an aperture corrections file suitable for input to the
+# PHOTCAL preprocessor tasks MKNOBSFILE, MKOBSFILE, and OBSFILE from a list of
+# APPHOT/DAOPHOT text or ST table photometry files.
+
+procedure mkapfile (photfiles, naperts, apercors)
+
+file photfiles {prompt="The input list of APPHOT/DAOPHOT databases"}
+int naperts {prompt="The number of apertures to extract"}
+file apercors {prompt="The output aperture corrections file"}
+int smallap {1, prompt="The first aperture for the correction"}
+int largeap {0, prompt="The last aperture for the correction"}
+file magfile {"", prompt="The optional output best magnitudes file"}
+file logfile {"", prompt="The optional output log file"}
+file plotfile {"", prompt="The optional output plot file"}
+file obsparams {"", prompt="The observing parameters file"}
+string obscolumns {"2 3 4 5", prompt="The observing parameters file format"}
+bool append {no, prompt="Open log and plot files in append mode"}
+real maglim {.10, prompt="The maximum permitted magnitude error"}
+int nparams {3, prompt="Number of cog model parameters to fit"}
+real swings {1.2, prompt="The power law slope of the stellar wings"}
+real pwings {0.1,
+prompt="The fraction of the total power in the stellar wings"}
+real pgauss {0.5,
+prompt="The fraction of the core power in the gaussian core"}
+real rgescale {0.9, prompt="The exponential / gaussian radial scales"}
+real xwings {0.0, prompt="The extinction coefficient"}
+bool interactive {yes, prompt="Do the fit interactively ?"}
+bool verify {no, prompt="Verify interactive user input ?"}
+gcur gcommands {"", prompt="The graphics cursor"}
+string graphics {"stdgraph", prompt="The graphics device"}
+
+begin
+ # Declare local variables.
+
+ bool tappend
+ int tnaperts, tsmallap, tlargeap, td2, tr2, tpwidth, tpagwidth
+ string tfiles, tapercors, tmagfile, tlogfile, tplotfile
+ string tobsparams, tobscolumns, tmplist, tdatafile
+ string tainfields, tsinfields, trstr, tmstr, testr, fname
+
+ # Get the parameters and test for the existence of various files.
+
+ tfiles = photfiles
+
+ tnaperts = naperts
+ if (tnaperts < 2) {
+ error (0, "Naperts must be > 1")
+ }
+
+ tapercors = apercors
+ if (access (tapercors)) {
+ error (0,
+ "The output aperture corrections file " // tapercors //
+ " already exists")
+ }
+
+ tsmallap = smallap
+ tlargeap = largeap
+ tsmallap = max (1, min (tsmallap, tnaperts))
+ if (tlargeap == 0) {
+ tlargeap = tnaperts
+ } else {
+ tlargeap = max (1, min (tlargeap, tnaperts))
+ }
+ if (tsmallap > tlargeap) {
+ error (0, "Lastap must be > tsmallap")
+ }
+
+ tmagfile = magfile
+ if (tmagfile != "" && access (tmagfile)) {
+ error (0,
+ "The output magfile file " // tmagfile // " already exists")
+ }
+
+ tappend = append
+ tlogfile = logfile
+ if (tlogfile != "" && ! tappend) {
+ if (access (tlogfile))
+ error (0,
+ "The output logfile " // tlogfile // " already exists")
+ }
+ tplotfile = plotfile
+ if (tplotfile != "" && ! tappend) {
+ if (access (tplotfile))
+ error (0,
+ "The output plotfile " // tplotfile // " already exists")
+ }
+
+ tobsparams = obsparams
+ if (tobsparams == "") {
+ tobscolumns = ""
+ } else {
+ tobscolumns = obscolumns
+ if (! access (tobsparams))
+ error (0,
+ "The obsparmas file " // tobsparams // " does not exist")
+ }
+
+
+ # Change columns named "RAPERT", "MAG" and "MERR" to "RAPERT[1]",
+ # "MAG[1]" and "MERR[1]" in any ST tables files. Non-ST format files
+ # are skipped.
+
+ tbcrename (tfiles, "RAPERT,MAG,MERR", "RAPERT\[1],MAG\[1],MERR\[1]")
+
+ # Add the image, scale, ifilter, itime and xairmass columns to any
+ # files in ST tables format. Non-ST format files are skipped.
+
+ tbkeycol (tfiles, "IMAGE,XAIRMASS")
+
+ # Construct the string describing the fields to be extracted
+ # making sure to specify the correct aperture number. Extract
+ # the data and store the results in the temporary file tdatafile.
+
+ tainfields = "IM,XC,YC,IF,IT,XA,OT,RAPERT[1-" // tnaperts // "]" //
+ ",MAG[1-" // tnaperts // "]" // ",MERR[1-" // tnaperts // "]"
+
+ tsinfields = "IM*,XC*,YC*,IF*,IT*,XA*,OT*"
+ td2 = tnaperts / 10
+ tr2 = mod (tnaperts, 10)
+ for (i = 0; i <= td2; i = i + 1) {
+ if (td2 == 0) {
+ trstr = ",RA*\[[1-" // tr2 // "]]"
+ tmstr = ",MAG\[[1-" // tr2 // "]]"
+ testr = ",MERR\[[1-" // tr2 // "]]"
+ } else if (i == 0) {
+ trstr = ",RA*\[[1-9]]"
+ tmstr = ",MAG\[[1-9]]"
+ testr = ",MERR\[[1-9]]"
+ } else if (i == td2) {
+ trstr = trstr // ",RA*\[" // td2 // "[0-" // tr2 // "]]"
+ tmstr = tmstr // ",MAG\[" // td2 // "[0-" // tr2 // "]]"
+ testr = testr // ",MERR\[" // td2 // "[0-" // tr2 // "]]"
+ } else if (i == 1) {
+ trstr = trstr // ",RA*\[[1-" // td2-1 // "][1-9]]"
+ tmstr = tmstr // ",MAG\[[1-" // td2-1 // "][1-9]]"
+ testr = testr // ",MERR\[[1-" // td2-1 // "][1-9]]"
+ }
+ }
+ tsinfields = tsinfields // trstr // "," // tmstr // "," // testr
+
+ # Create input file list.
+
+ tmplist = mktemp ("tmp$")
+ files (tfiles, sort=no, > tmplist)
+
+ # Create temporary file names to store the intermediate image list.
+
+ tdatafile = mktemp ("tmp$")
+ list = tmplist
+ while (fscan (list, fname) != EOF) {
+ istable (fname)
+ if (istable.table) {
+ tpagwidth = tbdump.pagwidth
+ #tpwidth = tdump.pwidth.p_max
+ tdump.pwidth.p_max = 5000
+ tbdump (fname, tsinfields, "yes", cdfile="", pfile="",
+ datafile="STDOUT", rows="-", pagwidth=5000,
+ >> tdatafile)
+ #tdump.pwidth.p_max = tpwidth
+ tbdump.pagwidth = tpagwidth
+ } else if (istable.text) {
+ txdump (fname, tainfields, "yes", headers=no, parameters=yes,
+ >> tdatafile)
+ } else {
+ print ("ERROR: Cannot run MKAPFILE on file: " // fname)
+ }
+ }
+
+ # Run APFILE.
+
+ tainfields = "1,2,3,4,5,6,7,8," // 8+tnaperts // "," // 8+2*tnaperts
+ apfile (tdatafile, tainfields, tnaperts, tapercors,
+ smallap=tsmallap, largeap=tlargeap, magfile=tmagfile,
+ logfile=tlogfile, plotfile=tplotfile, append=tappend,
+ obsparams=tobsparams,obscolumns=tobscolumns,maglim=maglim,
+ nparams=nparams,swings=swings,pwings=pwings, pgauss=pgauss,
+ rgescale=rgescale, xwings=xwings, interactive=interactive,
+ verify=verify, gcommands=gcommands, graphics=graphics)
+
+ # Delete the temporary files.
+
+ delete (tdatafile, go_ahead+, verify-, default_action+,
+ allversions+, subfiles+, > "dev$null")
+ delete (tmplist, go_ahead+, verify-, default_action+,
+ allversions+, subfiles+, > "dev$null")
+end