diff options
Diffstat (limited to 'funtools/funds9.tmpl')
-rwxr-xr-x | funtools/funds9.tmpl | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/funtools/funds9.tmpl b/funtools/funds9.tmpl new file mode 100755 index 0000000..4c0d7e4 --- /dev/null +++ b/funtools/funds9.tmpl @@ -0,0 +1,180 @@ +#!/bin/sh +# set -x + +# make sure we have minimum arg count +if [ $# -lt 3 ]; then + echo "funds9 [cmd] [xpa] [filename or filelist] [args ...]" + exit 1 +fi + +# don't use gnuplot by default +DOGP=0 +# disable multi-file support -- it conflicts with spaced directory support +DOMULTI=0 + +# process standard arguments +CMD="$1"; shift; +XPA="$1"; shift; +FILES="$1"; shift; + +if [ x$DOMULTI = x1 ]; then + if [ "GNUPLOT" != "NONE" ]; then + NFILES=`echo $FILES | AWK '{print NF}'` + if [ $NFILES -gt 1 ]; then + VERSION=`echo "show version" | gnuplot 2>&1 | grep version | AWK '{print $3*10}'` + if [ x"$VERSION" != x -a $VERSION -ge 37 ]; then + DOGP=1 + fi + fi + fi +else + FILE="$FILES" +fi + +# process commands +case $CMD in + +funcnts) + if [ $# = 0 ]; then + echo "ERROR: funcnts filename [source] [bkgd]" + exit 1 + fi + if [ x$DOMULTI = x1 ]; then + for FILE in $FILES; do + funcnts "$FILE" $* 2>&1 + done + else + funcnts "$FILE" $* 2>&1 + fi + exit 0 + ;; + +funhist) + if [ $# != 3 ]; then + echo "ERROR: funhist filename [norm width] [column] [bin]" + exit 1 + fi + ARGS="" + PARAM=$1; shift; + read NORM WIDTH <<EOF + $PARAM +EOF + if [ $NORM = 1 ]; then + ARGS="$ARGS -n" + fi + if [ $WIDTH = 1 ]; then + ARGS="$ARGS -w" + fi + if [ x$DOMULTI = x1 ]; then + for FILE in $FILES; do + funhist $ARGS "$FILE" $* 2>&1 + done + else + funhist $ARGS "$FILE" $* 2>&1 + fi + exit 0 + ;; + +funcnts_plot) + if [ $# = 0 ]; then + echo "ERROR: funcnts filename [source] [bkgd]" + exit 1 + fi + if [ x$DOMULTI = x1 ]; then + for FILE in $FILES; do + if [ $DOGP = 1 ]; then + funcnts -rG "$FILE" $* | funcnts.plot -file "$FILE" gnuplot + else + funcnts -rG "$FILE" $* | funcnts.plot -file "$FILE" ds9 2>&1 + fi + done + else + if [ $DOGP = 1 ]; then + funcnts -rG "$FILE" $* | funcnts.plot -file "$FILE" gnuplot + else + funcnts -rG "$FILE" $* | funcnts.plot -file "$FILE" ds9 2>&1 + fi + fi + exit 0 + ;; + +funhist_plot) + if [ $# != 3 ]; then + echo "ERROR: funhist filename [norm width] [column] [bin]" + exit 1 + fi + ARGS="" + PARAM=$1; shift; + read NORM WIDTH <<EOF + $PARAM +EOF + if [ $NORM = 1 ]; then + ARGS="$ARGS -n" + fi + if [ $WIDTH = 1 ]; then + ARGS="$ARGS -w" + fi + if [ x$DOMULTI = x1 ]; then + for FILE in $FILES; do + if [ $DOGP = 1 ]; then + funhist $ARGS "$FILE" $* | funhist.plot -file "$FILE" gnuplot + else + funhist $ARGS "$FILE" $* | funhist.plot -file "$FILE" ds9 2>&1 + fi + done + else + if [ $DOGP = 1 ]; then + funhist $ARGS "$FILE" $* | funhist.plot -file "$FILE" gnuplot + else + funhist $ARGS "$FILE" $* | funhist.plot -file "$FILE" ds9 2>&1 + fi + fi + exit 0 + ;; + +funcen) + if [ $# != 5 ]; then + echo "ERROR: funcen filename region(s) niter tol disp ftype" + exit 1 + fi + ARGS="" + REGION=$1; shift; + if [ x"$REGION" = x ]; then + echo "ERROR: no region(s) specified" + exit 1 + fi + NITER=$1; shift; + TOL=$1; shift; + DISP=$1; shift; + FTYPE=$1; shift; + if [ "$FTYPE" = 1 ]; then + ARGS="$ARGS -i" + fi + VERB=1 + TMP="/tmp/fun_${CMD}_$$.out" + if [ x$DOMULTI = x1 ]; then + for FILE in $FILES; do + funcen $ARGS -n $NITER -t $TOL -v $VERB "$FILE" "$REGION" $* 2>&1 > $TMP + cat $TMP + if [ $DISP = "1" ]; then + xpaset -p $XPA regions deleteall + grep final_region $TMP | AWK '{print $2}'| xpaset $XPA regions + fi + done + else + funcen $ARGS -n $NITER -t $TOL -v $VERB "$FILE" "$REGION" $* 2>&1 > $TMP + cat $TMP + if [ $DISP = "1" ]; then + xpaset -p $XPA regions deleteall + grep final_region $TMP | AWK '{print $2}'| xpaset $XPA regions + fi + fi + exit 0 + ;; + +*) + echo "ERROR: unknown function: " "$CMD" + exit 1 + ;; +esac + |