LWplot_residuals
changeset 30 7fb67e771d85
parent 29 c1ff35103176
child 31 d0ae3cb99021
equal deleted inserted replaced
29:c1ff35103176 30:7fb67e771d85
     1 #!/bin/sh
       
     2 #======================================================================
       
     3 #					 L W P L O T _ R E S I D U A L S 
       
     4 #                    doc: Sat Oct 15 13:42:50 2011
       
     5 #                    dlm: Wed May 20 20:46:41 2015
       
     6 #                    (c) 2011 A.M. Thurnherr
       
     7 #                    uE-Info: 50 0 NIL 0 0 72 0 2 4 NIL ofnI
       
     8 #======================================================================
       
     9 
       
    10 # HISTORY:
       
    11 #	Oct 15, 2011: - created
       
    12 #	Oct 17, 2011: - turned into filter
       
    13 #				  - added %run_label
       
    14 #   Oct 24, 2011: - LADCP_bin_length => ADCP_bin_length
       
    15 #	Nov 14, 2011: - added file layout check
       
    16 #	Mar 12, 2012: - sh -> ksh as this does not work with /bin/sh on MacOSX 10.6.4
       
    17 #   Apr 12, 2012: - made re-entrant
       
    18 #	Apr  5, 2015: - made fixbb optional
       
    19 #   Apr 16, 2015: - removed copy of input on stdout
       
    20 #				  - changed shell from /bin/ksh to /bin/sh
       
    21 #				  - added seabed if available
       
    22 #   May 20, 2015: - made it quit on EOF
       
    23 
       
    24 #--------------------------------------------------
       
    25 # Usage
       
    26 #--------------------------------------------------
       
    27 
       
    28 USAGE="Usage: $0 <eps-file> [in-file]"
       
    29 	[ $# -eq 2 ] && exec <"$2" "$0" "$1"
       
    30 	[ $# -ne 1 ] && { echo $USAGE >&2; exit 1; }
       
    31 eps_file="$1"
       
    32 
       
    33 #--------------------------------------------------
       
    34 # Read Header Data
       
    35 #--------------------------------------------------
       
    36 
       
    37 read line
       
    38 while [ -z "$fields" -a -n "$line" ]
       
    39 do
       
    40 	[ -z "$out_basename" ] && out_basename=`expr -- "$line" : '#ANTS#PARAMS#.*out_basename{\([^}]*\)}`
       
    41 	[ -z "$run_label" ] && run_label=`expr -- "$line" : '#ANTS#PARAMS#.*run_label{\([^}]*\)}`
       
    42 	[ -z "$min_depth" ] && min_depth=`expr -- "$line" : '#ANTS#PARAMS#.*min_depth{\([^}]*\)}`
       
    43 	[ -z "$max_depth" ] && max_depth=`expr -- "$line" : '#ANTS#PARAMS#.*max_depth{\([^}]*\)}`
       
    44 	[ -z "$water_depth" ] && water_depth=`expr -- "$line" : '#ANTS#PARAMS#.*water_depth{\([^}]*\)}`
       
    45 	[ -z "$min_ens" ] && min_ens=`expr -- "$line" : '#ANTS#PARAMS#.*min_ens{\([^}]*\)}`
       
    46 	[ -z "$max_ens" ] && max_ens=`expr -- "$line" : '#ANTS#PARAMS#.*max_ens{\([^}]*\)}`
       
    47 	[ -z "$ADCP_bin_length" ] && ADCP_bin_length=`expr -- "$line" : '#ANTS#PARAMS#.*ADCP_bin_length{\([^}]*\)}`
       
    48 	[ -z "$fields" ] && fields=`expr -- "$line" : '#ANTS#FIELDS# \(.*\)' | sed -e s/{//g -e s/}//g`
       
    49 	read line
       
    50 done
       
    51 
       
    52 set -- $fields
       
    53 [ "$1" = ensemble -a "$4" = depth -a "${10}" = residual ] || {
       
    54 	echo "$0: file layout error ($1, $4, ${10})" >&2
       
    55 	exit 1
       
    56 }
       
    57 
       
    58 #--------------------------------------------------
       
    59 # Plot Data
       
    60 #--------------------------------------------------
       
    61 
       
    62 eps_file="$PWD/$eps_file"	# make outfile name absolute (hopefully, it is not already...)
       
    63 mkdir /tmp/$$				# GMT makes tmpfiles and is not reentrant
       
    64 cd /tmp/$$
       
    65 
       
    66 TMPFILE=/tmp/$$.LWplot_residuals
       
    67 cat > $TMPFILE
       
    68 
       
    69 [ -f .gmtdefaults4 ] ||
       
    70 	gmtset	PAPER_MEDIA letter+ \
       
    71 			LABEL_FONT_SIZE 14 ANNOT_FONT_SIZE_PRIMARY 14 \
       
    72 			WANT_EURO_FONT true \
       
    73 	        PLOT_DEGREE_FORMAT ddd:mm:ssF
       
    74 
       
    75 [ -n "$water_depth" ] && blim=`echo "scale=1;$water_depth+25"|bc` \
       
    76 				      || blim=`echo "scale=1;$max_depth+$ADCP_bin_length"|bc`
       
    77 R=-R`echo "scale=1;$min_ens-0.5"|bc`/`echo "scale=1;$max_ens+0.5"|bc`/0/$blim
       
    78 U=-R0/1/0/1
       
    79 X=-JX10/-10
       
    80 C=-C`which LWplot_residuals | sed 's@LWplot_residuals$@residuals.cpt@'`
       
    81 
       
    82 ens_width=`echo "scale=5;10/($max_ens-$min_ens+1)"|bc`
       
    83 bin_length=`echo "scale=5;10*$ADCP_bin_length/($max_depth-$min_depth+$ADCP_bin_length)"|bc`
       
    84 
       
    85 awk "{print \$1, \$4, \$10, $ens_width, $bin_length}" $TMPFILE \
       
    86 	| psxy -P -K $R $X $C -Sr > "$eps_file"
       
    87 [ -n "$water_depth" ] && {
       
    88 	echo $min_ens $blim;
       
    89 	echo $max_ens $blim;
       
    90 	echo $max_ens $water_depth;
       
    91 	echo $min_ens $water_depth;
       
    92 } | psxy -O -K $R $X -G204/153/102 >> "$eps_file"
       
    93 	
       
    94 echo 0.02 0.02 12 0 0 TL $out_basename $run_label | pstext -O -K $U $X >> "$eps_file"
       
    95 
       
    96 if [ 0 -eq `echo "($max_depth-$min_depth)>1000"|bc` ]
       
    97 then
       
    98 	depth_tics=f10a100
       
    99 	ens_tics=f50a500
       
   100 else
       
   101 	depth_tics=f100a500
       
   102 	ens_tics=f500a1000
       
   103 fi
       
   104 
       
   105 psbasemap -O -K $R $X -B$ens_tics:"Ensemble":/$depth_tics:"Depth [m]":WeSn >> "$eps_file"
       
   106 
       
   107 gmtset ANNOT_FONT_SIZE_PRIMARY 7
       
   108 psscale -O -E -D8/2/3/0.4 $C -B/:residuals: >> "$eps_file"
       
   109 
       
   110 rm $TMPFILE
       
   111 [ -n "`which fixbb`" ] && fixbb "$eps_file"
       
   112 
       
   113 cd "$PWD"
       
   114 rm -rf /tmp/$$
       
   115