29
|
1 |
#======================================================================
|
|
2 |
# P L O T _ W P R O F . P L
|
|
3 |
# doc: Sun Jul 26 11:08:50 2015
|
31
|
4 |
# dlm: Thu Jul 30 09:50:03 2015
|
29
|
5 |
# (c) 2015 A.M. Thurnherr
|
31
|
6 |
# uE-Info: 11 54 NIL 0 0 72 2 2 4 NIL ofnI
|
29
|
7 |
#======================================================================
|
|
8 |
|
|
9 |
# HISTORY:
|
|
10 |
# Jul 26, 2015: - created from LWplot_prof_2beam
|
31
|
11 |
# Jul 30, 2015: - moved main label outside plot area
|
29
|
12 |
|
|
13 |
# Tweakables:
|
|
14 |
#
|
|
15 |
# $plot_wprof_xmin = -0.27;
|
|
16 |
# $plot_wprof_ymax = 5000;
|
|
17 |
# $plot_wprof_xtics = "-0.25 -0.15 -0.05 0.05";
|
|
18 |
|
|
19 |
require "$ANTS/libGMT.pl";
|
|
20 |
|
|
21 |
sub setR1() { GMT_setR("-R$plot_wprof_xmin/0.35/0/$plot_wprof_ymax"); }
|
|
22 |
sub setR2() { GMT_setR("-R-200/200/0/$plot_wprof_ymax"); }
|
|
23 |
|
|
24 |
sub plotDC($)
|
|
25 |
{
|
|
26 |
my($f) = @_;
|
|
27 |
for (my($bi)=0; $bi<=$#{$DNCAST{$f}}; $bi++) {
|
|
28 |
printf(GMT (numberp($DNCAST{$f}[$bi]) ? "%g %g\n" : "nan nan\n"),
|
|
29 |
$DNCAST{$f}[$bi],($bi+0.5)*$opt_o)
|
|
30 |
if ($DNCAST{N_SAMP}[$bi] >= $opt_k);
|
|
31 |
}
|
|
32 |
}
|
|
33 |
|
|
34 |
sub plotUC($)
|
|
35 |
{
|
|
36 |
my($f) = @_;
|
|
37 |
for (my($bi)=0; $bi<=$#{$UPCAST{$f}}; $bi++) {
|
|
38 |
printf(GMT (numberp($UPCAST{$f}[$bi]) ? "%g %g\n" : "nan nan\n"),
|
|
39 |
$UPCAST{$f}[$bi],($bi+0.5)*$opt_o)
|
|
40 |
if ($UPCAST{N_SAMP}[$bi] >= $opt_k);
|
|
41 |
}
|
|
42 |
}
|
|
43 |
|
|
44 |
sub plotBT($)
|
|
45 |
{
|
|
46 |
my($f) = @_;
|
|
47 |
for (my($bi)=0; $bi<=$#{$BT{$f}}; $bi++) {
|
|
48 |
printf(GMT (numberp($BT{$f}[$bi]) ? "%g %g\n" : "nan nan\n"),
|
|
49 |
$BT{$f}[$bi],($bi+0.5)*$opt_o)
|
|
50 |
if ($BT{N_SAMP}[$bi] >= $opt_k);
|
|
51 |
}
|
|
52 |
}
|
|
53 |
|
|
54 |
|
|
55 |
sub plot_wprof($)
|
|
56 |
{
|
|
57 |
my($pfn) = @_;
|
|
58 |
|
|
59 |
$plot_wprof_xmin = -0.1
|
|
60 |
unless defined($plot_wprof_xmin);
|
|
61 |
$plot_wprof_ymax = ($P{water_depth} > 0) ?
|
|
62 |
round($P{water_depth} + 25) :
|
|
63 |
round($P{max_depth} + 25)
|
|
64 |
unless defined($plot_wprof_ymax);
|
|
65 |
$plot_wprof_xtics = "-0.05 0.05 0.15"
|
|
66 |
unless defined($plot_wprof_xtics);
|
|
67 |
|
|
68 |
GMT_begin($pfn,'-JX10/-10',"-R$plot_wprof_xmin/0.35/0/$plot_wprof_ymax",'-P'); # START PLOT
|
|
69 |
|
|
70 |
GMT_psxy('-G200'); # MAD background
|
|
71 |
print(GMT "0.07 0\n 0.07 $plot_wprof_ymax\n0.18 $plot_wprof_ymax\n0.18 0\n");
|
|
72 |
|
|
73 |
if ($P{water_depth} > 0) { # SEABED
|
|
74 |
GMT_psxy('-G204/153/102');
|
|
75 |
print(GMT "$plot_wprof_xmin $plot_wprof_ymax\n0.35 $plot_wprof_ymax\n0.35 $P{water_depth}\n $plot_wprof_xmin $P{water_depth}\n");
|
|
76 |
}
|
|
77 |
|
|
78 |
setR1(); # FRAME
|
|
79 |
GMT_psxy('-W1');
|
|
80 |
print(GMT "0 0\n 0 $plot_wprof_ymax\n");
|
|
81 |
setR2();
|
|
82 |
GMT_psxy('-W1 -M');
|
|
83 |
print(GMT ">\n50 0\n 50 $plot_wprof_ymax\n");
|
|
84 |
print(GMT ">\n100 0\n 100 $plot_wprof_ymax\n");
|
|
85 |
print(GMT ">\n150 0\n 150 $plot_wprof_ymax\n");
|
|
86 |
|
|
87 |
setR1(); # VERTICAL VELOCITIES
|
|
88 |
GMT_psxy('-Mn -W4,coral,6_2:0'); plotDC('MEDIAN_W12');
|
|
89 |
GMT_psxy('-Mn -W4,coral,4_6:0'); plotDC('MEDIAN_W34');
|
|
90 |
GMT_psxy('-Mn -W4,SeaGreen,6_2:0'); plotUC('MEDIAN_W12');
|
|
91 |
GMT_psxy('-Mn -W4,SeaGreen,4_6:0'); plotUC('MEDIAN_W34');
|
|
92 |
GMT_psxy('-Mn -W4,black'); plotBT('MEDIAN_W');
|
|
93 |
|
|
94 |
GMT_psxy('-Sc0.1c -Gcoral'); plotDC('MAD_W'); # MEAN ABSOLUTE DEVIATIONS
|
|
95 |
GMT_psxy('-Sc0.1c -GSeaGreen'); plotUC('MAD_W');
|
|
96 |
GMT_psxy('-Sc0.1c -Gblack'); plotBT('MAD_W');
|
|
97 |
|
|
98 |
setR2(); # SAMPLES
|
|
99 |
GMT_psxy('-Mn -W1/coral'); plotDC('N_SAMP');
|
|
100 |
GMT_psxy('-Mn -W1/SeaGreen'); plotUC('N_SAMP');
|
|
101 |
GMT_psxy('-Mn -W1/black'); plotBT('N_SAMP');
|
|
102 |
|
|
103 |
GMT_unitcoords(); # LABELS
|
31
|
104 |
GMT_pstext('-Gblue -N');
|
|
105 |
print(GMT "0.01 -0.06 14 0 0 TL $P{out_basename} $P{run_label}\n");
|
29
|
106 |
GMT_pstext();
|
|
107 |
print(GMT "0.6 0.98 12 0 0 BR m.a.d.\n");
|
|
108 |
|
|
109 |
my($depth_tics) = ($plot_wprof_ymax < 1000 ) ? 'f10a100' : 'f100a500'; # AXES
|
|
110 |
setR1();
|
|
111 |
GMT_psbasemap("-Bf0.01:'Vertical Velocity [m/s] ':/$depth_tics:'Depth [m]':WeS");
|
|
112 |
foreach my $t (split('\s+',$plot_wprof_xtics)) {
|
|
113 |
GMT_psbasemap(sprintf('-Ba10-%fS',10-$t));
|
|
114 |
}
|
|
115 |
setR2();
|
|
116 |
GMT_psbasemap('-Bf10a1000-950:" # of Samples":N');
|
|
117 |
GMT_psbasemap('-Ba1000-900N');
|
|
118 |
GMT_psbasemap('-Ba1000-850N');
|
|
119 |
|
|
120 |
GMT_end(); # FINISH PLOT
|
|
121 |
}
|
|
122 |
|
|
123 |
1; # return true on require
|