listEns
author A.M. Thurnherr <athurnherr@yahoo.com>
Mon, 23 Feb 2015 10:43:47 +0000
changeset 21 0b5bbe60131c
parent 18 bb7bb9f83db9
child 33 307630665c6c
permissions -rwxr-xr-x
version sent to P16N
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     1
#!/usr/bin/perl
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     2
#======================================================================
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     3
#                    L I S T E N S 
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     4
#                    doc: Sat Jan 18 18:41:49 2003
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
     5
#                    dlm: Mon Sep  8 19:22:44 2014
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     6
#                    (c) 2003 A.M. Thurnherr
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
     7
#                    uE-Info: 244 0 NIL 0 0 72 2 2 4 NIL ofnI
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     8
#======================================================================
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
     9
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    10
# Print useful info from the ensemble list or dump ensembles to
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    11
# separate files.
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    12
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    13
# HISTORY:
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    14
#	Jan 18, 2003: - created
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    15
#	Mar 18, 2004: - updated
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    16
#	Sep 15, 2005: - made ESW optional (BB150)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    17
#				  - change RDI binread library name
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    18
#	Aug 25, 2006: - added -r)ange
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    19
#				  - added write -E)nsembles
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    20
#	Aug 26, 2006: - added -M)agdecl
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    21
#	Sep 19, 2007: - adapted to new [RDI_BB_Read.pl] (not tested)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    22
#	Jan 26, 2008: - BUG: diagnostic output had been written to STDOUT
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    23
#	Feb  1, 2008: - BUG: still more diagnostic output written to STDOUT
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    24
#				  - BUG: -E/-A combo had ignored -E
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    25
#				  - changed %-good fieldnames for earth coordinates
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    26
#				  - allowed for 3-beam solutions
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    27
#	Feb  7, 2008: - added -f)ields
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    28
#	Apr  4, 2008: - made -f output nan on undefined values
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    29
#				  - BUG: -f fields did not allow array indices
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    30
#				  - added in-w)ater data only
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    31
#				  - restructured for simplicity
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    32
#	Mar  2, 2009: - added # of valid bin-1 vels to non-ANTS output
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    33
#	Jul 30, 2009: - NaN => nan
1
a3b6a908dec5 after P302 cruise
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 0
diff changeset
    34
#	Aug 15, 2010: - BUG: usage typo
5
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
    35
#	Dec 10, 2010: - changed ANTS output to time/date instead of UNIX time
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
    36
#	Jan  5, 2011: - added -b
6
603221e51c6f pre IWISE
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
    37
#	May 12, 2011: - disabled error exit on built-in-test errors when ensembles are dumped to stdout
10
c835cd613f3e before EGU Vienna
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 6
diff changeset
    38
#	Mar 20, 2013: - removed DATA_FORMAT stuff
11
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 10
diff changeset
    39
#	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
    40
#	Aug  7, 2013: - added -d, -4
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    41
#				  - added w12, w34 to -E output
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    42
#				  - added sounspeed correction warning
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    43
#				  - changed -E from prefix to suffix
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    44
#				  - added active header line to -E output
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
    45
#	Mar  4, 2014: - added partial support for DATA_SOURCE_ID
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
    46
#				  - added support for missing PITCH/ROLL/HEADING
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
    47
#	Sep  8, 2014: - added -B)T  
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    48
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    49
# Notes:
5
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
    50
