author | A.M. Thurnherr <athurnherr@yahoo.com> |
Wed, 17 Jan 2018 12:19:54 -0500 | |
changeset 20 | 61b92f8fb463 |
parent 17 | f5a63c03d9c8 |
permissions | -rw-r--r-- |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
1 |
function d = edit_data(d,p) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
2 |
% function d = edit_data(d,p) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
3 |
% |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
4 |
% perform data editing (e.g. sidelobes, previous-ping interference, &c) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
5 |
% |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
6 |
% HISTORY: |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
7 |
% Jul 3, 2004: - implemented side-lobe contamination editing |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
8 |
% Jul 15, 2004: - implemented PPI contamination editing |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
9 |
% Jul 16, 2004: - implemented cross-contamination editing |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
10 |
% Jul 18, 2004: - added parameter defaults |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
11 |
% Jul 21, 2004: - moved bin masking from [loadrdi.m] |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
12 |
% Jul 23, 2004: - implemented ensemble skipping |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
13 |
% May 18, 2006: - incorporated simple fix for multi-ping ensembles |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
14 |
% provided by Mattew Alford |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
15 |
% - disabled edit_spike_filter by default |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
16 |
% - changed edit_spike_filter_max_curv default value |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
17 |
% Aug 13, 2013: - BUG: edit_sidelobes did not work for UL only data |
15
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
18 |
% Jul 13, 2014: - automatically edit bins 1 when blanking distance is zero |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
19 |
% Jan 23, 2015: - BUG: automatic zero blanking editing had a typo |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
20 |
% - BUG: automatic zero blanking editing did not work with DL-only data |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
21 |
% - added p.edit_{dn,up}_bad_ensembles |
17 | 22 |
% Jul 21, 2015: - made bin-masking more permissive (allow indices > #bins) |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
23 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
24 |
%====================================================================== |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
25 |
% E D I T _ D A T A . M |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
26 |
% doc: Sat Jul 3 17:13:05 2004 |
17 | 27 |
% dlm: Tue Jul 21 11:39:18 2015 |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
28 |
% (c) 2004 A.M. Thurnherr |
17 | 29 |
% uE-Info: 126 23 NIL 0 0 72 0 2 8 NIL ofnI |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
30 |
%====================================================================== |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
31 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
32 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
33 |
% Initialize & Set Default Parameters |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
34 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
35 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
36 |
d.ts_edited = d.ts; % save for plotting/inspection |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
37 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
38 |
% Set to list of bins to remove from data. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
39 |
p=setdefv(p,'edit_mask_dn_bins',[]); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
40 |
p=setdefv(p,'edit_mask_up_bins',[]); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
41 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
42 |
% Set to 1 to remove side-lobe contaminated data near seabed and |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
43 |
% surface. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
44 |
p=setdefv(p,'edit_sidelobes',1); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
45 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
46 |
% Set to 1 to implement time-domain spike filter on the data; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
47 |
% this removes interference from other acoustic instruments but, |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
48 |
% more importantly, can get rid of PPI when staggered pings |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
49 |
% are used. USING THIS FILTER WITH A CURVATURE CRITERION THAT IS |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
50 |
% TOO STRICT CAN SERIOUSLY DEGRADE THE VELOCITY PROFILES. THEREFORE, |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
51 |
% IT HAS BEEN DISABLED BY DEFAULT IN VERSION IX_3. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
52 |
p=setdefv(p,'edit_spike_filter',0); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
53 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
54 |
% Spike filtering is done using 2nd-difference |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
55 |
% peak detection in time. This parameter gives the maximum |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
56 |
% target-strength 2nd derivative that's allowed. Set to larger |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
57 |
% values to weaken the filtering. (Check figure 14 to see if |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
58 |
% filter is too strong or too weak.) Setting the value of this |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
59 |
% parameter too low will seriously degrade the velocity profiles, |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
60 |
% without any apparent sign of trouble. The optimal value of this |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
61 |
% parameter depends on the instrument type. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
62 |
p=setdefv(p,'edit_spike_filter_max_curv',5); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
63 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
64 |
% Set to 1 to remove data contaminated by previous-ping interference. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
65 |
% NOTES: - Using the spike filter seems to work more robustly, as long |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
66 |
% as staggered pings are used. Great care must be taken, |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
67 |
% however, to chose a good value for edit_spike_filter_max_curv. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
68 |
p=setdefv(p,'edit_PPI',0); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
69 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
70 |
% PPI layer thickness in meters; the value is taken directly from Eric |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
71 |
% Firing's default (2*clip_margin = 180m). |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
72 |
p=setdefv(p,'edit_PPI_layer_thickness',180); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
73 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
74 |
% max distance from seabed at which PPI should be removed. This is |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
75 |
% an observed parameter and depends on the clarity of the water. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
76 |
% Check Figure 14 to see whether this should be changed. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
77 |
p=setdefv(p,'edit_PPI_max_hab',1000); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
78 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
79 |
% set this vector to enable skipping of ensembles; skipping vector |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
80 |
% is wrapped around, i.e. [1 0] skips all odd ensembles, [0 1 0] skips |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
81 |
% ensembles 2 5 8 11.... This filter is useful to process the casts |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
82 |
% with only half the data to see whether the two halves agree, which |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
83 |
% probably means that the cast can be trusted. Note that if staggered |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
84 |
% ping setup is used to avoid PPI, the skipping vector should leave |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
85 |
% adjacent ensembles intact, i.e. use something like [1 1 0 0] and |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
86 |
% [0 0 1 1]. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
87 |
p=setdefv(p,'edit_skip_ensembles',[]); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
88 |
|
15
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
89 |
% the following vectors can be used to edit out blocks of bad ensembles, |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
90 |
% caused, for example, by intermittent hardware failures. NOTE: it is |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
91 |
% assumed that the ensembles are numbered consecutively, starting with 1, |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
92 |
% i.e. the ensemble numbers in the data files are ignored. This may |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
93 |
% not work as intended if the data files are trimmed during the DL/UL |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
94 |
% merge in [loardrdi.m] |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
95 |
|
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
96 |
p=setdefv(p,'edit_dn_bad_ensembles',[]); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
97 |
p=setdefv(p,'edit_up_bad_ensembles',[]); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
98 |
|
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
99 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
100 |
% Bin Masking |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
101 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
102 |
|
15
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
103 |
if length(d.zu)>0 && p.blnk_u==0 |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
104 |
disp(sprintf(' bin masking : masking uplooker bin 1 because of zero blanking distance')); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
105 |
p.edit_mask_up_bins = [1 p.edit_mask_up_bins]; |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
106 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
107 |
if p.blnk_d==0 |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
108 |
disp(sprintf(' bin masking : masking downlooker bin 1 because of zero blanking distance')); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
109 |
p.edit_mask_dn_bins = [1 p.edit_mask_dn_bins]; |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
110 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
111 |
|
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
112 |
if ~isempty(p.edit_mask_dn_bins) | ~isempty(p.edit_mask_up_bins) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
113 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
114 |
nbad = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
115 |
if length(d.zu) > 0 |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
116 |
for bi=1:length(p.edit_mask_up_bins) |
17 | 117 |
if p.edit_mask_up_bins(bi)<=p.nbin_u |
118 |
bn = length(d.zu)+1 - p.edit_mask_up_bins(bi); |
|
119 |
nbad = nbad + length(find(isfinite(d.weight(bn,:)))); |
|
120 |
d.weight(bn,:) = NaN; d.ts_edited(bn,:) = NaN; |
|
121 |
end |
|
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
122 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
123 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
124 |
if length(d.zd) > 0 |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
125 |
for bi=1:length(p.edit_mask_dn_bins) |
17 | 126 |
if p.edit_mask_dn_bins(bi)<=p.nbin_d |
127 |
bn = length(d.zu) + p.edit_mask_dn_bins(bi); |
|
128 |
nbad = nbad + length(find(isfinite(d.weight(bn,:)))); |
|
129 |
d.weight(bn,:) = NaN; d.ts_edited(bn,:) = NaN; |
|
130 |
end |
|
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
131 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
132 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
133 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
134 |
disp(sprintf(' bin masking : set %d weights to NaN',nbad)); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
135 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
136 |
end % if bin masking enabled |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
137 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
138 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
139 |
% Side-Lobe Contamination |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
140 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
141 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
142 |
if p.edit_sidelobes |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
143 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
144 |
nbad = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
145 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
146 |
% first, the uplooker: d.z is -ve distance of ADCP from surface; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
147 |
% Cell_length is in cm, i.e. 0.015*Cell_length is 1.5 x bin size |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
148 |
% in m --- the same value used by Eric Firing's software |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
149 |
|
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
150 |
if length(d.zu)==0 && d.zd(1)<0 % UL only (in DL structures) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
151 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
152 |
for b=1:length(d.zd) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
153 |
zlim(b,:) = (1 - cos(pi*d.down.Beam_angle/180)) * d.z ... |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
154 |
- 0.015*d.down.Cell_length; |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
155 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
156 |
ibad = find(d.izm > zlim); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
157 |
nbad = nbad + length(find(isfinite(d.weight(ibad)))); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
158 |
d.weight(ibad) = NaN; d.ts_edited(ibad) = NaN; |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
159 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
160 |
elseif length(d.zu > 0) % DL/UL combo |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
161 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
162 |
for b=1:length(d.zu)+length(d.zd) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
163 |
zlim(b,:) = (1 - cos(pi*d.up.Beam_angle/180)) * d.z ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
164 |
- 0.015*d.up.Cell_length; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
165 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
166 |
ibad = find(d.izm > zlim); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
167 |
nbad = nbad + length(find(isfinite(d.weight(ibad)))); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
168 |
d.weight(ibad) = NaN; d.ts_edited(ibad) = NaN; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
169 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
170 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
171 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
172 |
% now, the downlooker: p.zbottom is the +ve depth of the sea bed; therefore, |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
173 |
% -d.z - p.zbottom is the -ve distance from the sea bed |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
174 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
175 |
for b=1:length(d.zu)+length(d.zd) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
176 |
zlim(b,:) = -p.zbottom ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
177 |
+ (1 - cos(pi*d.down.Beam_angle/180)) * (d.z+p.zbottom) ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
178 |
+ 0.015*d.down.Cell_length; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
179 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
180 |
ibad = find(d.izm < zlim); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
181 |
nbad = nbad + length(find(isfinite(d.weight(ibad)))); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
182 |
d.weight(ibad) = NaN; d.ts_edited(ibad) = NaN; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
183 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
184 |
disp(sprintf(' side-lobe contamination : set %d weights to NaN',nbad)); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
185 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
186 |
end %if p.edit_sidelobes |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
187 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
188 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
189 |
% Time-Domain Spike Filter |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
190 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
191 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
192 |
if p.edit_spike_filter |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
193 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
194 |
nbad = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
195 |
for b=1:length(d.zd)+length(d.zu) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
196 |
ibad = find(diff(diff(d.ts(b,:))) < -1*p.edit_spike_filter_max_curv) + 1; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
197 |
nbad = nbad + length(find(isfinite(d.weight(b,ibad)))); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
198 |
d.weight(b,ibad) = NaN; d.ts_edited(b,ibad) = NaN; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
199 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
200 |
disp(sprintf(' spike filter : set %d weights to NaN',nbad)); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
201 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
202 |
end %if p.edit_spike_filter |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
203 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
204 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
205 |
% Previous-Ping Interference |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
206 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
207 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
208 |
if p.edit_PPI |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
209 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
210 |
% NB: at present, PPI filtering is only implemented for the downlooker |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
211 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
212 |
nbad = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
213 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
214 |
% calc ping-intervals; dt(1) contains the difference (in seconds) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
215 |
% between the first two ensembles (t(2) - t(1)). |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
216 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
217 |
dt = diff(d.time_jul)*86400; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
218 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
219 |
% adjust for multi-ping ensembles; THIS FIX, PROVIDED BY MATTHEW ALFORD, |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
220 |
% DOES NOT WORK FOR IRREGULAR PINGING RATES (e.g. 10s ensembles of 3 |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
221 |
% pings each with 1s between pings) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
222 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
223 |
dt = dt/d.down.Pings_per_Ensemble; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
224 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
225 |
% use the mean sound speed below the approximate expected PPI depth; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
226 |
% this is anal but not very expensive; using 1500m/s would be nearly |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
227 |
% as good. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
228 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
229 |
if isfield(d,'ctdprof_z') & isfield(d,'ctdprof_ss') |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
230 |
guess_z = -p.zbottom + 1500 * meannan(dt) / 2; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
231 |
SS = meannan(d.ctdprof_ss(find(d.ctdprof_z > -guess_z))); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
232 |
if ~isfinite(SS), SS = 1500; end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
233 |
else |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
234 |
SS = 1500; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
235 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
236 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
237 |
% calculate the depth limits to remove the PPI for all (but the first) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
238 |
% ensembles; the beam-angle limits were found to be too conservative |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
239 |
% and were replaced by a nominal layer_tickness. |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
240 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
241 |
%PPI_min_beam_angle = 0.0 * d.down.Beam_angle; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
242 |
%PPI_max_beam_angle = 1.2 * d.down.Beam_angle; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
243 |
%PPI_max_z = -p.zbottom + SS * dt/2 * cos(pi/180 * PPI_min_beam_angle); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
244 |
%PPI_min_z = -p.zbottom + SS * dt/2 * cos(pi/180 * PPI_max_beam_angle); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
245 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
246 |
PPI_hab = SS * dt/2 * cos(pi/180 * d.down.Beam_angle); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
247 |
PPI_hab(find(PPI_hab > p.edit_PPI_max_hab)) = inf; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
248 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
249 |
PPI_min_z = -p.zbottom + PPI_hab - p.edit_PPI_layer_thickness / 2; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
250 |
PPI_max_z = PPI_min_z + p.edit_PPI_layer_thickness; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
251 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
252 |
% remove the contaminated data from the downlooker bins |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
253 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
254 |
for b=length(d.zu)+1:length(d.zu)+length(d.zd) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
255 |
ibad = find(d.izm(b,2:end) > PPI_min_z & d.izm(b,2:end) < PPI_max_z) + 1; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
256 |
nbad = nbad + length(find(isfinite(d.weight(b,ibad)))); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
257 |
d.weight(b,ibad) = NaN; d.ts_edited(b,ibad) = NaN; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
258 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
259 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
260 |
disp(sprintf(' previous-ping interference: set %d weights to NaN',nbad)); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
261 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
262 |
end %if p.edit_PPI |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
263 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
264 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
265 |
% Ensemble Skipping |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
266 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
267 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
268 |
if ~isempty(p.edit_skip_ensembles) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
269 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
270 |
nskipped = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
271 |
iskip = []; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
272 |
for i=1:length(p.edit_skip_ensembles) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
273 |
if p.edit_skip_ensembles(i) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
274 |
iskip = [iskip i:length(p.edit_skip_ensembles):length(d.time_jul)]; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
275 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
276 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
277 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
278 |
for b=1:length(d.zd)+length(d.zu) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
279 |
nskipped = nskipped + length(find(isfinite(d.weight(b,iskip)))); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
280 |
d.weight(b,iskip) = NaN; d.ts_edited(b,iskip) = NaN; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
281 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
282 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
283 |
disp(sprintf(' ensemble skipping : set %d weights to NaN',nskipped)); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
284 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
285 |
end % if p.edit_skip_ensembles enabled |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
286 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
287 |
%---------------------------------------------------------------------- |
15
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
288 |
% remove blocks of bad ensembles from UL and/or DL data |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
289 |
%---------------------------------------------------------------------- |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
290 |
|
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
291 |
if ~isempty(p.edit_dn_bad_ensembles) || ~isempty(p.edit_up_bad_ensembles) |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
292 |
if ~isempty(p.edit_dn_bad_ensembles) |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
293 |
dn_bad = 0; ibad = p.edit_dn_bad_ensembles; |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
294 |
for b=length(d.zu)+1:length(d.zu)+length(d.zd) |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
295 |
dn_bad = dn_bad + length(find(isfinite(d.weight(b,ibad)))); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
296 |
d.weight(b,ibad) = NaN; d.ts_edited(b,ibad) = NaN; |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
297 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
298 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
299 |
if ~isempty(p.edit_up_bad_ensembles) |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
300 |
up_bad = 0; ibad = p.edit_up_bad_ensembles; |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
301 |
for b=length(d.zu):-1:1 |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
302 |
up_bad = up_bad + length(find(isfinite(d.weight(b,ibad)))); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
303 |
d.weight(b,ibad) = NaN; d.ts_edited(b,ibad) = NaN; |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
304 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
305 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
306 |
disp(sprintf(' DL/UL ensemble editing : set %d/%d weights to NaN',dn_bad,up_bad)); |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
307 |
end |
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
308 |
|
3746197831db
IX11beta for CLIVAR P16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
11
diff
changeset
|
309 |
%---------------------------------------------------------------------- |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
310 |
% Plot Results of Editing |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
311 |
%---------------------------------------------------------------------- |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
312 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
313 |
bin_no = [0]; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
314 |
if length(d.zu) > 0, bin_no = [-length(d.zu):1 bin_no]; end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
315 |
if length(d.zd) > 0, bin_no = [bin_no 1:length(d.zd)]; end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
316 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
317 |
figure(14); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
318 |
clf; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
319 |
orient landscape; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
320 |
colormap([[1 1 1]; jet(128)]); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
321 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
322 |
subplot(2,1,1); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
323 |
imagesc(1:size(d.ts,2),bin_no,... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
324 |
[d.ts(1:length(d.zu),:); ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
325 |
ones(1,size(d.ts,2))*NaN; ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
326 |
d.ts(size(d.ts,1)-length(d.zd)+1:end,:)... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
327 |
]); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
328 |
csc = caxis; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
329 |
xlabel('Ensemble #'); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
330 |
ylabel('Bin #'); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
331 |
title('Before Data Editing'); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
332 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
333 |
subplot(2,1,2); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
334 |
imagesc(1:size(d.ts,2),bin_no,... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
335 |
[d.ts_edited(1:length(d.zu),:); ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
336 |
ones(1,size(d.ts,2))*NaN; ... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
337 |
d.ts_edited(size(d.ts,1)-length(d.zd)+1:end,:)... |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
338 |
]); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
339 |
csc = caxis; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
340 |
xlabel('Ensemble #'); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
341 |
ylabel('Bin #'); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
342 |
title('After Data Editing'); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
343 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
344 |
streamer([p.name,' Figure 14']); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
345 |