diff options
Diffstat (limited to 'noao/digiphot/photcal/mkobsfile.cl')
-rw-r--r-- | noao/digiphot/photcal/mkobsfile.cl | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/noao/digiphot/photcal/mkobsfile.cl b/noao/digiphot/photcal/mkobsfile.cl new file mode 100644 index 00000000..c81dca6c --- /dev/null +++ b/noao/digiphot/photcal/mkobsfile.cl @@ -0,0 +1,152 @@ +# MKOBSFILE -- Create a catalog of observations suitable for input to +# FITPARAMS or the evaluation routines EVALFIT and INVERTFIT from a list of +# APPHOT/DAOPHOT text databases. + +procedure mkobsfile (photfiles, idfilters, observations) + +file photfiles {prompt="The input list of APPHOT/DAOPHOT databases"} +string idfilters {prompt="The list of filter ids"} +file observations {prompt="The output observations file"} +bool wrap {yes, prompt="Format the output file for easy reading ?"} +file imsets {"STDIN", prompt="The input image set file"} +file obsparams {"", prompt="The observing parameters file"} +string obscolumns {"2 3 4 5", prompt="The format of obsparams"} +real minmagerr {0.001, min=0.0, prompt="The minimum magnitude error"} +file shifts {"STDIN", prompt="The x and y coordinate shifts file"} +file apercors {"STDIN", prompt="The aperture corrections file"} +int aperture {1, + prompt="The aperture number of the extracted magnitude"} +real tolerance {5.0, + prompt="The tolerance in pixels for position matching"} +bool allfilters {no, prompt="Output only objects matched in all filters"} +bool verify {no, prompt="Verify interactive user input ?"} +bool verbose {yes, prompt="Print status, warning and error messages ?"} + +begin + # Declare local variables. + string tfiles, tidfilters, tobsfile, tformat + string iimsets, iobsparams, ishifts, iapercors + string timsets, tobsparams, tobscolumns, tshifts, tapercors + string tdatafile, tinfields + + # Get the parameters. + tfiles = photfiles + tidfilters = idfilters + + tobsfile = observations + if (access (tobsfile)) + error (0, + "The output catalog file " // tobsfile // " already exists") + tformat = "f" // tobsfile // ".dat" + if (access (tformat)) + delete (tformat, go_ahead+, verify-, default_action+, + allversions+, subfiles+) + + iimsets = imsets + if (iimsets != "") { + if (iimsets == "STDIN") + timsets = mktemp ("tmp$") + else if (! access (iimsets)) + error (0, "The image set file " // timsets // " does not exist") + else + timsets = iimsets + } else + timsets = "" + + iobsparams = obsparams + if (iobsparams != "") { + if (iobsparams == "STDIN") { + tobsparams = mktemp ("tmp$") + tobscolumns = "2 3 4 5" + } else if (! access (iobsparams)) { + error (0, "The obsparams file " // iobsparams // + " does not exist") + } else { + tobsparams = iobsparams + tobscolumns = obscolumns + } + } else { + tobsparams = "" + tobscolumns = "2 3 4 5" + } + + ishifts = shifts + if (ishifts != "") { + if (ishifts == "STDIN") + tshifts = mktemp ("tmp$") + else if (! access (ishifts)) + error (0, + "The shifts file " // ishifts // " does not exist") + else + tshifts = ishifts + } else + tshifts = "" + + iapercors = apercors + if (iapercors != "") { + if (iapercors == "STDIN") + tapercors = mktemp ("tmp$") + else if (! access (iapercors)) + error (0, + "The apercors file " // iapercors // " does not exist") + else + tapercors = iapercors + } else + tapercors = "" + + # Query the user for input. + mkphotcors (timsets, tidfilters, tobsparams, tshifts, tapercors, + obscolumns=tobscolumns, verify=verify, verbose=verbose) + + # Create temporary file names to store the intermediate image list. + tdatafile = mktemp ("tmp$") + + # Change columns named "MAG" and "MERR" to "MAG[1]" and "MERR[1]" + # in any ST tables databases. + + tbcrename (tfiles, "MAG,MERR", "MAG\[1],MERR\[1]") + + # Add the image, ifilter, itime, and xairmass columns to any files + # in ST tables format. + + tbkeycol (tfiles, "IMAGE,IFILTER,ITIME,XAIRMASS,OTIME") + + # Construct the string describing the fields to be extracted + # making sure to specify the correct aperture number. Extract + # the data, sort on the image name which is in the first column, + # remove any duplicate records, and store the results in the + # temporary file tdatafile. + + tinfields = ",IMAGE,XCENTER,YCENTER," // + "MAG[" // aperture // "]" // ",MERR[" // aperture // "]," // + "MAG\[" // aperture // "]" // ",MERR\[" // aperture // "]," // + "IFILTER,XAIRMASS,OTIME,ITIME" + + pdump (tfiles, tinfields, "yes", headers=no, parameters=yes, + > tdatafile) + + # Create the output catalog. + + obsfile (tdatafile, "1,2,3,6,9,7,8,4,5,0", tidfilters, timsets, + tobsfile, wrap=wrap, obsparams=tobsparams, minmagerr=minmagerr, + normtime=no, tolerance=tolerance, allfilters=allfilters, + obscolumns="1," // tobscolumns, shifts=tshifts, + apercors=tapercors, verify-, verbose=verbose) + + # Delete the temporary files. + + delete (tdatafile, go_ahead+, verify-, default_action+, allversions+, + subfiles+) + if (iimsets == "STDIN") + delete (timsets, go_ahead+, verify-, default_action+, + allversions+, subfiles+) + if (iobsparams == "STDIN") + delete (tobsparams, go_ahead+, verify-, default_action+, + allversions+, subfiles+) + if (ishifts == "STDIN") + delete (tshifts, go_ahead+, verify-, default_action+, + allversions+, subfiles+) + if (iapercors == "STDIN") + delete (tapercors, go_ahead+, verify-, default_action+, + allversions+, subfiles+) +end |