author | Andreas Thurnherr <ant@ldeo.columbia.edu> |
Tue, 12 Jul 2022 02:02:22 -0400 | |
changeset 60 | 74fecc295d85 |
parent 59 | 4118a8e880de |
permissions | -rw-r--r-- |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
1 |
#====================================================================== |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
2 |
# P L O T _ R E S I D U A L _ P R O F S . P L |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
3 |
# doc: Wed May 18 18:43:33 2016 |
58
7688bec6fe87
adapted to SBE files with badly formatted records
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
46
diff
changeset
|
4 |
# dlm: Sun Apr 11 06:52:26 2021 |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
5 |
# (c) 2016 A.M. Thurnherr |
58
7688bec6fe87
adapted to SBE files with badly formatted records
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
46
diff
changeset
|
6 |
# uE-Info: 62 52 NIL 0 0 72 2 2 4 NIL ofnI |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
7 |
#====================================================================== |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
8 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
9 |
# HISTORY: |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
10 |
# May 18, 2016: - created from [plot_mean_residuals.pl] |
46 | 11 |
# May 24, 2016: - improved |
58
7688bec6fe87
adapted to SBE files with badly formatted records
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
46
diff
changeset
|
12 |
# Apr 11, 2021: - halved x-axis range |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
13 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
14 |
require "$ANTS/libGMT.pl"; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
15 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
16 |
sub plotDC($$) |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
17 |
{ |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
18 |
my($f,$minsamp) = @_; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
19 |
my($sum,$n); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
20 |
for (my($bi)=0; $bi<=$#{$DNCAST{$f}}; $bi++) { |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
21 |
if (numberp($DNCAST{$f}[$bi]) && $DNCAST{N_SAMP}[$bi]>=$minsamp) { |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
22 |
$sum += $DNCAST{$f}[$bi]**2; $n++; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
23 |
printf(GMT "%g %g\n",$DNCAST{$f}[$bi],($bi+0.5)*$opt_o); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
24 |
} else { |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
25 |
print(GMT "nan nan\n"); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
26 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
27 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
28 |
return $n ? sqrt($sum/$n) : nan; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
29 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
30 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
31 |
sub plotUC($$) # from [plot_wprofs.pl] |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
32 |
{ |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
33 |
my($f,$minsamp) = @_; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
34 |
my($sum,$n); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
35 |
for (my($bi)=0; $bi<=$#{$UPCAST{$f}}; $bi++) { |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
36 |
if (numberp($UPCAST{$f}[$bi]) && $UPCAST{N_SAMP}[$bi]>=$minsamp) { |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
37 |
$sum += $UPCAST{$f}[$bi]**2; $n++; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
38 |
printf(GMT "%g %g\n",$UPCAST{$f}[$bi],($bi+0.5)*$opt_o); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
39 |
} else { |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
40 |
print(GMT "nan nan\n"); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
41 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
42 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
43 |
return $n ? sqrt($sum/$n) : nan; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
44 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
45 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
46 |
sub plot_residual_profs($) |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
47 |
{ |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
48 |
my($pfn) = @_; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
49 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
50 |
my($yellow_light) = 0.004; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
51 |
my($red_light) = 0.01; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
52 |
|
58
7688bec6fe87
adapted to SBE files with badly formatted records
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
46
diff
changeset
|
53 |
my($xmin) = -0.01; |
7688bec6fe87
adapted to SBE files with badly formatted records
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
46
diff
changeset
|
54 |
my($xmax) = 0.01; |
46 | 55 |
my($ymin) = round(antsParam('min_depth')-25,50); |
56 |
my($ymax) = ($P{water_depth} > 0) ? |
|
57 |
round($P{water_depth}+25,50) : |
|
56 | 58 |
round($P{'depth.max'}+$P{ADCP_bin_length}+25,50); |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
59 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
60 |
my($R) = "-R$xmin/$xmax/$ymin/$ymax"; |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
61 |
my($depth_tics) = ($ymax < 1000 ) ? 'f10a100g100' : 'f100a500g500'; |
58
7688bec6fe87
adapted to SBE files with badly formatted records
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
46
diff
changeset
|
62 |
GMT_begin($pfn,'-JX10/-10',$R,"-P -Bf0.001a0.005g0.005:'Residual Vertical Velocity [m/s]':/$depth_tics:'Depth [m]':WeSn"); |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
63 |
|
46 | 64 |
GMT_psxy('-W2,CornflowerBlue'); # zero line |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
65 |
printf(GMT "0 $ymin\n0 $ymax\n"); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
66 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
67 |
GMT_psxy('-W1,coral,8_2:0'); my($r12DC) = plotDC('MEAN_RESIDUAL12',$opt_k); # dc residual12 (pitch plane) |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
68 |
GMT_psxy('-W1,coral,1_1:0'); my($r34DC) = plotDC('MEAN_RESIDUAL34',$opt_k); # dc residual34 (roll plane) |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
69 |
GMT_psxy('-W1,SeaGreen,8_2:0'); my($r12UC) = plotUC('MEAN_RESIDUAL12',$opt_k); # uc residual12 (pitch plane) |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
70 |
GMT_psxy('-W1,SeaGreen,1_1:0'); my($r34UC) = plotUC('MEAN_RESIDUAL34',$opt_k); # uc residual34 (roll plane) |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
71 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
72 |
GMT_unitcoords(); # LABELS |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
73 |
GMT_pstext('-F+f9,Helvetica,orange+jTR -N -Gwhite'); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
74 |
print(GMT "0.99 0.01 V$VERSION\n"); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
75 |
GMT_pstext('-F+f14,Helvetica,blue+jBL -N'); # profile id |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
76 |
print(GMT "0.0 -0.03 $P{out_basename} $P{run_label}\n"); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
77 |
|
46 | 78 |
GMT_pstext('-F+f12,Helvetica-Bold,black+jBL -Gwhite'); # rms residuals |
56 | 79 |
print(GMT "0.1 0.89 beams <1,2>\n"); |
80 |
GMT_pstext('-F+f12,Helvetica-Bold,black+jBR -Gwhite'); |
|
81 |
print(GMT "0.99 0.89 beams <3,4>\n"); |
|
82 |
GMT_pstext('-F+f12,Helvetica,coral+jBL -Gwhite'); # rms residuals |
|
83 |
print(GMT "0.01 0.93 dc\n"); |
|
84 |
GMT_pstext('-F+f12,Helvetica,SeaGreen+jBL -Gwhite'); |
|
85 |
print(GMT "0.01 0.98 uc\n"); |
|
86 |
||
46 | 87 |
if ($r12DC >= $red_light) { GMT_pstext('-F+f12,Helvetica-Bold,coral+jBL -Gred'); } |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
88 |
elsif ($r12DC >= $yellow_light) { GMT_pstext('-F+f12,Helvetica-Bold,coral+jBL -Gyellow'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
89 |
else { GMT_pstext('-F+f12,Helvetica-Bold,coral+jBL -Gwhite'); } |
56 | 90 |
printf(GMT "0.1 0.935 %.1f mm/s rms\n",1000*$r12DC); |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
91 |
if ($r12UC >= $red_light) { GMT_pstext('-F+f12,Helvetica-Bold,SeaGreen+jBL -Gred'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
92 |
elsif ($r12UC >= $yellow_light) { GMT_pstext('-F+f12,Helvetica-Bold,SeaGreen+jBL -Gyellow'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
93 |
else { GMT_pstext('-F+f12,Helvetica-Bold,SeaGreen+jBL -Gwhite'); } |
56 | 94 |
printf(GMT "0.1 0.98 %.1f mm/s rms\n",1000*$r12UC); |
95 |
||
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
96 |
if ($r34DC >= $red_light) { GMT_pstext('-F+f12,Helvetica-Bold,coral+jBR -Gred'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
97 |
elsif ($r34DC >= $yellow_light) { GMT_pstext('-F+f12,Helvetica-Bold,coral+jBR -Gyellow'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
98 |
else { GMT_pstext('-F+f12,Helvetica-Bold,coral+jBR -Gwhite'); } |
46 | 99 |
printf(GMT "0.99 0.935 %.1f mm/s rms\n",1000*$r34DC); |
45
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
100 |
if ($r34UC >= $red_light) { GMT_pstext('-F+f12,Helvetica-Bold,SeaGreen+jBR -Gred'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
101 |
elsif ($r34UC >= $yellow_light) { GMT_pstext('-F+f12,Helvetica-Bold,SeaGreen+jBR -Gyellow'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
102 |
else { GMT_pstext('-F+f12,Helvetica-Bold,SeaGreen+jBR -Gwhite'); } |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
103 |
printf(GMT "0.99 0.98 %.1f mm/s rms\n",1000*$r34UC); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
104 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
105 |
GMT_end(); |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
106 |
} |
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
107 |
|
6d49c7420a6c
stable V1.3beta, just before implementing bin interpolation
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
108 |
1; # return true on require |