# HG changeset patch # User A.M. Thurnherr # Date 1385042433 18000 # Node ID 85c8e2ea2a5bc5aa90f252d9d7bbd61b207ec22b # Parent f6635c0384b743091d1ea5f20d61efa8fe41da19 after DIMES US5 diff --git a/LADCPproc.UHcode b/LADCPproc.UHcode --- a/LADCPproc.UHcode +++ b/LADCPproc.UHcode @@ -1,9 +1,9 @@ #====================================================================== # L A D C P P R O C . U H C O D E # doc: Fri Sep 17 20:27:53 2010 -# dlm: Wed Sep 25 12:29:46 2013 +# dlm: Tue Nov 12 03:44:44 2013 # (c) 2010 A.M. Thurnherr & E. Firing -# uE-Info: 39 47 NIL 0 0 72 2 2 4 NIL ofnI +# uE-Info: 43 32 NIL 0 0 72 2 2 4 NIL ofnI #====================================================================== # PERLified functions from Eric's [merge.c]; with mods @@ -37,6 +37,10 @@ # Feb 19, 2012: - added elapsed time to binned shear output # Apr 11, 2012: - added MISSING_CTD_DATA_BIT # Sep 25, 2013: - added code to calc gridded lat/lon info +# Nov 12, 2013: - BUG: correlation editing removed most (all?) 3-beam +# solutions +# - BUG: set_shear_flag() calculated shdev (slightly?) +# wrongly #====================================================================== # VELOCITY EDITING @@ -180,14 +184,24 @@ $edit_flags[$ens][$bin] |= $ERRVEL_BIT; } + my($nBadCorr) = 0; for (my($beam)=0; $beam<=3; $beam++) { - if ($LADCP{ENSEMBLE}[$ens]->{CORRELATION}[$bin][$beam] < $min_cor) { + $nBadCorr++ + if ($LADCP{ENSEMBLE}[$ens]->{CORRELATION}[$bin][$beam] < $min_cor); + } + if (abs($LADCP{ENSEMBLE}[$ens]->{VELOCITY}[$bin][$E]) > 0) { # 4-beam solution + if ($nBadCorr > 0) { + $flag_count{$CORREL_BIT}++; + $edit_flags[$ens][$bin] |= $CORREL_BIT; + } + } else { # 3-beam solution + if ($nBadCorr > 1) { $flag_count{$CORREL_BIT}++; $edit_flags[$ens][$bin] |= $CORREL_BIT; } } - if ($bin < $shbin_start-1 || $bin >= $shbin_end) { + if ($bin < $shbin_start-1 || $bin >= $shbin_end) { # manually remove vels outside shear bin range $edit_flags[$ens][$bin] |= $BADVEL_BIT; $flag_count{$BADVEL_BIT}++; } @@ -345,8 +359,8 @@ $vsh_dev[$i] = $vsh[$i] - $vsh_mu[$bsgi]; push(@ibad,$i) if ($ush_sig[$i] > 0 && - (abs($ush_dev[$i]/$ush_sig[$bsgi]) > $max_shdev || - abs($vsh_dev[$i]/$vsh_sig[$bsgi]) > $max_shdev)); + (abs($ush_dev[$i]/$ush_sig[$i]) > $max_shdev || + abs($vsh_dev[$i]/$vsh_sig[$i]) > $max_shdev)); } ## end of loop through shears ## Look for internal glitches: a positive shear followed diff --git a/LADCPproc.loadCTD b/LADCPproc.loadCTD --- a/LADCPproc.loadCTD +++ b/LADCPproc.loadCTD @@ -1,9 +1,9 @@ #====================================================================== # L A D C P P R O C . L O A D C T D # doc: Thu Dec 9 18:39:01 2010 -# dlm: Wed Sep 25 12:59:57 2013 +# dlm: Mon Nov 11 12:27:37 2013 # (c) 2010 A.M. Thurnherr -# uE-Info: 210 0 NIL 0 0 72 2 2 4 NIL ofnI +# uE-Info: 27 57 NIL 0 0 72 2 2 4 NIL ofnI #====================================================================== # HISTORY: @@ -24,6 +24,7 @@ # Jun 25, 2013: - adapted to :: %PARAM convention # Sep 25, 2013: - renamed "std" %PARAMs %lat, %lon, %ITS to conform to new convention # - added support for carry-through of lat/lon info +# Nov 11, 2013: - BUG: lat/lon did not work any more?!? sub readCTD_ASCII($$) { @@ -104,7 +105,7 @@ } $latF = $1,next if ($hdr =~ /name (\d+) = latitude:/); $lonF = $1,next if ($hdr =~ /name (\d+) = longitude:/); - + &antsAddParams('LADCPproc::CTD_start_time',$1),next # selected metadata if ($hdr =~ /start_time = (.*)/); @@ -164,8 +165,8 @@ push(@{$dtaR->{press}},($rec[$pressF] == $CTD_badval) ? nan : $rec[$pressF]); push(@{$dtaR->{temp}}, ($rec[$tempF] == $CTD_badval) ? nan : $rec[$tempF]); push(@{$dtaR->{salin}},($rec[$salinF] == $CTD_badval) ? nan : $rec[$salinF]); - push(@{$dtaR->{press}},(!defined($latF) || ($rec[$latF] == $CTD_badval)) ? nan : $rec[$latF]); - push(@{$dtaR->{press}},(!defined($lonF) || ($rec[$lonF] == $CTD_badval)) ? nan : $rec[$lonF]); + push(@{$dtaR->{lat}},(!defined($latF) || ($rec[$latF] == $CTD_badval)) ? nan : $rec[$latF]); + push(@{$dtaR->{lon}},(!defined($lonF) || ($rec[$lonF] == $CTD_badval)) ? nan : $rec[$lonF]); } } elsif ($CTD_file_type eq 'binary') { diff --git a/libdiscard_beam1.pl b/libdiscard_beam1.pl new file mode 100644 --- /dev/null +++ b/libdiscard_beam1.pl @@ -0,0 +1,23 @@ +#====================================================================== +# L I B D I S C A R D _ B E A M 1 . P L +# doc: Thu Mar 28 21:57:14 2013 +# dlm: Mon Nov 11 17:19:09 2013 +# (c) 2013 A.M. Thurnherr +# uE-Info: 15 60 NIL 0 0 72 2 2 4 NIL ofnI +#====================================================================== + +sub edit_LADCP_vels() +{ + print(STDERR "\t\tDISCARDING beam-1 velocities...\n"); + + for (my($ens)=$LADCP_start; $ens<=$LADCP_end; $ens++) { + for (my($bin)=0; $bin<$LADCP{N_BINS}; $bin++) { + undef($LADCP{ENSEMBLE}[$ens]->{BEAM_VEL}[$bin][0]); + @{$LADCP{ENSEMBLE}[$ens]->{VELOCITY}[$bin]} = + velInstrumentToEarth(\%LADCP,$ens,velBeamToInstrument(\%LADCP,@{$LADCP{ENSEMBLE}[$ens]->{BEAM_VEL}[$bin]})); + } + } +} + +1; +