#! /bin/bash
# Last edited on 2009-12-12 00:19:17 by stolfi

pha="$1"; shift
logscale="$1"; shift
datafile="$1"; shift

echo "${0##*/} pha = ${pha} logscale = ${logscale} datafile = ${datafile}" 1>&2

seppref="/tmp/$$-sep"
epsfile="/tmp/$$.eps"

if [[ ${pha} -eq 0 ]]; then
  xrange="set xrange [2000.8:2010.8]"
  szmax="3600000"
elif [[ ${pha} -eq 1 ]]; then
  xrange="set xrange [2000.8:2004.8]"
  szmax="530000"
elif [[ ${pha} -eq 2 ]]; then
  xrange="set xrange [2006.3:2010.7]"
  szmax="3600000"
else
  echo "invalid pha = [${pha}]" 1>&2 ; exit 1
fi

if [[ ${logscale} -gt 0 ]]; then 
  szmin="(szmax/10000.0)"
  yscale="set logscale y"
else
  szmin="0.0"
  yscale=" "
fi

# In this plot we assume that {su} is 0 or 1:
for su in 0 1; do
  cat ${datafile} \
    | gawk -v su=${su} \
        ' /^ *([\#]|$)/{ next; } 
          ($6 == su){ print; next; } 
          // { print ""; }
        ' \
    > ${seppref}-sz-${su}.txt
done

gnuplot <<EOF
set term postscript eps color solid "TimesRoman" 24
set output "${epsfile}"
set size 1.5, 1.0

szmax=${szmax}
szmin=${szmin}
yearsz(i)=(column(i)/365.25 + 2001)

set key reverse left Left samplen 1.0
set samples 200

set grid xtics
set xtics 1.0 format "        %4.0f"
set mxtics 12
${xrange}

${yscale}
set ytics format "%8.0f"
set yrange[szmin:szmax]
set grid ytics

plot \
  "${seppref}-sz-1.txt" using (yearsz(1)):(column(5)) title "observed" with points pt 7 ps 1.0 lc rgb '#4499ee', \
  "${seppref}-sz-0.txt" using (yearsz(1)):(column(5)) notitle with points pt 6 ps 1.0 lc rgb '#77aabb', \
  "${datafile}" using (yearsz(1)):(column(7)) title "model" with lines lt 1 lw 3.0 lc rgb '#0055bb'

unset multiplot

quit
EOF

cat ${epsfile}
gv ${epsfile}
rm -f ${epsfile} ${seppref}-*.txt