#	- -E outputs data in earth coordinates, unless -b is set also
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    51
#	- -E output is always in ANTS format, ignoring -A
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    52
#	- no soundspeed correction
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    53
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    54
require "getopts.pl";
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    55
$0 =~ m{(.*/)[^/]+};
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    56
require "$1RDI_BB_Read.pl";
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    57
require "$1RDI_Coords.pl";
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    58
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    59
die("Usage: $0 [-A)nts] [-Q)uiet (errcheck only)] " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    60
			  "[-f)ields <[name=]FIELD[,...]>] " .
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    61
			  "[require -4)-beam solutions] [-d)iscard <beam#>] " .
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
    62
			  "[write -E)nsemples <.suff> [use -B)T] [-M)agnetic <declination>] [min -p)ercent-good <#>] [keep -b)eam coords]] " .
1
a3b6a908dec5 after P302 cruise
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 0
diff changeset
    63
			  "[-r)ange <first_ens,last_ens>] [in-w)ater ensembles only] " .
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    64
			  "<RDI file...>\n")
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
    65
	unless (&Getopts("4ABbd:E:f:M:p:Qr:w") && $#ARGV >= 0);
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    66
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    67
print(STDERR "WARNING: no soundspeed correction applied!\n");
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    68
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    69
print(STDERR "WARNING: magnetic declination not set!\n")
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    70
	if defined($opt_E) && !defined($opt_M);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    71
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    72
die("$0: illegal option combination\n")
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
    73
	if ($opt_Q && $opt_A) || ((defined($opt_M) || defined($opt_p) || defined($opt_b) || $opt_B) && !defined($opt_E));
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    74
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    75
die("$0: -4 and -d are mutually exclusive\n")
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    76
	if ($opt_4 && defined($opt_d));
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
    77
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    78
($first_ens,$last_ens) = split(',',$opt_r)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    79
	if defined($opt_r);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    80
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    81
undef($opt_A) if defined($opt_E);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    82
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    83
$opt_p = 0 unless defined($opt_p);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    84
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    85
if ($opt_f) {										# additional fields
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    86
	@addFields = split(',',$opt_f);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    87
	foreach my $f (@addFields) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    88
		$f =~ s/\s//g;								# remove spaces
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    89
		@def = split('=',$f);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    90
		if (@def == 2) {							# name=field
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    91
			$addLayout .= $opt_A ? " {$def[0]}" : " $def[0]";
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    92
			$f = $def[1];
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    93
		} else {									# field
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    94
			$addLayout .= " {$f}";
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    95
		}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    96
	}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    97
#	print(STDERR "addLayout = $addLayout\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    98
#	print(STDERR "\@addFields = @addFields\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
    99
}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   100
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   101
$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
   102
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   103
#----------------------------------------------------------------------
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   104
# MAIN
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   105
#----------------------------------------------------------------------
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   106
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   107
while (-f $ARGV[0]) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   108
	if ($opt_A && !$opt_E) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   109
		print("#ANTS#PARAMS# RDI_file{$ARGV[0]}\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   110
	} elsif (!$opt_Q) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   111
		print(STDERR "$ARGV[0]: ");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   112
	}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   113
	readData(@ARGV,\%dta);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   114
	printf(STDERR "%d complete ensembles...\n",scalar(@{$dta{ENSEMBLE}}))
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   115
		unless ($opt_Q);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   116
	$dta{HEADING_BIAS} = -$opt_M;						# magnetic declination
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   117
	shift;
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   118
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   119
	if ($dta{BEAM_COORDINATES}) {						# coords used
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   120
		$beamCoords = 1;
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   121
	} elsif (!$dta{EARTH_COORDINATES}) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   122
		die("$ARGV[0]: only beam and earth coordinates implemented so far\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   123
	}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   124
