mkProfile
changeset 43 b63fa355644c
parent 39 3bddaa514ef5
child 47 494a76548e94
equal deleted inserted replaced
42:80d039881d2c 43:b63fa355644c
     1 #!/usr/bin/perl
     1 #!/usr/bin/perl
     2 #======================================================================
     2 #======================================================================
     3 #                    M K P R O F I L E 
     3 #                    M K P R O F I L E 
     4 #                    doc: Sun Jan 19 18:55:26 2003
     4 #                    doc: Sun Jan 19 18:55:26 2003
     5 #                    dlm: Fri Oct 13 13:39:55 2017
     5 #                    dlm: Tue May  1 10:12:56 2018
     6 #                    (c) 2003 A.M. Thurnherr
     6 #                    (c) 2003 A.M. Thurnherr
     7 #                    uE-Info: 230 37 NIL 0 0 72 0 2 4 NIL ofnI
     7 #                    uE-Info: 395 0 NIL 0 0 72 0 2 4 NIL ofnI
     8 #======================================================================
     8 #======================================================================
     9 
     9 
    10 # Make an LADCP Profile by Integrating W (similar to Firing's scan*).
    10 # Make an LADCP Profile by Integrating W (similar to Firing's scan*).
    11 
    11 
    12 # HISTORY:
    12 # HISTORY:
    91 #	Mar 22, 2015: - made it work for moored time series as well
    91 #	Mar 22, 2015: - made it work for moored time series as well
    92 #	Mar 17, 2015: - adapted to new Getopt library
    92 #	Mar 17, 2015: - adapted to new Getopt library
    93 #				  - removed warning
    93 #				  - removed warning
    94 #	Sep 12, 2016: - added %PD0_file
    94 #	Sep 12, 2016: - added %PD0_file
    95 #	Oct 13, 2017: - added instrument orientation
    95 #	Oct 13, 2017: - added instrument orientation
       
    96 #	Apr  2, 2018: - BUG: velBeamToInstrument() used old usage
       
    97 #	Apr 24, 2018: - BUG: bin1 was used even with zero blanking
    96 
    98 
    97 # NOTES:
    99 # NOTES:
    98 #	- the battery values are based on transmission voltages (different
   100 #	- the battery values are based on transmission voltages (different
    99 #	  from battery voltages) and reported without units (raw 8-bit a2d
   101 #	  from battery voltages) and reported without units (raw 8-bit a2d
   100 #	  values)
   102 #	  values)
   254 
   256 
   255 #======================================================================
   257 #======================================================================
   256 # Step 1: Integrate w & determine water depth 
   258 # Step 1: Integrate w & determine water depth 
   257 #======================================================================
   259 #======================================================================
   258 
   260 
       
   261 $minb = 2 if ($dta{BLANKING_DISTANCE} == 0);
   259 ($firstgood,$lastgood,$atbottom,$w_gap_time,$zErr,$maxz,$rms_heave_accel) =
   262 ($firstgood,$lastgood,$atbottom,$w_gap_time,$zErr,$maxz,$rms_heave_accel) =
   260 	mk_prof(\%dta,0,$opt_F,$minb,$maxb,$opt_c,$opt_e,$opt_g,$opt_p);
   263 	mk_prof(\%dta,0,$opt_F,$minb,$maxb,$opt_c,$opt_e,$opt_g,$opt_p);
   261 
   264 
   262 if ($lastgood == $atbottom) {
   265 if ($lastgood == $atbottom) {
   263 	print(STDERR "$ARGV[0]: truncated file (ends at max depth)\n")
   266 	print(STDERR "$ARGV[0]: truncated file (ends at max depth)\n")
   322 			next if ($dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][0] < 100 ||
   325 			next if ($dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][0] < 100 ||
   323 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][1] < 100 ||
   326 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][1] < 100 ||
   324 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][2] < 100 ||
   327 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][2] < 100 ||
   325 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][3] < 100);
   328 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][3] < 100);
   326 			@v = velInstrumentToEarth(\%dta,$ens,
   329 			@v = velInstrumentToEarth(\%dta,$ens,
   327 					velBeamToInstrument(\%dta,
   330 					velBeamToInstrument(\%dta,$ens,
   328 						@{$dta{ENSEMBLE}[$ens]->{VELOCITY}[$i]}));
   331 						@{$dta{ENSEMBLE}[$ens]->{VELOCITY}[$i]}));
   329 		} else {
   332 		} else {
   330 			next if ($dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][0] > 0 ||
   333 			next if ($dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][0] > 0 ||
   331 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][1] > 0 ||
   334 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][1] > 0 ||
   332 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][2] > 0 ||
   335 					 $dta{ENSEMBLE}[$ens]->{PERCENT_GOOD}[$i][2] > 0 ||