summaryrefslogtreecommitdiffstats
path: root/funtools/funhist_plot.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/funhist_plot.tmpl')
-rwxr-xr-xfuntools/funhist_plot.tmpl137
1 files changed, 137 insertions, 0 deletions
diff --git a/funtools/funhist_plot.tmpl b/funtools/funhist_plot.tmpl
new file mode 100755
index 0000000..06670e0
--- /dev/null
+++ b/funtools/funhist_plot.tmpl
@@ -0,0 +1,137 @@
+#!/bin/sh
+
+LC_NUMERIC=en_US.ISO8859-1
+export LC_NUMERIC
+
+files="None"
+while [ x"$1" != x ]; do
+ case $1 in
+ -file)
+ files="$2"
+ shift
+ shift
+ continue;;
+ *)
+ break;;
+ esac
+done
+
+if [ x"$1" = xgnuplot ]; then
+
+ if [ x`which gnuplot 2>/dev/null` = x ]; then
+ echo "ERROR: gnuplot not available"
+ exit 1
+ fi
+ AWK '
+ BEGIN{
+ mode=1
+ initparam=0
+ counts=0
+ }
+ mode==1{
+ if( initparam == 0 ){
+ if( files == "None" ){
+ files=""
+ dofile="true"
+ }
+ else{
+ dofile="false"
+ }
+ initparam=1
+ }
+ if( dofile == "true" && $1 == "#" && $2 == "data" && $3 == "file:" ){
+ if( files != "" ) files = files ","
+ files = files $4
+ }
+ else if( $1 == "#" && $2 == "column:" ){
+ column = $3
+ }
+ else if( $1 == "------" ){
+ head = sprintf("set nokey; set title \"funhist(%s)\"\n", files)
+ head = head sprintf("set xlabel \"%s_bin\"\n", column)
+ head = head sprintf("set ylabel \"value\"\n")
+ head = head sprintf("plot \"-\" with boxes\n")
+ mode = 2
+ next
+ }
+ }
+ mode==2{
+ if( NF == 4 ){
+ if( $4 > $3 ){
+ data = data sprintf("%.8f %s %s\n", ($3+$4)/2, $2, ($4-$3))
+ }
+ else{
+ data = data sprintf("%.8f %s 1\n", ($3+$4)/2, $2)
+ }
+ counts += $2
+ }
+ else{
+ mode = 3
+ }
+ }
+ END{
+ if( counts == 0 ){
+ exit 0
+ }
+ else{
+ print head
+ print data
+ }
+ }
+ ' files="$files" | gnuplot -persist - 1>/dev/null 2>&1
+ exit 0
+
+elif [ x"$1" = xds9 ]; then
+
+ AWK '
+ BEGIN{
+ mode=1
+ initparam=0
+ }
+ mode==1{
+ if( initparam == 0 ){
+ if( files == "None" ){
+ files=""
+ dofile="true"
+ }
+ else{
+ dofile="false"
+ }
+ initparam=1
+ }
+ if( dofile == "true" && $1 == "#" && $2 == "data" && $3 == "file:" ){
+ if( files != "" ) files = files ","
+ files = files $4
+ }
+ else if( $1 == "#" && $2 == "column:" ){
+ column = $3
+ }
+ else if( $1 == "------" ){
+ ds9header="'"${DS9_PLOT_HEADER}"'"
+ if( ds9header != "" ) {
+ printf "%s 2\n", ds9header
+ }
+ else{
+ printf "funhist(%s) %s_bin value 2\n", files, column
+ }
+ mode = 2
+ next
+ }
+ }
+ mode==2{
+ if( NF == 4 ){
+ printf "%.8f %s\n", ($3+$4)/2, $2
+ }
+ else{
+ mode = 3
+ }
+ }
+ ' files="$files"
+ exit 0
+else
+
+ echo "ERROR: unknown argument: " $1
+ echo "funhist ... | funhist.plot [ds9|gnuplot]"
+ exit 1
+
+fi