5
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   125
	die("$ARGV[0]: -b only makes sense for beam-coordinate data\n")
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   126
		if ($opt_b && !$beamCoords);
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   127
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   128
	if ($opt_A) {										# select output fmt: ANTS
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   129
		unless ($opt_Q) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   130
			printf("#ANTS#PARAMS# N_ensembles{%d}\n",scalar(@{$dta{ENSEMBLE}}));
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   131
			print('#ANTS#FIELDS# {ens} {time} {xducer_up} {temp} {hdg} {pitch} {roll} {XMIT_VOLTAGE} {XMIT_CURRENT}');
10
c835cd613f3e before EGU Vienna
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 6
diff changeset
   132
			print(' {ESW}') if ($dta{FIXED_LEADER_BYTES} >= 53);
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   133
	        print("$addLayout\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   134
	    }
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   135
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   136
		$dumpEns = sub ($)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   137
		{
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   138
			my($e) = @_;
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   139
			
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   140
			printf('%d %lf %d %g',
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   141
				$dta{ENSEMBLE}[$e]->{NUMBER},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   142
				$dta{ENSEMBLE}[$e]->{UNIX_TIME},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   143
				$dta{ENSEMBLE}[$e]->{XDUCER_FACING_UP} ? 1 : 0,
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   144
				$dta{ENSEMBLE}[$e]->{TEMPERATURE},
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   145
			);
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   146
			if (defined($dta{ENSEMBLE}[$e]->{HEADING})) { printf(' %g',$dta{ENSEMBLE}[$e]->{HEADING}); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   147
			else { printf(' nan'); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   148
			if (defined($dta{ENSEMBLE}[$e]->{PITCH})) { printf(' %g',$dta{ENSEMBLE}[$e]->{PITCH}); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   149
			else { printf(' nan'); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   150
			if (defined($dta{ENSEMBLE}[$e]->{ROLL})) { printf(' %g',$dta{ENSEMBLE}[$e]->{ROLL}); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   151
			else { printf(' nan'); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   152
			printf(' %g %g',
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   153
				$dta{ENSEMBLE}[$e]->{ADC_XMIT_VOLTAGE},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   154
				$dta{ENSEMBLE}[$e]->{ADC_XMIT_CURRENT},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   155
			);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   156
			printf(' %08X',$dta{ENSEMBLE}[$e]->{ERROR_STATUS_WORD})
10
c835cd613f3e before EGU Vienna
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 6
diff changeset
   157
				if ($dta{FIXED_LEADER_BYTES} >= 53);
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   158
			foreach my $f (@addFields) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   159
				my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)});
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   160
				$fn = $f unless defined($fn);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   161
				my($v) = eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   162
				print(defined($v) ? " $v" : " nan");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   163
			}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   164
			print("\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   165
		}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   166
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   167
	} elsif ($opt_E) {										# one file per ens
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   168
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   169
		$dumpEns = sub ($)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   170
		{
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   171
			my($e) = @_;
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   172
			my($b,$i);
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   173
			my($file) = "$dta{ENSEMBLE}[$e]->{NUMBER}$opt_E";
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   174
		
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   175
			open(P,">$file") || die("$file: $!\n");
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   176
			print(P "#!/usr/bin/perl -S list\n");
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   177
			print(P "#ANTS#PARAMS# " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   178
					"BT_u{$dta{ENSEMBLE}[$e]->{BT_VELOCITY}[0]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   179
					"BT_v{$dta{ENSEMBLE}[$e]->{BT_VELOCITY}[1]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   180
					"BT_w{$dta{ENSEMBLE}[$e]->{BT_VELOCITY}[2]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   181
					"BT_e{$dta{ENSEMBLE}[$e]->{BT_VELOCITY}[3]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   182
					"BT_cor1{$dta{ENSEMBLE}[$e]->{BT_CORRELATION}[0]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   183
					"BT_cor2{$dta{ENSEMBLE}[$e]->{BT_CORRELATION}[1]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   184
					"BT_cor3{$dta{ENSEMBLE}[$e]->{BT_CORRELATION}[2]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   185
					"BT_cor4{$dta{ENSEMBLE}[$e]->{BT_CORRELATION}[3]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   186
					"BT_amp1{$dta{ENSEMBLE}[$e]->{BT_AMPLITUDE}[0]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   187
					"BT_amp2{$dta{ENSEMBLE}[$e]->{BT_AMPLITUDE}[1]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   188
					"BT_amp3{$dta{ENSEMBLE}[$e]->{BT_AMPLITUDE}[2]} " .
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   189
					"BT_amp4{$dta{ENSEMBLE}[$e]->{BT_AMPLITUDE}[3]} " .
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   190
					"soundspeed_correction{NONE!} " .
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   191
					"\n"
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   192
			);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   193
			print(P "#ANTS#FIELDS# " .
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   194
					"{bin} {dz} {u} {v} {w} {e} {w12} {w34} {cor1} {cor2} {cor3} {cor4} " .
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   195
					"{amp1} {amp2} {amp3} {amp4} "
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   196
			);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   197
			if ($beamCoords) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   198
				print(P "{pcg1} {pcg2} {pcg3} {pcg4}");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   199
			} else {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   200
				print(P "{pc3beam} {pcBadErrVel} {pc1or2beam} {pc4beam}");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   201
			}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   202
			print(P "$addLayout\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   203
			    
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   204
			for (my($b)=0; $b<$dta{N_BINS}; $b++) {
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   205
				my(@v,$w12,$w34);
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   206
				my($dz) = $dta{DISTANCE_TO_BIN1_CENTER} + $b*$dta{BIN_LENGTH};
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   207
		
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   208
				if ($beamCoords) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   209
					undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][0])
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   210
						if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][0] < $opt_p) || ($opt_d == 1));
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   211
					undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][1])
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   212
						if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][1] < $opt_p) || ($opt_d == 2));
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   213
					undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][2])
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   214
						if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][2] < $opt_p) || ($opt_d == 3));
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   215
					undef($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][3])
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   216
						if (($dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b][3] < $opt_p) || ($opt_d == 4));
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   217
					($dummy,$w12,$dummy,$w34) =
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   218
						velBeamToBPEarth(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]});
