#!/bin/ksh
#======================================================================
# L W P L O T _ P R O F
# doc: Fri Oct 14 09:42:36 2011
# dlm: Thu Nov 21 10:21:24 2013
# (c) 2011 A.M. Thurnherr
# uE-Info: 87 0 NIL 0 0 72 2 2 4 NIL ofnI
#======================================================================
# HISTORY:
# Oct 14, 2011: - created
# Oct 15, 2011: - added nsamp
# Oct 16, 2011: - made depth tic-marks range dependent
# Oct 17, 2011: - turned into filter
# - added %run_label
# Nov 14, 2011: - added file layout check
# Mar 12, 2012: - sh -> ksh as this does not work with /bin/sh on MacOSX 10.6.4
# Apr 12, 2012: - made re-entrant
# May 15, 2013: - BUG: plot separation lines/shading did not work any more
# Oct 30, 2103: - got rid of non-portable echo -e
#--------------------------------------------------
# Usage
#--------------------------------------------------
USAGE="Usage: $0 <eps-file> [in-file]"
[ $# -eq 2 ] && exec <"$2" "$0" "$1"
[ $# -ne 1 ] && { echo $USAGE >&2; exit 1; }
eps_file="$1"
#--------------------------------------------------
# Read Header Data
#--------------------------------------------------
while [ -z "$fields" ]
do
read line
[ ! -t 1 ] && echo "$line"
[ -z "$out_basename" ] && out_basename=`expr -- "$line" : '#ANTS#PARAMS#.*out_basename{\([^}]*\)}`
[ -z "$run_label" ] && run_label=`expr -- "$line" : '#ANTS#PARAMS#.*run_label{\([^}]*\)}`
[ -z "$min_depth" ] && min_depth=`expr -- "$line" : '#ANTS#PARAMS#.*min_depth{\([^}]*\)}`
[ -z "$max_depth" ] && max_depth=`expr -- "$line" : '#ANTS#PARAMS#.*max_depth{\([^}]*\)}`
[ -z "$fields" ] && fields=`expr -- "$line" : '#ANTS#FIELDS# \(.*\)' | sed -e s/{//g -e s/}//g`
done
set -- $fields
[ "$1" = depth -a "$4" = dc_w -a "$5" = dc_w.mad -a "$6" = dc_w.nsamp -a \
"${11}" = uc_w -a "${12}" = uc_w.mad -a "${13}" = uc_w.nsamp -a \
"${20}" = BT_w -a "${21}" = BT_w.mad -a "${22}" = BT_w.nsamp ] || {
echo "$0: file layout error" >&2
exit 1
}
#--------------------------------------------------
# Plot Data
#--------------------------------------------------
eps_file="$PWD/$eps_file" # make outfile name absolute (hopefully, it is not already...)
mkdir /tmp/$$ # GMT makes tmpfiles and is not reentrant
cd /tmp/$$
TMPFILE=/tmp/$$.LWplot_prof
if [ ! -t 1 ]
then
tee $TMPFILE
else
cat > $TMPFILE
fi
[ -f .gmtdefaults4 ] ||
gmtset PAPER_MEDIA letter+ \
LABEL_FONT_SIZE 14 ANNOT_FONT_SIZE_PRIMARY 14 \
WANT_EURO_FONT true \
PLOT_DEGREE_FORMAT ddd:mm:ssF
R=-R-0.07/0.35/$min_depth/$max_depth
R2=-R-200/200/$min_depth/$max_depth
U=-R0/1/0/1
X=-JX10/-10
# FRAME
{ echo 0 $min_depth; echo 0 $max_depth; } | psxy -P -K $R $X > "$eps_file"
{ echo 0.07 $min_depth; echo 0.07 $max_depth; echo 0.18 $max_depth; echo 0.18 $min_depth; } | psxy -O -K $R $X -L -G200 >> "$eps_file"
{ echo 50 $min_depth; echo 50 $max_depth; } | psxy -O -K $R2 $X >> "$eps_file"
{ echo 100 $min_depth; echo 100 $max_depth; } | psxy -O -K $R2 $X >> "$eps_file"
{ echo 150 $min_depth; echo 150 $max_depth; } | psxy -O -K $R2 $X >> "$eps_file"
# VERTICAL VELOCITIES
awk '{print $4, $1}' $TMPFILE | psxy -O -K -N -Mn $R $X -W4/coral >> "$eps_file"
awk '{print $11,$1}' $TMPFILE | psxy -O -K -N -Mn $R $X -W4/SeaGreen >> "$eps_file"
awk '{print $20,$1}' $TMPFILE | psxy -O -K -N -Mn $R $X -W4/black >> "$eps_file"
# MEAN ABSOLUTE DEVIATIONS (COMBINED SOLUTION)
awk '{print $5,$1, $4}' $TMPFILE | grep -vi nan | psxy -O -K -N $R $X -Sc0.1c -Gcoral >> "$eps_file"
awk '{print $12,$1,$11}' $TMPFILE | grep -vi nan | psxy -O -K -N $R $X -Sc0.1c -GSeaGreen >> "$eps_file"
awk '{print $21,$1,$20}' $TMPFILE | grep -vi nan | psxy -O -K -N $R $X -Sc0.1c -Gblack >> "$eps_file"
# NUMBER OF SAMPLES (COMBINED SOLUTION)
awk '{print $6,$1, $4}' $TMPFILE | sed '/nan/s/.*/nan/' | psxy -O -K -N -Mn $R2 $X -W1/coral >> "$eps_file"
awk '{print $13,$1,$11}' $TMPFILE | sed '/nan/s/.*/nan/' | psxy -O -K -N -Mn $R2 $X -W1/SeaGreen >> "$eps_file"
awk '{print $22,$1,$20}' $TMPFILE | sed '/nan/s/.*/nan/' | psxy -O -K -N -Mn $R2 $X -W1/black >> "$eps_file"
# LABELS
echo 0.02 0.02 12 0 0 TL $out_basename $run_label | pstext -O -K $U $X >> "$eps_file"
echo 0.6 0.98 12 0 0 BR m.a.d. | pstext -O -K $U $X >> "$eps_file"
if [ 0 -eq `echo "($max_depth-$min_depth)>1000"|bc` ]
then
depth_tics=f10a100
else
depth_tics=f100a500
fi
psbasemap -O -K $R $X -Bf0.01a10-10.05:"Vertical Velocity [m/s] ":/$depth_tics:"Depth [m]":WeS >> "$eps_file"
psbasemap -O -K $R $X -Ba10-9.95S >> "$eps_file"
psbasemap -O -K $R $X -Ba10-9.85S >> "$eps_file"
psbasemap -O -K $R2 $X -Bf10a1000-950:" # of Samples":N >> "$eps_file"
psbasemap -O -K $R2 $X -Ba1000-900N >> "$eps_file"
psbasemap -O $R2 $X -Ba1000-850N >> "$eps_file"
rm $TMPFILE
fixbb "$eps_file"
cd "$PWD"
rm -rf /tmp/$$