LWplot_residuals
author A.M. Thurnherr <athurnherr@yahoo.com>
Mon, 20 Apr 2015 14:04:04 +0000
changeset 28 b07b23485336
parent 27 2053d8de8d6b
child 29 c1ff35103176
permissions -rwxr-xr-x
after folding in EGU flight mods (empirical Sv correction)

#!/bin/sh
#======================================================================
#					 L W P L O T _ R E S I D U A L S 
#                    doc: Sat Oct 15 13:42:50 2011
#                    dlm: Thu Apr 16 11:20:19 2015
#                    (c) 2011 A.M. Thurnherr
#                    uE-Info: 91 0 NIL 0 0 72 2 2 4 NIL ofnI
#======================================================================

# HISTORY:
#	Oct 15, 2011: - created
#	Oct 17, 2011: - turned into filter
#				  - added %run_label
#   Oct 24, 2011: - LADCP_bin_length => ADCP_bin_length
#	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
#	Apr  5, 2015: - made fixbb optional
#   Apr 16, 2015: - removed copy of input on stdout
#				  - changed shell from /bin/ksh to /bin/sh
#				  - added seabed if available

#--------------------------------------------------
# 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
	[ -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 "$water_depth" ] && water_depth=`expr -- "$line" : '#ANTS#PARAMS#.*water_depth{\([^}]*\)}`
	[ -z "$min_ens" ] && min_ens=`expr -- "$line" : '#ANTS#PARAMS#.*min_ens{\([^}]*\)}`
	[ -z "$max_ens" ] && max_ens=`expr -- "$line" : '#ANTS#PARAMS#.*max_ens{\([^}]*\)}`
	[ -z "$ADCP_bin_length" ] && ADCP_bin_length=`expr -- "$line" : '#ANTS#PARAMS#.*ADCP_bin_length{\([^}]*\)}`
	[ -z "$fields" ] && fields=`expr -- "$line" : '#ANTS#FIELDS# \(.*\)' | sed -e s/{//g -e s/}//g`
done

set -- $fields
[ "$1" = ensemble -a "$4" = depth -a "${10}" = residual ] || {
	echo "$0: file layout error ($1, $4, ${10})" >&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_residuals
cat > $TMPFILE

[ -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

[ -n "$water_depth" ] && blim=`echo "scale=1;$water_depth+25"|bc` \
				      || blim=`echo "scale=1;$max_depth+$ADCP_bin_length"|bc`
R=-R`echo "scale=1;$min_ens-0.5"|bc`/`echo "scale=1;$max_ens+0.5"|bc`/0/$blim
U=-R0/1/0/1
X=-JX10/-10
C=-C`which LWplot_residuals | sed 's@LWplot_residuals$@residuals.cpt@'`

ens_width=`echo "scale=5;10/($max_ens-$min_ens+1)"|bc`
bin_length=`echo "scale=5;10*$ADCP_bin_length/($max_depth-$min_depth+$ADCP_bin_length)"|bc`

awk "{print \$1, \$4, \$10, $ens_width, $bin_length}" $TMPFILE \
	| psxy -P -K $R $X $C -Sr > "$eps_file"
[ -n "$water_depth" ] && {
	echo $min_ens $blim;
	echo $max_ens $blim;
	echo $max_ens $water_depth;
	echo $min_ens $water_depth;
} | psxy -O -K $R $X -G204/153/102 >> "$eps_file"
	
echo 0.02 0.02 12 0 0 TL $out_basename $run_label | pstext -O -K $U $X >> "$eps_file"

if [ 0 -eq `echo "($max_depth-$min_depth)>1000"|bc` ]
then
	depth_tics=f10a100
	ens_tics=f50a500
else
	depth_tics=f100a500
	ens_tics=f500a1000
fi

cat `which LWplot_residuals | sed 's@LWplot_residuals$@residuals_scale.skel@'` >> "$eps_file"

psbasemap -O $R $X -B$ens_tics:"Ensemble":/$depth_tics:"Depth [m]":WeSn >> "$eps_file"

rm $TMPFILE
[ -n "`which fixbb`" ] && fixbb "$eps_file"

cd "$PWD"
rm -rf /tmp/$$