5
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   219
					@v = $opt_b ? @{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]} :
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   220
							velInstrumentToEarth(\%dta,$e,
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   221
								velBeamToInstrument(\%dta,
29faa9e6226c after DIMES UK2
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents: 1
diff changeset
   222
									@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]}));
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   223
				} else {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   224
					@v = velApplyHdgBias(\%dta,$e,@{$dta{ENSEMBLE}[$e]->{VELOCITY}[$b]});
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   225
				}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   226
		
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   227
				$v[0] = nan unless defined($v[0]);		# u
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   228
				$v[1] = nan unless defined($v[1]);		# v
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   229
				$v[2] = nan unless defined($v[2]);		# w
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   230
				$v[3] = nan unless defined($v[3]);		# err_vel
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   231
				$w12 = nan unless defined($w12);		# w from beams 1&2
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   232
				$w34 = nan unless defined($w34);		# w from beams 3&4
21
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   233
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   234
				my(@out);
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   235
				if ($opt_B) {
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   236
					$v[0] = nan unless defined($dta{ENSEMBLE}[$e]->{BT_VELOCITY}[0]);
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   237
					$v[1] = nan unless defined($dta{ENSEMBLE}[$e]->{BT_VELOCITY}[1]);
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   238
					@out = (
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   239
						$b,$dz,$v[0]-$dta{ENSEMBLE}[$e]->{BT_VELOCITY}[0],
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   240
						$v[1]-$dta{ENSEMBLE}[$e]->{BT_VELOCITY}[1],$v[2],$v[3],$w12,$w34,
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   241
						@{$dta{ENSEMBLE}[$e]->{CORRELATION}[$b]},
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   242
						@{$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b]},
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   243
						@{$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b]}
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   244
					);
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   245
				} else {
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   246
					@out = (
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   247
						$b,$dz,$v[0],$v[1],$v[2],$v[3],$w12,$w34,
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   248
						@{$dta{ENSEMBLE}[$e]->{CORRELATION}[$b]},
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   249
						@{$dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b]},
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   250
						@{$dta{ENSEMBLE}[$e]->{PERCENT_GOOD}[$b]}
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   251
					);
0b5bbe60131c version sent to P16N
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 18
diff changeset
   252
				}
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   253
				foreach my $f (@addFields) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   254
					my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)});
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   255
					$fn = $f unless defined($fn);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   256
					push(@out,eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi"));
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   257
				}
