LWplot_prof
author A.M. Thurnherr <athurnherr@yahoo.com>
Mon, 27 Oct 2014 13:36:21 +0000
changeset 17 fc83e436a800
parent 14 fea65697bc7b
child 20 d6dc9c9da138
permissions -rwxr-xr-x
just before removing code to calculated dc/uc average w

#!/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/$$