meanProf
changeset 44 b7654ea68af6
parent 33 307630665c6c
child 45 5767cbe470a0
equal deleted inserted replaced
42:80d039881d2c 44:b7654ea68af6
     1 #!/usr/bin/perl
     1 #!/usr/bin/perl
     2 #======================================================================
     2 #======================================================================
     3 #                    M E A N P R O F 
     3 #                    M E A N P R O F 
     4 #                    doc: Fri Feb 22 08:40:18 2008
     4 #                    doc: Fri Feb 22 08:40:18 2008
     5 #                    dlm: Wed Mar 16 07:02:38 2016
     5 #                    dlm: Fri Aug 24 13:45:21 2018
     6 #                    (c) 2008 A.M. Thurnherr
     6 #                    (c) 2008 A.M. Thurnherr
     7 #                    uE-Info: 14 49 NIL 0 0 72 0 2 4 NIL ofnI
     7 #                    uE-Info: 15 71 NIL 0 0 72 0 2 4 NIL ofnI
     8 #======================================================================
     8 #======================================================================
     9 
     9 
    10 # extract time-averaged mean profile from ADCP data
    10 # extract time-averaged mean profile from ADCP data
    11 
    11 
    12 # HISTORY:
    12 # HISTORY:
    13 #	Feb 22, 2008: - created from [listBins]
    13 #	Feb 22, 2008: - created from [listBins]
    14 #	Mar 16, 2016: - adapted to new Getopt library
    14 #	Mar 16, 2016: - adapted to new Getopt library
       
    15 #	Aug 24, 2018: - BUG: code bombed when there are no 4-beam solutions
    15 
    16 
    16 # Soundspeed Correction:
    17 # Soundspeed Correction:
    17 #	- applied as described in the RDI coord-trans manual
    18 #	- applied as described in the RDI coord-trans manual
    18 #	- sound-speed variation over range is ignored (valid for small gradients)
    19 #	- sound-speed variation over range is ignored (valid for small gradients)
    19 #	=> - same simple correction for all velocity components
    20 #	=> - same simple correction for all velocity components
   192 	$mean_amp3[$b] = $sum_amp3[$b] / $nEns; $mean_amp4[$b] = $sum_amp4[$b] / $nEns;
   193 	$mean_amp3[$b] = $sum_amp3[$b] / $nEns; $mean_amp4[$b] = $sum_amp4[$b] / $nEns;
   193 	$mean_pcg1[$b] = $sum_pcg1[$b] / $n_pcg1[$b]; $mean_pcg2[$b] = $sum_pcg2[$b] / $n_pcg2[$b];
   194 	$mean_pcg1[$b] = $sum_pcg1[$b] / $n_pcg1[$b]; $mean_pcg2[$b] = $sum_pcg2[$b] / $n_pcg2[$b];
   194 	$mean_pcg3[$b] = $sum_pcg3[$b] / $n_pcg3[$b]; $mean_pcg4[$b] = $sum_pcg4[$b] / $n_pcg4[$b];
   195 	$mean_pcg3[$b] = $sum_pcg3[$b] / $n_pcg3[$b]; $mean_pcg4[$b] = $sum_pcg4[$b] / $n_pcg4[$b];
   195 	$mean_u[$b] = $sum_u[$b] / $good_vels[$b]; $mean_v[$b] = $sum_v[$b] / $good_vels[$b];
   196 	$mean_u[$b] = $sum_u[$b] / $good_vels[$b]; $mean_v[$b] = $sum_v[$b] / $good_vels[$b];
   196 	$mean_w[$b] = $sum_w[$b] / $good_vels[$b];
   197 	$mean_w[$b] = $sum_w[$b] / $good_vels[$b];
   197 	$mean_e[$b] = $sum_e[$b] / ($good_vels[$b] - $three_beam[$b]);
   198 	$mean_e[$b] = $sum_e[$b] / ($good_vels[$b] - $three_beam[$b])
       
   199 		if ($good_vels[$b] - $three_beam[$b] > 0);
   198 }
   200 }
   199 
   201 
   200 for ($e=$fe; $e<=$le; $e++) {
   202 for ($e=$fe; $e<=$le; $e++) {
   201 	for ($b=0; $b<=$lastGoodBin; $b++) {
   203 	for ($b=0; $b<=$lastGoodBin; $b++) {
   202 		$sumsq_corr1[$b] += ($mean_corr1[$b] - $dta{ENSEMBLE}[$e]->{CORRELATION}[$b][0])**2;
   204 		$sumsq_corr1[$b] += ($mean_corr1[$b] - $dta{ENSEMBLE}[$e]->{CORRELATION}[$b][0])**2;