author | A.M. Thurnherr <athurnherr@yahoo.com> |
Wed, 03 Mar 2021 14:50:51 -0500 | |
changeset 54 | 21cf468fa8e0 |
parent 50 | 6bfec705d25e |
child 55 | 540d6574caca |
permissions | -rwxr-xr-x |
0 | 1 |
#!/usr/bin/perl |
2 |
#====================================================================== |
|
3 |
# L I S T E N S |
|
4 |
# doc: Sat Jan 18 18:41:49 2003 |
|
54 | 5 |
# dlm: Sun Feb 28 15:46:21 2021 |
0 | 6 |
# (c) 2003 A.M. Thurnherr |
54 | 7 |
# uE-Info: 351 1 NIL 0 0 72 2 2 4 NIL ofnI |
0 | 8 |
#====================================================================== |
9 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
10 |
$synopsis = 'list ensemble summaries (default), dump ensembles (-E), time-average ensembles (-T)'; |
0 | 11 |
|
12 |
# HISTORY: |
|
13 |
# Jan 18, 2003: - created |
|
14 |
# Mar 18, 2004: - updated |
|
15 |
# Sep 15, 2005: - made ESW optional (BB150) |
|
16 |
# - change RDI binread library name |
|
17 |
# Aug 25, 2006: - added -r)ange |
|
18 |
# - added write -E)nsembles |
|
19 |
# Aug 26, 2006: - added -M)agdecl |
|
20 |
# Sep 19, 2007: - adapted to new [RDI_BB_Read.pl] (not tested) |
|
21 |
# Jan 26, 2008: - BUG: diagnostic output had been written to STDOUT |
|
22 |
# Feb 1, 2008: - BUG: still more diagnostic output written to STDOUT |
|
23 |
# - BUG: -E/-A combo had ignored -E |
|
24 |
# - changed %-good fieldnames for earth coordinates |
|
25 |
# - allowed for 3-beam solutions |
|
26 |
# Feb 7, 2008: - added -f)ields |
|
27 |
# Apr 4, 2008: - made -f output nan on undefined values |
|
28 |
# - BUG: -f fields did not allow array indices |
|
29 |
# - added in-w)ater data only |
|
30 |
# - restructured for simplicity |
|
31 |
# Mar 2, 2009: - added # of valid bin-1 vels to non-ANTS output |
|
32 |
# Jul 30, 2009: - NaN => nan |
|
1 | 33 |
# Aug 15, 2010: - BUG: usage typo |
5 | 34 |
# Dec 10, 2010: - changed ANTS output to time/date instead of UNIX time |
35 |
# Jan 5, 2011: - added -b |
|
6 | 36 |
# May 12, 2011: - disabled error exit on built-in-test errors when ensembles are dumped to stdout |
10 | 37 |
# Mar 20, 2013: - removed DATA_FORMAT stuff |
11 | 38 |
# Apr 12, 2013: - added bin number to -E output |
13
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
39 |
# Aug 7, 2013: - added -d, -4 |
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
40 |
# - added w12, w34 to -E output |
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
41 |
# - added sounspeed correction warning |
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
42 |
# - changed -E from prefix to suffix |
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
43 |
# - added active header line to -E output |
18 | 44 |
# Mar 4, 2014: - added partial support for DATA_SOURCE_ID |
45 |
# - added support for missing PITCH/ROLL/HEADING |
|
21 | 46 |
# Sep 8, 2014: - added -B)T |
33 | 47 |
# Mar 17, 2016: - adapted to new Getopt library |
34 | 48 |
# Apr 19, 2016: - added %date, %time to -E output |
37 | 49 |
# Nov 9, 2016: - BUG: no error on missing files |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
50 |
# Feb 7, 2018: - removed 3-beam error |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
51 |
# Apr 1, 2018: - improved usage message |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
52 |
# - removed -Q option (errcheck only, which is not necessary; can use mkProfile to check for errors) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
53 |
# - added -T (time averaging) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
54 |
# Apr 2, 2018: - made it work |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
55 |
# - BUG: velBeamToInstrument() was using old usage |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
56 |
# Apr 3, 2018: - BUG: typo |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
57 |
# - added -S from [listBins] |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
58 |
# - removed -B and an BT data (current version did not treat beam-coord BT data correctly) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
59 |
# Apr 4, 2018: - added support for first_ens and last_ens in [RDI_PD0_IO.pl] |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
60 |
# - removed support for multiple input files |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
61 |
# Apr 10, 2018: - added -l)ast bin |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
62 |
# May 31, 2018: - BUG: -A was disabled by default |
50 | 63 |
# Feb 13, 2020: - added support for $readDataProgress |
54 | 64 |
# Feb 19, 2021: - BUG: -T did not handle new years correctly |
0 | 65 |
|
66 |
# Notes: |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
67 |
# - -E/-B outputs data in earth coordinates, unless -b is set also |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
68 |
# - -E/-T output is always in ANTS format |
0 | 69 |
|
33 | 70 |
use Getopt::Std; |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
71 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
72 |
$ADCP_tools_minVersion = 2.2; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
73 |
($ADCP_TOOLS) = ($0 =~ m{(.*/)[^/]+}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
74 |
require "$ADCP_TOOLS/ADCP_tools_lib.pl"; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
75 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
76 |
$antsMinLibVersion = 7.0; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
77 |
($ANTS) = (`which ANTSlib` =~ m{^(.*)/[^/]*$}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
78 |
require "$ANTS/ants.pl"; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
79 |
require "$ANTS/libconv.pl"; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
80 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
81 |
($self) = ($0 =~ m{.*/([^/]+)}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
82 |
$cmdline = "$self @ARGV"; |
0 | 83 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
84 |
die("\n$self [-4ABbdEfiMprSTw] <PD0 file> -- $synopsis\n\nCommand-Line Options:\n\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
85 |
"Output Ensemble Summary (default mode):\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
86 |
"[-A)NTS format]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
87 |
"Dump Ensembles (-E|-T; ANTS Format):\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
88 |
"[dump individual -E)nsemples <.suff>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
89 |
"[-T)ime-average ensembles [time-series start (decimal day),]<averaging interval (days)>[,time-series end (decimal day)]]\n\t\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
90 |
"[-i)gnore bins with <fraction> of max samples (-T only)]\n\t\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
91 |
"[output -B)asename <bn>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
92 |
"[-M)agnetic <declination>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
93 |
"[-S)oundspeed correction <salin|*,temp|*,depth|*>\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
94 |
"[require min -p)ercent-good <#>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
95 |
"[keep -b)eam coords (do not transform to earth coordinates)]\n\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
96 |
"Common Options:\n\t\t" . |
50 | 97 |
"[-z print progress dots every 10000 ens\n\t\t" . |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
98 |
"[add -f)ields <[name=]FIELD[,...]>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
99 |
"[require -4)-beam solutions] [-d)iscard <beam#>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
100 |
"[-r)ange <first_ens,last_ens>] [-l)ast <bin>]\n\t\t" . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
101 |
"[in-w)ater ensembles only]\n") |
50 | 102 |
unless (&getopts('4AB:bd:E:f:i:l:M:p:r:S:T:wz') && @ARGV == 1); |
13
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
103 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
104 |
die("$ARGV[0]: no such file\n") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
105 |
unless (-f $ARGV[0]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
106 |
|
50 | 107 |
$global::readDataProgress = 10000 if defined($opt_z); |
108 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
109 |
$dump_ens = defined($opt_E) + defined($opt_T); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
110 |
die("$self: cannot combine -E with -T\n") if ($dump_ens > 1); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
111 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
112 |
if (defined($opt_S)) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
113 |
($SS_salin,$SS_temp,$SS_depth) = split(',',$opt_S); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
114 |
} else { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
115 |
print(STDERR "WARNING: no soundspeed correction applied!\n") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
116 |
if ($dump_ens); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
117 |
} |
0 | 118 |
|
119 |
print(STDERR "WARNING: magnetic declination not set!\n") |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
120 |
if ($dump_ens && !defined($opt_M)); |
0 | 121 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
122 |
die("$self: illegal option combination\n") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
123 |
if ((defined($opt_M) || defined($opt_p) || defined($opt_b)) && !defined($dump_ens)); |
0 | 124 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
125 |
die("$self: -4 and -d are mutually exclusive\n") |
13
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
126 |
if ($opt_4 && defined($opt_d)); |
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
127 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
128 |
#undef($opt_A) if defined($dump_ens); |
0 | 129 |
|
130 |
$opt_p = 0 unless defined($opt_p); |
|
131 |
||
132 |
if ($opt_f) { # additional fields |
|
133 |
@addFields = split(',',$opt_f); |
|
134 |
foreach my $f (@addFields) { |
|
135 |
$f =~ s/\s//g; # remove spaces |
|
136 |
@def = split('=',$f); |
|
137 |
if (@def == 2) { # name=field |
|
138 |
$addLayout .= $opt_A ? " {$def[0]}" : " $def[0]"; |
|
139 |
$f = $def[1]; |
|
140 |
} else { # field |
|
141 |
$addLayout .= " {$f}"; |
|
142 |
} |
|
143 |
} |
|
144 |
# print(STDERR "addLayout = $addLayout\n"); |
|
145 |
# print(STDERR "\@addFields = @addFields\n"); |
|
146 |
} |
|
147 |
||
13
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
148 |
$RDI_Coords::minValidVels = 4 if ($opt_4); # no 3-beam solutions |
b176da8559b3
before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
149 |
|
0 | 150 |
#---------------------------------------------------------------------- |
151 |
# MAIN |
|
152 |
#---------------------------------------------------------------------- |
|
153 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
154 |
printf(STDERR "Reading $ARGV[0]..."); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
155 |
if (defined($opt_r)) { # read selected range |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
156 |
my($fe,$le) = split(',',$opt_r); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
157 |
readData(@ARGV,\%dta,$fe,$le,$opt_l); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
158 |
} else { # read entire file (possibly selected bins) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
159 |
readData(@ARGV,\%dta,undef,undef,$opt_l); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
160 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
161 |
printf(STDERR "\n\t%d complete ensembles\n",scalar(@{$dta{ENSEMBLE}})); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
162 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
163 |
$dta{HEADING_BIAS} = -$opt_M; # magnetic declination |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
164 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
165 |
if ($dta{BEAM_COORDINATES}) { # coords used |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
166 |
$beamCoords = 1; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
167 |
} elsif (!$dta{EARTH_COORDINATES}) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
168 |
die("$ARGV[0]: beam or earth coordinates required (implementation restriction)\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
169 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
170 |
die("$ARGV[0]: -b requires beam-coordinate data\n") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
171 |
if ($opt_b && !$beamCoords); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
172 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
173 |
($basename) = defined($opt_B) # set basename of output files |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
174 |
? $opt_B |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
175 |
: ($ARGV[0] =~ m{([^\./]+)\.[^\.]+}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
176 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
177 |
#---------------------------------------------------------------------- |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
178 |
# define &dumpEns() routine for different output formats: |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
179 |
# -A ANTS format ensemble summary |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
180 |
# -E create one file per ensemble |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
181 |
# -T time-average multiple ensembles |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
182 |
# default: ASCII ensemble summary (human readable) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
183 |
#---------------------------------------------------------------------- |
37 | 184 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
185 |
if ($opt_A) { # select output fmt: ANTS |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
186 |
print("#ANTS#PARAMS# PD0_file{$ARGV[0]}\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
187 |
printf("#ANTS#PARAMS# N_ensembles{%d}\n",scalar(@{$dta{ENSEMBLE}})); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
188 |
print('#ANTS#FIELDS# {ens} {date} {time} {unix-time} {xducer_up} {temp} {hdg} {pitch} {roll} {XMIT_VOLTAGE} {XMIT_CURRENT}'); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
189 |
print(' {ESW}') if ($dta{FIXED_LEADER_BYTES} >= 53); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
190 |
print("$addLayout\n"); |
0 | 191 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
192 |
$dumpEns = sub ($) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
193 |
{ |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
194 |
my($e) = @_; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
195 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
196 |
printf('%d %s %s %lf %d %g', |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
197 |
$dta{ENSEMBLE}[$e]->{NUMBER}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
198 |
$dta{ENSEMBLE}[$e]->{DATE}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
199 |
$dta{ENSEMBLE}[$e]->{TIME}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
200 |
$dta{ENSEMBLE}[$e]->{UNIX_TIME}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
201 |
$dta{ENSEMBLE}[$e]->{XDUCER_FACING_UP} ? 1 : 0, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
202 |
$dta{ENSEMBLE}[$e]->{TEMPERATURE}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
203 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
204 |
if (defined($dta{ENSEMBLE}[$e]->{HEADING})) { printf(' %g',$dta{ENSEMBLE}[$e]->{HEADING}); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
205 |
else { printf(' nan'); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
206 |
if (defined($dta{ENSEMBLE}[$e]->{PITCH})) { printf(' %g',$dta{ENSEMBLE}[$e]->{PITCH}); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
207 |
else { printf(' nan'); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
208 |
if (defined($dta{ENSEMBLE}[$e]->{ROLL})) { printf(' %g',$dta{ENSEMBLE}[$e]->{ROLL}); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
209 |
else { printf(' nan'); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
210 |
printf(' %g %g', |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
211 |
$dta{ENSEMBLE}[$e]->{ADC_XMIT_VOLTAGE}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
212 |
$dta{ENSEMBLE}[$e]->{ADC_XMIT_CURRENT}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
213 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
214 |
printf(' %08X',$dta{ENSEMBLE}[$e]->{ERROR_STATUS_WORD}) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
215 |
if ($dta{FIXED_LEADER_BYTES} >= 53); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
216 |
foreach my $f (@addFields) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
217 |
my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
218 |
$fn = $f unless defined($fn); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
219 |
my($v) = eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
220 |
print(defined($v) ? " $v" : " nan"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
221 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
222 |
print("\n"); |
0 | 223 |
} |
224 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
225 |
} elsif ($opt_E) { # dump each ensemble in separate file |
5 | 226 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
227 |
$dumpEns = sub ($) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
228 |
{ |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
229 |
my($e) = @_; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
230 |
my($b,$i); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
231 |
my($file) = "$dta{ENSEMBLE}[$e]->{NUMBER}$opt_E"; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
232 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
233 |
my($ssCorr) = defined($opt_S) ? ssCorr($dta{ENSEMBLE}[$e],$SS_salin,$SS_temp,$SS_depth) : 1; |
0 | 234 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
235 |
open(P,">$file") || die("$file: $!\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
236 |
print(P "#!/usr/bin/perl -S list\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
237 |
print(P "#ANTS#PARAMS# " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
238 |
"date{$dta{ENSEMBLE}[$e]->{DATE}} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
239 |
"time{$dta{ENSEMBLE}[$e]->{TIME}} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
240 |
"soundspeed_correction{%s} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
241 |
"magnetic_declination{%g} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
242 |
"\n", |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
243 |
(defined($opt_S) ? $opt_S : "NONE!"), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
244 |
$opt_M |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
245 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
246 |
print(P "#ANTS#FIELDS# " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
247 |
"{bin} {dz} {u} {v} {w} {e} {w12} {w34} {corr1} {corr2} {corr3} {corr4} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
248 |
"{amp1} {amp2} {amp3} {amp4} " |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
249 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
250 |
if ($beamCoords) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
251 |
print(P "{pcg1} {pcg2} {pcg3} {pcg4}"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
252 |
} else { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
253 |
print(P "{pc3beam} {pcBadErrVel} {pc1or2beam} {pc4beam}"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
254 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
255 |
print(P "$addLayout\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
256 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
257 |
my($ssCorr) = defined($opt_S) ? ssCorr($dta{ENSEMBLE}[$e],$SS_salin,$SS_temp,$SS_depth) : 1; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
258 |
for (my($b)=0; $b<$dta{N_BINS}; $b++) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
259 |
my(@v,$w12,$w34); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
260 |
my($dz) = $ssCorr * ($dta{DISTANCE_TO_BIN1_CENTER} + $b*$dta{BIN_LENGTH}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
261 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
262 |
if ($beamCoords) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
263 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][0]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
264 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][0] < $opt_p) || ($opt_d == 1)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
265 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][1]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
266 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][1] < $opt_p) || ($opt_d == 2)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
267 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][2]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
268 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][2] < $opt_p) || ($opt_d == 3)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
269 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][3]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
270 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][3] < $opt_p) || ($opt_d == 4)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
271 |
($dummy,$w12,$dummy,$w34) = |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
272 |
velBeamToBPEarth(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
273 |
@v = $opt_b ? @{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]} : |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
274 |
velBeamToEarth(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
275 |
} else { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
276 |
@v = velApplyHdgBias(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
277 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
278 |
$v[0] *= $ssCorr if defined($v[0]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
279 |
$v[1] *= $ssCorr if defined($v[1]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
280 |
$v[2] *= $ssCorr if defined($v[2]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
281 |
$v[3] *= $ssCorr if defined($v[3]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
282 |
$w12 *= $ssCorr if defined($w12); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
283 |
$w34 *= $ssCorr if defined($w34); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
284 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
285 |
$v[0] = nan unless defined($v[0]); # u |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
286 |
$v[1] = nan unless defined($v[1]); # v |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
287 |
$v[2] = nan unless defined($v[2]); # w |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
288 |
$v[3] = nan unless defined($v[3]); # err_vel |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
289 |
$w12 = nan unless defined($w12); # w from beams 1&2 |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
290 |
$w34 = nan unless defined($w34); # w from beams 3&4 |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
291 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
292 |
my(@out) = ( |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
293 |
$b+1,$dz,$v[0],$v[1],$v[2],$v[3],$w12,$w34, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
294 |
@{$dta{ENSEMBLE}[$e]->{CORRELATION}[$b]}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
295 |
@{$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b]}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
296 |
@{$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b]} |
18 | 297 |
); |
0 | 298 |
foreach my $f (@addFields) { |
299 |
my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)}); |
|
300 |
$fn = $f unless defined($fn); |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
301 |
push(@out,eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi")); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
302 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
303 |
for ($i=0; $i<19+@addFields; $i++) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
304 |
$out[$i] = nan unless defined($out[$i]); |
0 | 305 |
} |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
306 |
print(P "@out\n"); |
0 | 307 |
} |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
308 |
chmod(0777&~umask,*P); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
309 |
close(P); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
310 |
} |
0 | 311 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
312 |
} elsif (defined($opt_T)) { # time-average ensembles |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
313 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
314 |
my(@tmp) = split(',',$opt_T); # decode -T |
54 | 315 |
my($Tstart,$deltaT,$Tend,$month,$day); # NB: $yearbase needs to be global! |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
316 |
if (@tmp == 3) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
317 |
($Tstart,$deltaT,$Tend) = @tmp; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
318 |
} elsif (@tmp == 2) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
319 |
($Tstart,$deltaT) = @tmp; |
54 | 320 |
($month,$day,$yearbase) = split('/',$dta{ENSEMBLE}[0]->{DATE}); |
321 |
$Tend = str2dec_time($dta{ENSEMBLE}[0]->{DATE},$dta{ENSEMBLE}[$#{$dta{ENSEMBLE}}]->{TIME},$yearbase); |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
322 |
} else { |
54 | 323 |
($month,$day,$yearbase) = split('/',$dta{ENSEMBLE}[0]->{DATE}); |
324 |
$Tstart = str2dec_time($dta{ENSEMBLE}[0]->{DATE},$dta{ENSEMBLE}[0]->{TIME},$yearbase); |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
325 |
($deltaT) = @tmp; |
54 | 326 |
$Tend = str2dec_time($dta{ENSEMBLE}[$#{$dta{ENSEMBLE}}]->{DATE},$dta{ENSEMBLE}[$#{$dta{ENSEMBLE}}]->{TIME},$yearbase); |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
327 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
328 |
$Tstart = &{&antsCompileConstExpr($')} if ($Tstart =~ m{^=}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
329 |
$deltaT = &{&antsCompileConstExpr($')} if ($deltaT =~ m{^=}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
330 |
$Tend = &{&antsCompileConstExpr($')} if ($Tend =~ m{^=}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
331 |
$deltaT = 9e99 unless ($deltaT > 0); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
332 |
# format string for zero-padded filenames |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
333 |
my($fnfmt) = sprintf('%%0%dd',length(sprintf('%d',($Tend-$Tstart)/$deltaT+1))); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
334 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
335 |
$cbin = 1; # current tim-bin number; used inside dumpEns |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
336 |
$max_nens = 0; # max number of samples |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
337 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
338 |
sub dde($$) # divide allowing for zero; used inside dumpEns |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
339 |
{ |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
340 |
my($sum,$n) = @_; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
341 |
return $n ? $sum/$n : nan; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
342 |
} |
0 | 343 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
344 |
$dumpEns = sub ($) # time average and output when next bin is started |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
345 |
{ |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
346 |
my($e) = @_; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
347 |
my($b,$i); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
348 |
|
54 | 349 |
my($dn) = ($e >= 0) ? str2dec_time($dta{ENSEMBLE}[$e]->{DATE},$dta{ENSEMBLE}[$e]->{TIME},$yearbase) : undef; |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
350 |
|
54 | 351 |
# print(STDERR "ens#$e at $dn (cbin = $cbin)\n"); |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
352 |
if ($e<0 || $dn>=$Tstart+$cbin*$deltaT) { # dump full bin |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
353 |
my($file) = sprintf("$basename.T$fnfmt",$cbin); # file name: <basename>.T0001 |
54 | 354 |
# print(STDERR "dumping average to $file...\n"); |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
355 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
356 |
do { # skip empy bins |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
357 |
$cbin++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
358 |
} while ($dn>=$Tstart+$cbin*$deltaT); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
359 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
360 |
$max_nens = $a1_n[0] if ($a1_n[0] > $max_nens); # update max number of samples in time bin |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
361 |
if ($a1_n[0] >= $opt_i*$max_nens) { # write file only if sufficient samples (-i) |
0 | 362 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
363 |
open(P,">$file") || die("$file: $!\n"); # open file and output metadata |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
364 |
print(P "#!/usr/bin/perl -S list\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
365 |
print(P "#ANTS# $cmdline\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
366 |
printf(P "#ANTS#PARAMS# " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
367 |
"PD0_file{$ARGV[0]} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
368 |
"dn{%s} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
369 |
"N_ensembles{%d} ensemble_range{%d,%d} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
370 |
"delta-T{%g} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
371 |
"soundspeed_correction{%s} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
372 |
"magnetic_declination{%g} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
373 |
"\n", |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
374 |
&dde($dn_s,$dn_n), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
375 |
$a1_n[0],$feib,$leib,$deltaT, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
376 |
(defined($opt_S) ? $opt_S : "NONE!"), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
377 |
$opt_M |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
378 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
379 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
380 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
381 |
print(P "#ANTS#FIELDS# " . # Layout |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
382 |
"{bin} {dz} {u} {v} {w} {e} {w12} {w34} {corr1} {corr2} {corr3} {corr4} " . |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
383 |
"{amp1} {amp2} {amp3} {amp4} " |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
384 |
); |
0 | 385 |
if ($beamCoords) { |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
386 |
print(P "{pcg1} {pcg2} {pcg3} {pcg4} "); |
0 | 387 |
} else { |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
388 |
print(P "{pc3beam} {pcBadErrVel} {pc1or2beam} {pc4beam} "); |
0 | 389 |
} |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
390 |
print(P "{uvw.nsamp} {e.nsamp} "); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
391 |
print(P "$addLayout\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
392 |
# ssCorr for dz based on first ensemble in bin |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
393 |
my($ssCorr) = defined($opt_S) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
394 |
? ssCorr($dta{ENSEMBLE}[$feib-$dta{ENSEMBLE}[0]->{NUMBER}],$SS_salin,$SS_temp,$SS_depth) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
395 |
: 1; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
396 |
for (my($b)=0; $b<$dta{N_BINS}; $b++) { # output data |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
397 |
my($dz) = $ssCorr * ($dta{DISTANCE_TO_BIN1_CENTER} + $b*$dta{BIN_LENGTH}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
398 |
printf(P "%d %g %g %g %g %g %g %g %d %d %d %d %d %d %d %d %d %d %d %d %d %d", |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
399 |
$b+1,$dz, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
400 |
&dde($v1[$b],$v1_n[$b]),&dde($v2[$b],$v2_n[$b]),&dde($v3[$b],$v3_n[$b]),&dde($v4[$b],$v4_n[$b]), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
401 |
&dde($w12[$b],$w12_n[$b]),&dde($w34[$b],$w34_n[$b]), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
402 |
&dde($c1[$b],$c1_n[$b]),&dde($c2[$b],$c2_n[$b]),&dde($c3[$b],$c3_n[$b]),&dde($c4[$b],$c4_n[$b]), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
403 |
&dde($a1[$b],$a1_n[$b]),&dde($a2[$b],$a2_n[$b]),&dde($a3[$b],$a3_n[$b]),&dde($a4[$b],$a4_n[$b]), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
404 |
&dde($p1[$b],$p1_n[$b]),&dde($p2[$b],$p2_n[$b]),&dde($p3[$b],$p3_n[$b]),&dde($p4[$b],$p4_n[$b]), |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
405 |
$v1_n[$b],$v4_n[$b] |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
406 |
); |
21 | 407 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
408 |
for (my($i)=0; $i<@af; $i++) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
409 |
printf(P "%g ",&dde($af[$i][$b],$af_n[$i][$b])); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
410 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
411 |
print(P "\n"); |
21 | 412 |
} |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
413 |
chmod(0777&~umask,*P); # activate output |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
414 |
close(P); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
415 |
} # if -i check okay |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
416 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
417 |
for (my($b)=0; $b<$dta{N_BINS}; $b++) { # reset stats |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
418 |
$v1[$b] = $v1_n[$b] = $v2[$b] = $v2_n[$b] = $v3[$b] = $v3_n[$b] = $v4[$b] = $v4_n[$b] = 0; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
419 |
$w12[$b] = $w12_n[$b] = $w34[$b] = $w34_n[$b] = 0; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
420 |
$c1[$b] = $c1_n[$b] = $c2[$b] = $c2_n[$b] = $c3[$b] = $c3_n[$b] = $c4[$b] = $c4_n[$b] = 0; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
421 |
$a1[$b] = $a1_n[$b] = $a2[$b] = $a2_n[$b] = $a3[$b] = $a3_n[$b] = $a4[$b] = $a4_n[$b] = 0; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
422 |
$p1[$b] = $p1_n[$b] = $p2[$b] = $p2_n[$b] = $p3[$b] = $p3_n[$b] = $p4[$b] = $p4_n[$b] = 0; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
423 |
for (my($i)=0; $i<@af; $i++) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
424 |
$af[$i][$b] = $af_n[$i][$b] = 0; |
0 | 425 |
} |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
426 |
$dn_s = $dn_n = 0; # day number |
0 | 427 |
} |
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
428 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
429 |
undef($feib); # make sure first ensemble in bin will be updated below |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
430 |
} # if time bin is full |
0 | 431 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
432 |
$feib = $dta{ENSEMBLE}[$e]->{NUMBER} unless defined($feib); # update first and last ensembles in current bin |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
433 |
$leib = $dta{ENSEMBLE}[$e]->{NUMBER}; |
0 | 434 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
435 |
$dn_s += $dn; $dn_n++; # day number |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
436 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
437 |
my($ssCorr) = defined($opt_S) ? ssCorr($dta{ENSEMBLE}[$e],$SS_salin,$SS_temp,$SS_depth) : 1; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
438 |
for (my($b)=0; $b<$dta{N_BINS}; $b++) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
439 |
my(@v,$this_w12,$this_w34); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
440 |
if ($beamCoords) { # convert to earth coordinates |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
441 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][0]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
442 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][0] < $opt_p) || ($opt_d == 1)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
443 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][1]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
444 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][1] < $opt_p) || ($opt_d == 2)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
445 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][2]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
446 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][2] < $opt_p) || ($opt_d == 3)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
447 |
undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][3]) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
448 |
if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][3] < $opt_p) || ($opt_d == 4)); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
449 |
($dummy,$this_w12,$dummy,$this_w34) = |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
450 |
velBeamToBPEarth(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
451 |
@v = $opt_b ? @{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]} : |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
452 |
velBeamToEarth(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
453 |
} else { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
454 |
@v = velApplyHdgBias(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
455 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
456 |
$v[0] *= $ssCorr if defined($v[0]); $v[1] *= $ssCorr if defined($v[1]); # apply sound-speed correction |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
457 |
$v[2] *= $ssCorr if defined($v[2]); $v[3] *= $ssCorr if defined($v[3]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
458 |
$w12 *= $ssCorr if defined($w12); $w34 *= $ssCorr if defined($w34); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
459 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
460 |
$v1[$b]+=$v[0],$v1_n[$b]++ if defined($v[0]); # update sums and nsamps |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
461 |
$v2[$b]+=$v[1],$v2_n[$b]++ if defined($v[1]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
462 |
$v3[$b]+=$v[2],$v3_n[$b]++ if defined($v[2]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
463 |
$v4[$b]+=$v[3],$v4_n[$b]++ if defined($v[3]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
464 |
$w12[$b]+=$this_w12,$w12_n[$b]++ if defined($this_w12); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
465 |
$w34[$b]+=$this_w34,$w34_n[$b]++ if defined($this_w34); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
466 |
$c1[$b]+=$dta{ENSEMBLE}[$e]->{CORRELATION}[$b][0],$c1_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
467 |
$c2[$b]+=$dta{ENSEMBLE}[$e]->{CORRELATION}[$b][1],$c2_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
468 |
$c3[$b]+=$dta{ENSEMBLE}[$e]->{CORRELATION}[$b][2],$c3_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
469 |
$c4[$b]+=$dta{ENSEMBLE}[$e]->{CORRELATION}[$b][3],$c4_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
470 |
$a1[$b]+=$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b][0],$a1_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
471 |
$a2[$b]+=$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b][1],$a2_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
472 |
$a3[$b]+=$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b][2],$a3_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
473 |
$a4[$b]+=$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b][3],$a4_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
474 |
$p1[$b]+=$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][0],$p1_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
475 |
$p2[$b]+=$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][1],$p2_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
476 |
$p3[$b]+=$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][2],$p3_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
477 |
$p4[$b]+=$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][3],$p4_n[$b]++; |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
478 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
479 |
my($fi) = 0; |
0 | 480 |
foreach my $f (@addFields) { |
481 |
my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)}); |
|
482 |
$fn = $f unless defined($fn); |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
483 |
my($val) = eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
484 |
$af[$fi][$b]+=$val,$af_n[$fi][$b]++ if defined($val); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
485 |
$fi++; |
0 | 486 |
} |
487 |
} |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
488 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
489 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
490 |
} else { # neither ANTS nor ens files (DEFAULT OUTPUT) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
491 |
if ($dta{FIXED_LEADER_BYTES} >= 53) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
492 |
printf("Ens # Date Time XD Temp Headng Pitch Roll #vv DSID ESW$addLayout\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
493 |
printf("----------------------------------------------------------------------------\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
494 |
} else { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
495 |
printf("Ens # Date Time XD Temp Headng Pitch Roll #vv DSID$addLayout\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
496 |
printf("------------------------------------------------------------------------\n"); |
0 | 497 |
} |
498 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
499 |
$dumpEns = sub ($) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
500 |
{ |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
501 |
my($e) = @_; |
0 | 502 |
|
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
503 |
printf('%5d %s %s %s %5.1f', |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
504 |
$dta{ENSEMBLE}[$e]->{NUMBER}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
505 |
$dta{ENSEMBLE}[$e]->{DATE}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
506 |
$dta{ENSEMBLE}[$e]->{TIME}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
507 |
$dta{ENSEMBLE}[$e]->{XDUCER_FACING_UP} ? "UP" : "DN", |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
508 |
$dta{ENSEMBLE}[$e]->{TEMPERATURE}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
509 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
510 |
if (defined($dta{ENSEMBLE}[$e]->{HEADING})) { printf(' %6.1f',$dta{ENSEMBLE}[$e]->{HEADING}); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
511 |
else { printf(' nan'); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
512 |
if (defined($dta{ENSEMBLE}[$e]->{PITCH})) { printf(' %5.1f',$dta{ENSEMBLE}[$e]->{PITCH}); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
513 |
else { printf(' nan'); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
514 |
if (defined($dta{ENSEMBLE}[$e]->{ROLL})) { printf(' %5.1f',$dta{ENSEMBLE}[$e]->{ROLL}); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
515 |
else { printf(' nan'); } |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
516 |
printf(' %3d 0x%02X', |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
517 |
$dta{ENSEMBLE}[$e]->{BIN1VELS}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
518 |
$dta{ENSEMBLE}[$e]->{DATA_SOURCE_ID}, |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
519 |
); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
520 |
printf(' 0x%08X',$dta{ENSEMBLE}[$e]->{ERROR_STATUS_WORD}) |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
521 |
if ($dta{FIXED_LEADER_BYTES} >= 53); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
522 |
foreach my $f (@addFields) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
523 |
my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
524 |
$fn = $f unless defined($fn); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
525 |
my($v) = eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
526 |
print(defined($v) ? " $v" : " nan"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
527 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
528 |
print(" BUILT-IN-TEST ERROR") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
529 |
if defined($dta{ENSEMBLE}[$e]->{BUILT_IN_TEST_ERROR}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
530 |
print("\n"); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
531 |
} |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
532 |
} # define output format |
0 | 533 |
|
54 | 534 |
die("$yearbase") unless ($yearbase > 1900); |
535 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
536 |
#---------------------------------------------------------------------- |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
537 |
# Loop Over Ensembles |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
538 |
#---------------------------------------------------------------------- |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
539 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
540 |
for ($e=0; $e<=$#{$dta{ENSEMBLE}}; $e++) { |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
541 |
$dta{ENSEMBLE}[$e]->{BIN1VELS} = |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
542 |
defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][0]) + |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
543 |
defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][1]) + |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
544 |
defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][2]) + |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
545 |
defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][3]); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
546 |
next if ($opt_w && $dta{ENSEMBLE}[$e]->{BIN1VELS}<3); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
547 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
548 |
die("BIT error in ensemble $dta{ENSEMBLE}[$e]->{NUMBER}\n") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
549 |
if ($opt_A || $dump_ens) && defined($dta{ENSEMBLE}[$e]->{BUILT_IN_TEST_ERROR}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
550 |
die("Low gain in ensemble #$dta{ENSEMBLE}[$e]->{NUMBER}\n") |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
551 |
if ($dta{ENSEMBLE}[$e]->{LOW_GAIN}); |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
552 |
|
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
553 |
&$dumpEns($e); |
0 | 554 |
} |
555 |
||
43
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
556 |
&$dumpEns(-1) if defined($opt_T); # dump final bin |
b63fa355644c
commit to merge with changes from EN620
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
37
diff
changeset
|
557 |
|
0 | 558 |
exit(0); |