#!/bin/sh # set -x PLATFORM=`uname` VERBOSE=0 SW="-r" X=504 Y=512 STDIN=/dev/null OPROG=funcnts NPROG=../funcnts OFILE=${HOME}/data/snr.fits NFILE=${HOME}/data/snr.ev.gz EAWK='start==1&&NF>0{tpix += $2; tarea +=$3; print $0};/^---- ------------ ---------$/{start=1}END{print tpix,tarea}' SAWK='start==1&&NF>0{tpix += $2; tarea +=$3};/^---- ------------ ---------$/{start=1}END{print tpix,tarea}' FAWK='{tpix = $1};END{print tpix}' while [ x"$1" != x ]; do case $1 in -1) DO1=YES shift continue;; -b) shift B=$1 shift continue;; -c) shift C="$1\;" shift continue;; -e) FIELD=`${OPROG} ${OFILE}${B} "field" | awk "$SAWK" | awk "$FAWK"` echo "FIELD: $FIELD" echo " " M="-" shift continue;; -f) shift FILE=$1 shift continue;; -n) shift NPROG=$1 shift continue;; -o) shift OPROG=$1 shift continue;; -p) shift STDIN=$1 if [ x`echo $STDIN | awk -F. '{print $NF}'` = x"gz" ]; then NFILE=stdin.gz else NFILE=stdin fi shift continue;; -P) PURE=YES DO1=YES NPROG=../funcnts.pure shift continue;; -s) shift SW=$1 shift continue;; -v) VERBOSE=1 shift continue;; -V) VERBOSE=2 shift continue;; -x) shift X=$1 shift continue;; -y) shift Y=$1 shift continue;; *) shift continue;; esac done X2=`echo "$X + 10" | bc` Y2=`echo "$Y + 10" | bc` X3=`echo "$X + 20" | bc` Y3=$Y X4=`echo "$X + 10" | bc` Y4=`echo "$Y - 10" | bc` B1=`echo "$X - 100" | bc` B2=`echo "$X + 99" | bc` B3=`echo "$Y - 100" | bc` B4=`echo "$Y + 99" | bc` if [ x"$B" = x ]; then B="[$B1:$B2,$B3:$B4,3]" fi echo "OPROG="${OPROG} "OFILE="${OFILE}${B} X=${X} Y=${Y} echo "NPROG="${NPROG} "NFILE="${NFILE}${B} X=${X} Y=${Y} IFS=" " while read ARG1 ARG2 ARG3; do if [ x"$ARG1" = x ]; then continue fi if [ x`echo $ARG1 | sed 's/^#.*/YES/g'` = x"YES" ]; then continue fi CMD=$ARG1 eval "ARG2=\"${C}$ARG2\"" eval "ARG3=\"${C}$ARG3\"" if [ x$CMD = xZIEXACT ]; then if [ x$FILTER_PAINT = xtrue ]; then continue else CMD=EXACT fi fi if [ x$CMD = xZEXACT ]; then if [ x$FILTER_PAINT = xtrue ]; then CMD=SUM else CMD=EXACT fi fi case $CMD in OPROG) OPROG=$ARG2 ;; NPROG) NPROG=$ARG2 ;; FILE) FILE=$ARG2 ;; EXCLUDE) FIELD=`$OPROG ${OFILE}${B} "field" | awk "$SAWK" | awk "$FAWK"` echo "FIELD: $FIELD" echo " " M="-" ;; EXIT) exit ;; EXACT) if [ x"$DO1" = xYES ]; then echo "${M}DO1: $ARG3" ($NPROG ${SW} ${NFILE}${B} "${M}$ARG3") >funcnts2.out 2>&1 else echo "${M}EXACT: $ARG2 ... $ARG3" ($OPROG ${SW} ${OFILE}${B} "$ARG2" | awk $EAWK) >funcnts1.out 2>err.log if test $? -ne 0; then echo "skipping $NPROG due to error" else (cat $STDIN | $NPROG ${SW} ${NFILE}${B} "${M}$ARG3" | awk $EAWK) >funcnts2.out 2>&1 if [ x$M = x ]; then diff funcnts1.out funcnts2.out else V1=`cat funcnts1.out | awk $FAWK` V2=`cat funcnts2.out | awk $FAWK` V2=`echo "$FIELD-$V2" | bc` if [ $V1 != $V2 ]; then echo "V1=$V1 V2=$V2" fi fi fi fi echo " " ;; REV) if [ x"$DO1" = xYES ]; then echo "${M}DO1: $ARG3" (cat $STDIN | $NPROG ${SW} ${NFILE}${B} "${M}$ARG3") >funcnts2.out 2>&1 else echo "${M}REV: $ARG2 ... $ARG3" ($OPROG ${SW} ${OFILE}${B} "$ARG2" | awk $EAWK) >tfuncnts1.out 2>err.log if test $? -ne 0; then echo "skipping $NPROG due to error" else (cat $STDIN | $NPROG ${SW} ${NFILE}${B} "${M}$ARG3" | awk $EAWK) >tfuncnts2.out 2>&1 if [ x$M = x ]; then awk 'NF==3{print $0}' < tfuncnts1.out | sort -r | awk '{print $2,$3}' > funcnts1.out awk 'NF==3{print $2,$3}' < tfuncnts2.out >funcnts2.out 2>&1 diff funcnts1.out funcnts2.out else V1=`cat funcnts1.out | awk $FAWK` V2=`cat funcnts2.out | awk $FAWK` V2=`echo "$FIELD-$V2" | bc` if [ $V1 != $V2 ]; then echo "V1=$V1 V2=$V2" fi fi fi fi echo " " ;; SUM) if [ x"$DO1" = xYES ]; then echo "${M}DO1: $ARG3" (cat $STDIN | $NPROG ${SW} ${NFILE}${B} "${M}$ARG3") >funcnts2.out 2>&1 else echo "${M}SUM: $ARG2 ... $ARG3" ($OPROG ${SW} ${OFILE}${B} "$ARG2" | awk $SAWK) >funcnts1.out 2>err.log if test $? -ne 0; then echo "skipping $NPROG due to error" else (cat $STDIN | $NPROG ${SW} ${NFILE}${B} "${M}$ARG3" | awk $SAWK) >funcnts2.out 2>&1 if [ x$M = x ]; then diff funcnts1.out funcnts2.out else V1=`cat funcnts1.out | awk $FAWK` V2=`cat funcnts2.out | awk $FAWK` V2=`echo "$FIELD-$V2" | bc` if [ $V1 != $V2 ]; then echo "V1=$V1 V2=$V2" fi fi fi fi echo " " ;; *) echo "ERROR: unknown command: $CMD" exit 1 ;; esac if [ $VERBOSE = 1 ]; then echo "***** funcnts1.out *****" cat funcnts1.out fi if [ $VERBOSE = 2 ]; then echo "***** funcnts1.out *****" cat funcnts1.out echo "***** funcnts2.out *****" cat funcnts2.out fi rm -f err.log done rm -f funcnts1.out funcnts2.out tfuncnts1.out tfuncnts2.out