diff --git a/mkProfile b/mkProfile --- a/mkProfile +++ b/mkProfile @@ -2,9 +2,9 @@ #====================================================================== # M K P R O F I L E # doc: Sun Jan 19 18:55:26 2003 -# dlm: Sun May 23 16:34:02 2010 +# dlm: Fri Dec 10 14:42:49 2010 # (c) 2003 A.M. Thurnherr -# uE-Info: 788 36 NIL 0 0 72 2 2 4 NIL ofnI +# uE-Info: 229 28 NIL 0 0 72 2 2 4 NIL ofnI #====================================================================== # Make an LADCP Profile by Integrating W (similar to Firing's scan*). @@ -68,6 +68,8 @@ # - removed approximations in pitch/roll calcs # Jul 30, 2009: - typo '<' removed from output # - NaN => nan +# Dec 8, 2010: - added zmax/zend labels to output +# Dec 10, 2010: - made mkProfile exit with status 0 if no good ens found but -Q is set # NOTES: # - the battery values are based on transmission voltages (different @@ -224,8 +226,14 @@ ($firstgood,$lastgood,$atbottom,$w_gap_time,$zErr,$maxz) = mk_prof(\%dta,!$opt_s,$opt_F,$minb,$maxb,$opt_c,$opt_e,$opt_m); -die("$ARGV[0]: no good ensembles found\n") - unless defined($firstgood); +unless (defined($firstgood)) { + if ($opt_Q) { + print(STDERR "$ARGV[0]: no good ensembles found\n"); + exit(0); + } else { + die("$ARGV[0]: no good ensembles found\n"); + } +} if (defined($opt_B)) { # scale Z my($zscale) = $opt_B / ($dta{ENSEMBLE}[$atbottom]->{DEPTH} -# downcast @@ -635,50 +643,50 @@ # PRODUCE OUTPUT #====================================================================== -printf(STDERR "# of ensembles : %d\n",scalar(@{$dta{ENSEMBLE}})); -printf(STDERR "Start of cast : %s (#%5d) at %6.1fm\n", +printf(STDERR "# of ensembles : %d\n",scalar(@{$dta{ENSEMBLE}})); +printf(STDERR "Start of cast : %s (#%5d) at %6.1fm\n", $dta{ENSEMBLE}[$firstgood]->{TIME}, $dta{ENSEMBLE}[$firstgood]->{NUMBER}, $dta{ENSEMBLE}[$firstgood]->{DEPTH}); -printf(STDERR "Bottom of cast : %s (#%5d) at %6.1fm\n", +printf(STDERR "Bottom of cast (zmax): %s (#%5d) at %6.1fm\n", $dta{ENSEMBLE}[$atbottom]->{TIME}, $dta{ENSEMBLE}[$atbottom]->{NUMBER}, $dta{ENSEMBLE}[$atbottom]->{DEPTH}); if (defined($water_depth)) { - printf(STDERR "Seabed : at %6.1fm (+-%dm)\n",$water_depth,$sig_wd); + printf(STDERR "Seabed : at %6.1fm (+-%dm)\n",$water_depth,$sig_wd); } else { - print(STDERR "Seabed : not found\n"); + print(STDERR "Seabed : not found\n"); } -printf(STDERR "End of cast : %s (#%5d) at %6.1fm\n", +printf(STDERR "End of cast (zend) : %s (#%5d) at %6.1fm\n", $dta{ENSEMBLE}[$lastgood]->{TIME}, $dta{ENSEMBLE}[$lastgood]->{NUMBER}, $dta{ENSEMBLE}[$lastgood]->{DEPTH}); -printf(STDERR "Rel. Displacement: x = %d(%d)m / y = %d(%d)m\n", +printf(STDERR "Rel. Displacement : x = %d(%d)m / y = %d(%d)m\n", $dta{ENSEMBLE}[$lastgood]->{X}, $x_err, $dta{ENSEMBLE}[$lastgood]->{Y}, $y_err, ) if defined($opt_M); -printf(STDERR "Cast Duration : %.1f hours (pinging for %.1f hours)\n", +printf(STDERR "Cast Duration : %.1f hours (pinging for %.1f hours)\n", $dta{ENSEMBLE}[$lastgood]->{ELAPSED_TIME} / 3600, ($dta{ENSEMBLE}[$#{$dta{ENSEMBLE}}]->{UNIX_TIME} - $dta{ENSEMBLE}[0]->{UNIX_TIME}) / 3600); -printf(STDERR "Minimum range : %dm at ensemble %d, beam %d\n", +printf(STDERR "Minimum range : %dm at ensemble %d, beam %d\n", $dta{DISTANCE_TO_BIN1_CENTER} + $min_good_bins*$dta{BIN_LENGTH}, $dta{ENSEMBLE}[$min_good_ens]->{NUMBER}, $worst_beam); -printf(STDERR "80%%-valid bins : %.1f\n",$gb+1); -printf(STDERR "80%%-valid range : %dm\n", +printf(STDERR "80%%-valid bins : %.1f\n",$gb+1); +printf(STDERR "80%%-valid range : %dm\n", $dta{DISTANCE_TO_BIN1_CENTER} + $gb*$dta{BIN_LENGTH}); -printf(STDERR "3-beam solutions : $RDI_Coords::threeBeam_1 " . - "$RDI_Coords::threeBeam_2 " . - "$RDI_Coords::threeBeam_3 " . - "$RDI_Coords::threeBeam_4\n") +printf(STDERR "3-beam solutions : $RDI_Coords::threeBeam_1 " . + "$RDI_Coords::threeBeam_2 " . + "$RDI_Coords::threeBeam_3 " . + "$RDI_Coords::threeBeam_4\n") unless ($opt_4); -printf(STDERR "net rotations : [%d]/%d/%d/[%d]\n",$prerot,$dnrot,$uprot,$postrot); -printf(STDERR "rms pitch/roll : %.1f/%.1f\n",$dnprrms,$upprrms); +printf(STDERR "net rotations : [%d]/%d/%d/[%d]\n",$prerot,$dnrot,$uprot,$postrot); +printf(STDERR "rms pitch/roll : %.1f/%.1f\n",$dnprrms,$upprrms); if ($opt_A) { # ANTS format print("#ANTS# [] $USAGE\n");