13
b176da8559b3 before implementing WBWens (PD0 writing)
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 11
diff changeset
   258
				for ($i=0; $i<19+@addFields; $i++) {
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   259
					$out[$i] = nan unless defined($out[$i]);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   260
				}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   261
				print(P "@out\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   262
			}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   263
			close(P);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   264
		}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   265
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   266
	} else {											# neither ANTS nor ens files
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   267
		unless ($opt_Q) {
10
c835cd613f3e before EGU Vienna
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 6
diff changeset
   268
			if ($dta{FIXED_LEADER_BYTES} >= 53) {
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   269
				printf("    # Date       Time        XD  Temp Headng Pitch  Roll #vv DSID ESW$addLayout\n");
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   270
				printf("-----------------------------------------------------------------------\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   271
			} else {
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   272
				printf("    # Date       Time        XD  Temp Headng Pitch  Roll #vv DSID$addLayout\n");
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   273
				printf("-------------------------------------------------------------------\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   274
			}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   275
		}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   276
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   277
		$dumpEns = sub ($)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   278
		{
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   279
			my($e) = @_;
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   280
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   281
			printf('%5d %s %s %s %5.1f',
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   282
				$dta{ENSEMBLE}[$e]->{NUMBER},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   283
				$dta{ENSEMBLE}[$e]->{DATE},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   284
				$dta{ENSEMBLE}[$e]->{TIME},
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   285
				$dta{ENSEMBLE}[$e]->{XDUCER_FACING_UP} ? "UP" : "DN",
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   286
				$dta{ENSEMBLE}[$e]->{TEMPERATURE},
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   287
			);
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   288
			if (defined($dta{ENSEMBLE}[$e]->{HEADING})) { printf(' %6.1f',$dta{ENSEMBLE}[$e]->{HEADING}); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   289
			else { printf('    nan'); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   290
			if (defined($dta{ENSEMBLE}[$e]->{PITCH})) { printf(' %5.1f',$dta{ENSEMBLE}[$e]->{PITCH}); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   291
			else { printf('   nan'); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   292
			if (defined($dta{ENSEMBLE}[$e]->{ROLL})) { printf(' %5.1f',$dta{ENSEMBLE}[$e]->{ROLL}); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   293
			else { printf('   nan'); }
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   294
			printf(' %3d 0x%02X',
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   295
				$dta{ENSEMBLE}[$e]->{BIN1VELS},
18
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 13
diff changeset
   296
				$dta{ENSEMBLE}[$e]->{DATA_SOURCE_ID},
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   297
			);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   298
			printf(' 0x%08X',$dta{ENSEMBLE}[$e]->{ERROR_STATUS_WORD})
10
c835cd613f3e before EGU Vienna
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 6
diff changeset
   299
				if ($dta{FIXED_LEADER_BYTES} >= 53);
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   300
			foreach my $f (@addFields) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   301
				my($fn,$fi) = ($f =~ m{([^[]*)(\[.*)});
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   302
				$fn = $f unless defined($fn);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   303
				my($v) = eval("\$dta{ENSEMBLE}[$e]->{$fn}$fi");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   304
				print(defined($v) ? " $v" : " nan");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   305
			}
6
603221e51c6f pre IWISE
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
   306
			print(" BUILT-IN-TEST ERROR")
603221e51c6f pre IWISE
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
   307
				if defined($dta{ENSEMBLE}[$e]->{BUILT_IN_TEST_ERROR});
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   308
			print("\n");
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   309
		}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   310
		
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   311
	}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   312
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   313
	for ($e=0; $e<=$#{$dta{ENSEMBLE}}; $e++) {
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   314
		next if (defined($first_ens) &&
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   315
				 $dta{ENSEMBLE}[$e]->{NUMBER} < $first_ens);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   316
		last if (defined($last_ens) &&
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   317
				 $dta{ENSEMBLE}[$e]->{NUMBER} > $last_ens);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   318
		 $dta{ENSEMBLE}[$e]->{BIN1VELS} =
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   319
				defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][0]) +
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   320
				defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][1]) +
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   321
				defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][2]) +
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   322
	            defined($dta{ENSEMBLE}[$e]->{VELOCITY}[1][3]);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   323
		next if ($opt_w && $dta{ENSEMBLE}[$e]->{BIN1VELS}<3);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   324
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   325
		die("3-beams used in ensemble #$dta{ENSEMBLE}[$e]->{NUMBER}\n")
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   326
			if ($dta{ENSEMBLE}[$e]->{N_BEAMS_USED} < 4);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   327
		die("BIT error in ensemble $dta{ENSEMBLE}[$e]->{NUMBER}\n")
6
603221e51c6f pre IWISE
A.M. Thurnherr <athurnherr@yahoo.com>
parents: 5
diff changeset
   328
			if ($opt_Q || $opt_A || $opt_E) && defined($dta{ENSEMBLE}[$e]->{BUILT_IN_TEST_ERROR});
0
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   329
		die("Low gain in ensemble #$dta{ENSEMBLE}[$e]->{NUMBER}\n")
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   330
			if ($dta{ENSEMBLE}[$e]->{LOW_GAIN});
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   331
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   332
		&$dumpEns($e)
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   333
			unless ($opt_Q);
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   334
	}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   335
}
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   336
229a0d72d2ab first hg version
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff changeset
   337
exit(0);