42
|
1 |
#======================================================================
|
|
2 |
# D U M P _ R E S I D U A L _ P R O F I L E S . P L
|
|
3 |
# doc: Thu Mar 24 07:55:07 2016
|
46
|
4 |
# dlm: Tue May 24 16:35:30 2016
|
42
|
5 |
# (c) 2016 A.M. Thurnherr
|
46
|
6 |
# uE-Info: 46 24 NIL 0 0 72 2 2 4 NIL ofnI
|
42
|
7 |
#======================================================================
|
|
8 |
|
|
9 |
# HISTORY:
|
|
10 |
# Mar 24, 2016: - created from [plot_residuals.pl]
|
|
11 |
# Mar 29, 2016: - cleaned up
|
46
|
12 |
# May 24, 2016: - calc_binDepths() -> binDepths()
|
42
|
13 |
|
|
14 |
sub dump_residual_profiles($)
|
|
15 |
{
|
|
16 |
my($odir) = @_;
|
|
17 |
|
|
18 |
unless (-d $odir) {
|
|
19 |
warning(0,"Creating residual-profile output directory ./$odir\n");
|
|
20 |
my(@dirs) = split('/',$odir);
|
|
21 |
my($path) = '.';
|
|
22 |
foreach my $d (@dirs) {
|
|
23 |
$path .= "/$d";
|
|
24 |
mkdir($path);
|
|
25 |
}
|
|
26 |
}
|
|
27 |
|
|
28 |
return unless ($P{max_depth});
|
|
29 |
|
|
30 |
@antsNewLayout = ('bin','depth','residual');
|
|
31 |
|
|
32 |
for ($ens=$firstGoodEns; $ens<=$lastGoodEns; $ens++) {
|
|
33 |
next unless numberp($LADCP{ENSEMBLE}[$ens]->{CTD_DEPTH});
|
|
34 |
|
|
35 |
my($of) = sprintf('>%s/%04d.rprof',$odir,$LADCP{ENSEMBLE}[$ens]->{NUMBER});
|
|
36 |
open(STDOUT,$of) || error("$of: $!\n");
|
|
37 |
undef($antsActiveHeader) unless ($ANTS_TOOLS_AVAILABLE);
|
|
38 |
|
|
39 |
&antsAddParams('ensemble', $LADCP{ENSEMBLE}[$ens]->{NUMBER},
|
|
40 |
'elapsed', $LADCP{ENSEMBLE}[$ens]->{ELAPSED},
|
|
41 |
'CTD_depth', $LADCP{ENSEMBLE}[$ens]->{CTD_DEPTH},
|
|
42 |
'CTD_w', $CTD{W}[$LADCP{ENSEMBLE}[$ens]->{CTD_SCAN}],
|
|
43 |
'CTD_accel', $CTD{W_t}[$LADCP{ENSEMBLE}[$ens]->{CTD_SCAN}],
|
|
44 |
'ADCP_tilt', $LADCP{ENSEMBLE}[$ens]->{TILT});
|
|
45 |
|
46
|
46 |
my(@bindepth) = binDepths($ens);
|
42
|
47 |
for ($bin=$LADCP_firstBin-1; $bin<=$LADCP_lastBin-1; $bin++) {
|
|
48 |
next unless ($bin+1>=$outGrid_firstBin && $bin+1<=$outGrid_lastBin);
|
|
49 |
next unless numberp($LADCP{ENSEMBLE}[$ens]->{W}[$bin]);
|
|
50 |
my($bi) = $bindepth[$bin]/$opt_o;
|
|
51 |
my($res) = ($ens < $LADCP_atbottom) ?
|
|
52 |
$LADCP{ENSEMBLE}[$ens]->{SSCORRECTED_OCEAN_W}[$bin] - $DNCAST{MEDIAN_W}[$bi] :
|
|
53 |
$LADCP{ENSEMBLE}[$ens]->{SSCORRECTED_OCEAN_W}[$bin] - $UPCAST{MEDIAN_W}[$bi];
|
|
54 |
&antsOut($bin,$bindepth[$bin],$res);
|
|
55 |
|
|
56 |
}
|
|
57 |
&antsOut('EOF'); open(STDOUT,'>&2');
|
|
58 |
}
|
|
59 |
}
|
|
60 |
|
|
61 |
1; # return true on require
|