diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /noao/digiphot/photcal/mkapfile.cl | |
download | iraf-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.cl | 187 |
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 |