113 $uc_n++; |
118 $uc_n++; |
114 } |
119 } |
115 } |
120 } |
116 } |
121 } |
117 |
122 |
|
123 sub plotRes() |
|
124 { |
|
125 for (my($bi)=0; $bi<=$#{$DNCAST{MEDIAN_W}}; $bi++) { |
|
126 if ($DNCAST{LR_RMS_BP_RESIDUAL}[$bi] > 0.002) { |
|
127 my($sat) = round(100*max(0.01-max($DNCAST{LR_RMS_BP_RESIDUAL}[$bi]-0.002,0),0) * 255); |
|
128 GMT_psxy("-Gp300/12:F255/$sat/${sat}B-"); |
|
129 printf(GMT "%g %g\n%g %g\n%g %g\n%g %g\n", |
|
130 -0.1,$bi*$opt_o,0,$bi*$opt_o, |
|
131 0,($bi+1)*$opt_o,-0.1,($bi+1)*$opt_o); |
|
132 } |
|
133 if ($UPCAST{LR_RMS_BP_RESIDUAL}[$bi] > 0.002) { |
|
134 my($sat) = round(100*max(0.01-max($UPCAST{LR_RMS_BP_RESIDUAL}[$bi]-0.002,0),0) * 255); |
|
135 GMT_psxy("-Gp300/9:F255/$sat/${sat}B-"); |
|
136 printf(GMT "%g %g\n%g %g\n%g %g\n%g %g\n", |
|
137 0,$bi*$opt_o,0.07,$bi*$opt_o, |
|
138 0.07,($bi+1)*$opt_o,0,($bi+1)*$opt_o); |
|
139 } |
|
140 } |
|
141 } |
|
142 |
118 sub plot_wprof($) |
143 sub plot_wprof($) |
119 { |
144 { |
120 my($pfn) = @_; |
145 my($pfn) = @_; |
121 |
146 |
122 $plot_wprof_xmin = -0.1 |
147 $plot_wprof_xmin = -0.1 |
123 unless defined($plot_wprof_xmin); |
148 unless defined($plot_wprof_xmin); |
124 $plot_wprof_ymin = round(antsParam('min_depth')-25,50) |
149 $plot_wprof_ymin = round(antsParam('depth.min')-25,50) |
125 unless defined($plot_wprof_ymin); |
150 unless defined($plot_wprof_ymin); |
126 $plot_wprof_ymax = ($P{water_depth} > 0) ? |
151 $plot_wprof_ymax = ($P{water_depth} > 0) ? |
127 round($P{water_depth}+25,50) : |
152 round($P{water_depth}+25,50) : |
128 round($P{max_depth}+25,50) |
153 round($P{'depth.max'}+25,50) |
129 unless defined($plot_wprof_ymax); |
154 unless defined($plot_wprof_ymax); |
130 $plot_wprof_xtics = "-0.05 0.05 0.15" |
155 $plot_wprof_xtics = "-0.05 0.05 0.15" |
131 unless defined($plot_wprof_xtics); |
156 unless defined($plot_wprof_xtics); |
132 |
157 |
133 GMT_begin($pfn,'-JX10/-10',"-R$plot_wprof_xmin/0.35/$plot_wprof_ymin/$plot_wprof_ymax",'-P'); # START PLOT |
158 GMT_begin($pfn,'-JX10/-10',"-R$plot_wprof_xmin/0.35/$plot_wprof_ymin/$plot_wprof_ymax",'-P'); # START PLOT |
167 GMT_psxy('-W0.7,black'); plotBT('N_SAMP',1); |
192 GMT_psxy('-W0.7,black'); plotBT('N_SAMP',1); |
168 |
193 |
169 GMT_unitcoords(); # QUALITY SEMAPHORE |
194 GMT_unitcoords(); # QUALITY SEMAPHORE |
170 GMT_psxy('-Ggray90'); |
195 GMT_psxy('-Ggray90'); |
171 print(GMT "0.895 0.895\n0.985 0.895\n0.985 0.985\n0.895 0.985\n"); |
196 print(GMT "0.895 0.895\n0.985 0.895\n0.985 0.985\n0.895 0.985\n"); |
172 if ($dc_bres12_rms >= 0.005) { GMT_psxy('-Gred -N'); } |
197 if ($dc_bres12_rms >= 0.005) { GMT_psxy('-W1,coral,8_2:0 -Gred -N'); } |
173 elsif ($dc_bres12_rms >= 0.003) { GMT_psxy('-Gorange -N'); } |
198 elsif ($dc_bres12_rms >= 0.003) { GMT_psxy('-W1,coral,8_2:0 -Gorange -N'); } |
174 elsif ($dc_bres12_rms >= 0.0015) { GMT_psxy('-Gyellow -N'); } |
199 elsif ($dc_bres12_rms >= 0.0015) { GMT_psxy('-W1,coral,8_2:0 -Gyellow -N'); } |
175 else { GMT_psxy('-Ggreen -N'); } |
200 else { GMT_psxy('-W1,coral,8_2:0 -Ggreen -N'); } |
176 print(GMT "0.90 0.90\n0.935 0.90\n0.935 0.935\n"); |
201 # print(GMT "0.90 0.90\n0.935 0.90\n0.935 0.935\n"); |
177 if ($dc_bres34_rms >= 0.005) { GMT_psxy('-Gred -N'); } |
202 print(GMT "0.90 0.90\n0.935 0.90\n0.935 0.935\n0.90 0.935\n"); |
178 elsif ($dc_bres34_rms >= 0.003) { GMT_psxy('-Gorange -N'); } |
203 if ($dc_bres34_rms >= 0.005) { GMT_psxy('-W1,coral,1_1:0 -Gred -N'); } |
179 elsif ($dc_bres34_rms >= 0.0015) { GMT_psxy('-Gyellow -N'); } |
204 elsif ($dc_bres34_rms >= 0.003) { GMT_psxy('-W1,coral,1_1:0 -Gorange -N'); } |
180 else { GMT_psxy('-Ggreen -N'); } |
205 elsif ($dc_bres34_rms >= 0.0015) { GMT_psxy('-W1,coral,1_1:0 -Gyellow -N'); } |
181 print(GMT "0.945 0.90\n0.98 0.90\n0.945 0.935\n"); |
206 else { GMT_psxy('-W1,coral,1_1:0 -Ggreen -N'); } |
182 if ($uc_bres12_rms >= 0.005) { GMT_psxy('-Gred -N'); } |
207 # print(GMT "0.945 0.90\n0.98 0.90\n0.945 0.935\n"); |
183 elsif ($uc_bres12_rms >= 0.003) { GMT_psxy('-Gorange -N'); } |
208 print(GMT "0.945 0.90\n0.98 0.90\n0.98 0.935\n0.945 0.935\n"); |
184 elsif ($uc_bres12_rms >= 0.0015) { GMT_psxy('-Gyellow -N'); } |
209 if ($uc_bres12_rms >= 0.005) { GMT_psxy('-W1,SeaGreen,8_2:0 -Gred -N'); } |
185 else { GMT_psxy('-Ggreen -N'); } |
210 elsif ($uc_bres12_rms >= 0.003) { GMT_psxy('-W1,SeaGreen,8_2:0 -Gorange -N'); } |
186 print(GMT "0.90 0.98\n0.935 0.98\n0.935 0.945\n"); |
211 elsif ($uc_bres12_rms >= 0.0015) { GMT_psxy('-W1,SeaGreen,8_2:0 -Gyellow -N'); } |
187 if ($uc_bres34_rms >= 0.005) { GMT_psxy('-Gred -N'); } |
212 else { GMT_psxy('-W1,SeaGreen,8_2:0 -Ggreen -N'); } |
188 elsif ($uc_bres34_rms >= 0.003) { GMT_psxy('-Gorange -N'); } |
213 # print(GMT "0.90 0.98\n0.935 0.98\n0.935 0.945\n"); |
189 elsif ($uc_bres34_rms >= 0.0015) { GMT_psxy('-Gyellow -N'); } |
214 print(GMT "0.90 0.98\n0.935 0.98\n0.935 0.945\n0.90 0.945\n"); |
190 else { GMT_psxy('-Ggreen -N'); } |
215 if ($uc_bres34_rms >= 0.005) { GMT_psxy('-W1,SeaGreen,1_1:0 -Gred -N'); } |
191 print(GMT "0.945 0.98\n0.98 0.98\n0.945 0.945\n"); |
216 elsif ($uc_bres34_rms >= 0.003) { GMT_psxy('-W1,SeaGreen,1_1:0 -Gorange -N'); } |
192 if (0) { |
217 elsif ($uc_bres34_rms >= 0.0015) { GMT_psxy('-W1,SeaGreen,1_1:0 -Gyellow -N'); } |
193 if ($dc_bres12_rms >= 0.005) { GMT_psxy('-Gred -N -Sc0.3'); } |
218 else { GMT_psxy('-W1,SeaGreen,1_1:0 -Ggreen -N'); } |
194 elsif ($dc_bres12_rms >= 0.003) { GMT_psxy('-Gorange -N -Sc0.3'); } |
219 # print(GMT "0.945 0.98\n0.98 0.98\n0.945 0.945\n"); |
195 elsif ($dc_bres12_rms >= 0.0015) { GMT_psxy('-Gyellow -N -Sc0.3'); } |
220 print(GMT "0.945 0.98\n0.98 0.98\n0.98 0.945\n0.945 0.945\n"); |
196 else { GMT_psxy('-Ggreen -N -Sc0.3'); } |
|
197 print(GMT "0.92 0.96\n"); |
|
198 if ($dc_bres34_rms >= 0.005) { GMT_psxy('-Gred -N -Sc0.3'); } |
|
199 elsif ($dc_bres34_rms >= 0.003) { GMT_psxy('-Gorange -N -Sc0.3'); } |
|
200 elsif ($dc_bres34_rms >= 0.0015) { GMT_psxy('-Gyellow -N -Sc0.3'); } |
|
201 else { GMT_psxy('-Ggreen -N -Sc0.3'); } |
|
202 print(GMT "0.96 0.96\n"); |
|
203 if ($uc_bres12_rms >= 0.005) { GMT_psxy('-Gred -N -Sc0.3'); } |
|
204 elsif ($uc_bres12_rms >= 0.003) { GMT_psxy('-Gorange -N -Sc0.3'); } |
|
205 elsif ($uc_bres12_rms >= 0.0015) { GMT_psxy('-Gyellow -N -Sc0.3'); } |
|
206 else { GMT_psxy('-Ggreen -N -Sc0.3'); } |
|
207 print(GMT "0.92 0.92\n"); |
|
208 if ($uc_bres34_rms >= 0.005) { GMT_psxy('-Gred -N -Sc0.3'); } |
|
209 elsif ($uc_bres34_rms >= 0.003) { GMT_psxy('-Gorange -N -Sc0.3'); } |
|
210 elsif ($uc_bres34_rms >= 0.0015) { GMT_psxy('-Gyellow -N -Sc0.3'); } |
|
211 else { GMT_psxy('-Ggreen -N -Sc0.3'); } |
|
212 print(GMT "0.96 0.92\n"); |
|
213 } |
|
214 |
221 |
215 GMT_pstext('-F+f14,Helvetica,blue+jTL -N'); # LABELS |
222 GMT_pstext('-F+f14,Helvetica,blue+jTL -N'); # LABELS |
216 print(GMT "0.01 -0.06 $P{out_basename} [$P{run_label}]\n"); |
223 print(GMT "0.01 -0.06 $P{out_basename} [$P{run_label}]\n"); |
217 GMT_pstext('-F+f12,Helvetica+jTR'); |
224 GMT_pstext('-F+f12,Helvetica+jTR'); |
218 print(GMT "0.61 0.02 m.abs.dev.\n"); |
225 print(GMT "0.61 0.02 m.abs.dev.\n"); |
228 if ($have_BT) { |
235 if ($have_BT) { |
229 GMT_pstext('-F+f12,Helvetica,black+jBL -Gwhite'); |
236 GMT_pstext('-F+f12,Helvetica,black+jBL -Gwhite'); |
230 print(GMT "0.02 0.98 b.track\n"); |
237 print(GMT "0.02 0.98 b.track\n"); |
231 } |
238 } |
232 |
239 |
|
240 # The following values were established manually in July 2021 with |
|
241 # a GMT version that does not seem to respect y, maybe because of |
|
242 # super-/subscripts. |
|
243 # my(@y) = (1.020,1.056,1.090,1.135); # 0.036, 0.034, 0.035 |
|
244 # my(@y) = (1.020,1.056,1.088,1.131); |
|
245 my(@y) = (1.020,1.060,1.088,1.127); |
|
246 |
233 GMT_pstext('-F+f9,Helvetica,CornFlowerBlue+jTL -N'); |
247 GMT_pstext('-F+f9,Helvetica,CornFlowerBlue+jTL -N'); |
234 printf(GMT "0.64 1.020 %d kHz $LADCP{INSTRUMENT_TYPE} $P{ADCP_orientation}\n", |
248 printf(GMT "0.64 $y[0] %d kHz $LADCP{INSTRUMENT_TYPE} $P{ADCP_orientation}\n", |
235 round($LADCP{BEAM_FREQUENCY},50)); |
249 round($LADCP{BEAM_FREQUENCY},50)); |
236 printf(GMT "0.64 1.055 %s [%.1fm/%1.fm/%1.fm]\n", |
250 |
237 $LADCP{BEAM_COORDINATES} ? 'beam vels' : 'Earth vels', |
251 # printf(GMT "0.64 1.055 %s [%.1fm/%1.fm/%1.fm]\n", |
238 $LADCP{BLANKING_DISTANCE},$LADCP{TRANSMITTED_PULSE_LENGTH},$LADCP{BIN_LENGTH}); |
252 # $LADCP{BEAM_COORDINATES} ? 'beam vels' : 'Earth vels', |
239 print(GMT "0.64 1.090 mean tilt\n 0.77 1.096 :\n"); |
253 # $LADCP{BLANKING_DISTANCE},$LADCP{TRANSMITTED_PULSE_LENGTH},$LADCP{BIN_LENGTH}); |
240 print(GMT "0.64 1.130 rms a\@-pkg\@-\n 0.77 1.1315 :\n"); |
254 |
241 |
255 print( GMT "0.64 $y[1] mean w\n 0.77 $y[1] :\n"); |
242 if ($P{dc_mean_tilt} < 4) { |
256 printf(GMT "0.64 $y[2] mean tilt\n 0.77 %f :\n",$y[2]+0.007); |
|
257 print( GMT "0.64 $y[3] rms a\@-pkg\@-\n 0.77 $y[3] :\n"); |
|
258 |
|
259 if (abs($P{'dc_w.mu'} - $P{'uc_w.mu'}) < 0.005) { |
243 GMT_pstext('-F+f9,Helvetica,coral+jTL -N'); |
260 GMT_pstext('-F+f9,Helvetica,coral+jTL -N'); |
244 } elsif ($P{dc_mean_tilt} < 8) { |
261 } elsif (abs($P{'dc_w.mu'} - $P{'uc_w.mu'}) < 0.01) { |
|
262 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gyellow -N'); |
|
263 } else { |
|
264 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gred -N'); |
|
265 } |
|
266 printf(GMT "0.78 %f %dmm/s\n",$y[1]-0.006,round($P{'dc_w.mu'}*1000)); |
|
267 |
|
268 if (abs($P{'dc_w.mu'} - $P{'uc_w.mu'}) < 0.005) { |
|
269 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -N'); |
|
270 } elsif (abs($P{'dc_w.mu'} - $P{'uc_w.mu'}) < 0.01) { |
|
271 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gyellow -N'); |
|
272 } else { |
|
273 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gred -N'); |
|
274 } |
|
275 printf(GMT "0.89 %f %dmm/s\n",$y[1]-0.006,round($P{'uc_w.mu'}*1000)); |
|
276 |
|
277 |
|
278 if ($P{'dc_tilt.mu'} < 4) { |
|
279 GMT_pstext('-F+f9,Helvetica,coral+jTL -N'); |
|
280 } elsif ($P{'dc_tilt.mu'} < 8) { |
245 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gyellow -N'); |
281 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gyellow -N'); |
246 } else { |
282 } else { |
247 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gred -N'); |
283 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gred -N'); |
248 } |
284 } |
249 printf(GMT "0.808 1.090 %.1f\\260\n",$P{dc_mean_tilt}); |
285 printf(GMT "0.808 $y[2] %.1f\\260\n",$P{'dc_tilt.mu'}); |
250 if ($P{uc_mean_tilt} < 4) { |
286 |
|
287 if ($P{'uc_tilt.mu'} < 4) { |
251 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -N'); |
288 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -N'); |
252 } elsif ($P{uc_mean_tilt} < 8) { |
289 } elsif ($P{'uc_tilt.mu'} < 8) { |
253 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gyellow -N'); |
290 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gyellow -N'); |
254 } else { |
291 } else { |
255 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gred -N'); |
292 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gred -N'); |
256 } |
293 } |
257 printf(GMT "0.91 1.090 %.1f\\260\n",$P{uc_mean_tilt}); |
294 printf(GMT "0.91 $y[2] %.1f\\260\n",$P{'uc_tilt.mu'}); |
258 |
295 |
259 if ($P{dc_rms_accel_pkg} < 0.1) { |
296 if ($P{'dc_accel_pkg.rms'} < 0.1) { |
260 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gblue -N'); |
297 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gblue -N'); |
261 } elsif ($P{dc_rms_accel_pkg} < 0.7) { |
298 } elsif ($P{'dc_accel_pkg.rms'} < 0.7) { |
262 GMT_pstext('-F+f9,Helvetica,coral+jTL -N'); |
299 GMT_pstext('-F+f9,Helvetica,coral+jTL -N'); |
263 } else { |
300 } else { |
264 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gyellow -N'); |
301 GMT_pstext('-F+f9,Helvetica,coral+jTL -Gyellow -N'); |
265 } |
302 } |
266 printf(GMT "0.78 1.125 %.1fm/s\@+2\@+\n",$P{dc_rms_accel_pkg}); |
303 printf(GMT "0.78 %f %.1fm/s\@+2\@+\n",$y[3]-0.01,$P{'dc_accel_pkg.rms'}); |
267 |
304 |
268 if ($P{uc_rms_accel_pkg} < 0.1) { |
305 if ($P{'uc_accel_pkg.rms'} < 0.1) { |
269 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gblue -N'); |
306 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gblue -N'); |
270 } elsif ($P{uc_rms_accel_pkg} < 0.7) { |
307 } elsif ($P{'uc_accel_pkg.rms'} < 0.7) { |
271 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -N'); |
308 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -N'); |
272 } else { |
309 } else { |
273 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gyellow -N'); |
310 GMT_pstext('-F+f9,Helvetica,SeaGreen+jTL -Gyellow -N'); |
274 } |
311 } |
275 printf(GMT "0.89 1.125 %.1fm/s\@+2\@+\n",$P{uc_rms_accel_pkg}); |
312 printf(GMT "0.89 %f %.1fm/s\@+2\@+\n",$y[3]-0.01,$P{'uc_accel_pkg.rms'}); |
276 |
313 |
277 my($depth_tics) = ($plot_wprof_ymax-$plot_prof_ymin < 1000 ) ? 'f10a100' : 'f100a500'; # AXES |
314 my($depth_tics) = ($plot_wprof_ymax-$plot_prof_ymin < 1000 ) ? 'f10a100' : 'f100a500'; # AXES |
278 setR1(); |
315 setR1(); |
279 GMT_psbasemap("-Bf0.01:'':/$depth_tics:'Depth [m]':WeS"); |
316 GMT_psbasemap("-Bf0.01:'':/$depth_tics:'Depth [m]':WeS"); |
280 foreach my $t (split('\s+',$plot_wprof_xtics)) { |
317 foreach my $t (split('\s+',$plot_wprof_xtics)) { |