aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/ptools/pcalc.cl
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/digiphot/ptools/pcalc.cl
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'noao/digiphot/ptools/pcalc.cl')
-rw-r--r--noao/digiphot/ptools/pcalc.cl50
1 files changed, 50 insertions, 0 deletions
diff --git a/noao/digiphot/ptools/pcalc.cl b/noao/digiphot/ptools/pcalc.cl
new file mode 100644
index 00000000..494e7ee7
--- /dev/null
+++ b/noao/digiphot/ptools/pcalc.cl
@@ -0,0 +1,50 @@
+# PCALC - Recompute a column of an APPHOT/DAOPHOT database using an
+# arithmetic expression.
+
+procedure pcalc (infile, field, value)
+
+string infile {prompt="Input apphot/daophot databases(s)"}
+string field {prompt="Field to be edited"}
+string value {prompt="New value or expression for field"}
+
+struct *inlist
+
+begin
+ # Local variable declarations.
+ file tmpin
+ string in, tfield, tvalue, inname
+
+ # Cache the istable parameters.
+ cache ("istable")
+
+ # Get the positional parameters.
+ in = infile
+ tfield = field
+ tvalue = value
+
+ # Expand the file list names.
+ tmpin = mktemp ("tmp$")
+ files (in, sort=no, > tmpin)
+
+ # Loop over each file in the input and output lists selecting records.
+ inlist = tmpin
+ while (fscan (inlist, inname) != EOF) {
+ istable (inname)
+ if (istable.table) {
+ if (defpar ("tcalc.verbose") || defpar ("tcalc.harmless")) {
+ tcalc (inname, tfield, tvalue, datatype="real",
+ colunits="", colfmt="", verbose=no, harmless=0.1)
+ } else {
+ tcalc (inname, tfield, tvalue, datatype="real",
+ colunits="", colfmt="")
+ }
+ } else if (istable.text) {
+ txcalc (inname, tfield, tvalue)
+ } else {
+ print ("Cannot run PCALC on file: " // inname)
+ }
+ }
+ inlist = ""
+
+ delete (tmpin, ver-, >& "dev$null")
+end