author | A.M. Thurnherr <athurnherr@yahoo.com> |
Tue, 29 Jun 2021 09:14:43 -0400 | |
changeset 23 | e83393696a24 |
parent 22 | 624b1ed6e9c9 |
permissions | -rw-r--r-- |
22
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
1 |
function [ds,p,dr] = calc_shear3(d,p,ps,dr) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
2 |
% function [ds,p,dr] = calc_shear3(d,p,ps,dr) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
3 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
4 |
% - compute shear profiles |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
5 |
% - use only central difference |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
6 |
% - use 2*std editing |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
7 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
8 |
% version 8 last change 06.08.2019 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
9 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
10 |
% Martin Visbeck, LDEO, 3/7/97 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
11 |
% some modifications and code cleanup GK, 16.05.2015 2-->3 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
12 |
% reinstated the use of d.weight for the identification of shear pairs |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
13 |
% GK, 03.12.2018 3-->4 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
14 |
% reorganization of the dz handling GK, 12.12.2018 4-->5 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
15 |
% added error output, catch different shear methods GK, 22.07.2019 5-->6 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
16 |
% more text output |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
17 |
% added new parameter ps.shear_throw_out_percent GK, 05.08.2019 6-->7 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
18 |
% fixed bug in shear calculation GK, 06.08.2019 7-->8 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
19 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
20 |
%====================================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
21 |
% C A L C _ S H E A R 3 . M |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
22 |
% doc: Wed Sep 4 17:55:22 2019 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
23 |
% dlm: Wed Sep 4 18:55:36 2019 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
24 |
% (c) 2019 G. Krahmann, M. Visbeck |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
25 |
% uE-Info: 400 0 NIL 0 0 72 0 2 4 NIL ofnI |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
26 |
%====================================================================== |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
27 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
28 |
% CHANGES BY ANT: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
29 |
% Sep 4, 2019: - replaced messages by LDEO warn mechanism |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
30 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
31 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
32 |
% general function info |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
33 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
34 |
disp(' ') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
35 |
disp(['CALC_SHEAR3: calculate a baroclinic velocity profile based on shears only']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
36 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
37 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
38 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
39 |
% decide whether central differences or simple differences are to be used in |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
40 |
% the shear calculation |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
41 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
42 |
% 1: simple differences |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
43 |
% 2: central differences |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
44 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
45 |
diff_type = 2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
46 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
47 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
48 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
49 |
% resolution of final shear profile in meter |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
50 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
51 |
dz = ps.dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
52 |
shear_dz = dz * diff_type; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
53 |
disp([' Averaging shear profile over ',num2str(shear_dz),' m intervals']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
54 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
55 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
56 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
57 |
% Discard a certain amount of data as suspected outliers that |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
58 |
% for relatively small numbers of values will skew the mean. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
59 |
% In the old calc_shear2.m the allowed range was the std of the shears |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
60 |
% times the set factor stdf. Default was stdf=2 . |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
61 |
% In calc_shear3.m the outlier determination is iterative and thus a bit |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
62 |
% safer in calculation. The allowed range is set as a fraction of the whole |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
63 |
% population. For gaussian distributions stdf converts to this fraction. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
64 |
% As usually stdf is not varied much, we have implemented a lookup list |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
65 |
% here. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
66 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
67 |
use_new_outlier = 1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
68 |
ps.shear_stdf = 4; % arbitrary guess |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
69 |
stdf = ps.shear_stdf; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
70 |
if use_new_outlier==1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
71 |
fracs = 1 - [31.8,13.4,4.5,1.3,0.3]/100; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
72 |
stdfs = [1,1.5,2,2.5,3]; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
73 |
[dummy,ind] = min(abs(stdf-stdfs)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
74 |
frac = fracs(ind); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
75 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
76 |
disp([' Maximum allowed std within calculation intervals : ',num2str(stdf)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
77 |
disp([' Data deviating more from the median will be discarded.']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
78 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
79 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
80 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
81 |
% check if only one istrument is to be used |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
82 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
83 |
if ps.up_dn_looker==2 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
84 |
% down looker only |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
85 |
d.weight(d.izu,:)=nan; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
86 |
elseif ps.up_dn_looker==3 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
87 |
% up looker only |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
88 |
d.weight(d.izd,:)=nan; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
89 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
90 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
91 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
92 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
93 |
% Apply a weight threshold to shear data. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
94 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
95 |
% There are two variants. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
96 |
% First one is used when ps.shear_throw_out_percent is not NaN. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
97 |
% This one throws out the xx% shears with the lowest correlation-derived weights. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
98 |
% Second one is used when ps.shear_weightmin is not NaN. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
99 |
% This one sets a minimum weight to keep the shears. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
100 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
101 |
% First one is now default with 10%. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
102 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
103 |
disp([' Correlation-derived weights range from ',num2str(min(d.weight(:))),' to ',num2str(max(d.weight(:)))]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
104 |
if 0 % ~isnan(ps.shear_throw_out_percent) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
105 |
local_weight = d.weight; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
106 |
ind = find(isfinite(local_weight)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
107 |
[dummy,ind2] = sort(local_weight(ind)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
108 |
if length(ind2)>9 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
109 |
local_weight(ind(ind2(1:floor(length(ind2)/10)))) = nan; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
110 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
111 |
elseif 0 % ~isnan(ps.shear_weightmin) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
112 |
disp([' Minimum weight ',num2str(ps.shear_weightmin),' for data to be used in shear calc.']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
113 |
local_weight = double(d.weight>ps.shear_weightmin); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
114 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
115 |
disp('> No weight criterion applied to raw shear data.') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
116 |
disp('> You should set ps.shear_throw_out_percent or ps.shear_weightmin') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
117 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
118 |
local_weight = d.weight; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
119 |
disp([' Removed ',int2str(100-sum(isfinite(local_weight))/sum(isfinite(d.weight))*100),... |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
120 |
' % of data with lowest weights from shear calculation.']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
121 |
disp([' New weights range from ',num2str(min(local_weight(:))),' to ',num2str(max(local_weight(:)))]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
122 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
123 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
124 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
125 |
% convert the weights to 1 and NaN |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
126 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
127 |
%local_weight = replace( local_weight, local_weight<=0, nan ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
128 |
%local_weight = replace( local_weight, local_weight>0, 1 ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
129 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
130 |
local_weight(find(local_weight <= 0)) = nan; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
131 |
local_weight(find(local_weight > 0)) = 1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
132 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
133 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
134 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
135 |
% compute shear |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
136 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
137 |
% two ways are offered here |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
138 |
% first: central differences for the shears |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
139 |
% second: single differences |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
140 |
% the first is similar to the ways of the old calc_shear2.m |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
141 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
142 |
% central differences |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
143 |
if diff_type==2 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
144 |
local_weight = [repmat(nan,1,size(local_weight,2));diff2(local_weight)+1;repmat(nan,1,size(local_weight,2))]; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
145 |
ushear = [NaN*d.ru(1,:);diff2(d.ru(:,:))./diff2(d.izm);NaN*d.ru(1,:)].*local_weight; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
146 |
vshear = [NaN*d.rv(1,:);diff2(d.rv(:,:))./diff2(d.izm);NaN*d.rv(1,:)].*local_weight; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
147 |
wshear = [NaN*d.rw(1,:);diff2(d.rw(:,:))./diff2(d.izm);NaN*d.rw(1,:)].*local_weight; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
148 |
zshear = -d.izm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
149 |
% single differences |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
150 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
151 |
ushear = diff( d.ru.*local_weight )./diff(d.izm); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
152 |
vshear = diff( d.rv.*local_weight )./diff(d.izm); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
153 |
wshear = diff( d.rw.*local_weight )./diff(d.izm); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
154 |
zshear = -(d.izm(1:end-1,:)+d.izm(2:end,:))/2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
155 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
156 |
ds.ushear = ushear; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
157 |
ds.vshear = vshear; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
158 |
ds.wshear = wshear; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
159 |
ds.zshear = zshear; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
160 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
161 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
162 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
163 |
% set depth levels |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
164 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
165 |
z = dr.z; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
166 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
167 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
168 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
169 |
% prepare shear solution result vectors |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
170 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
171 |
ds.usm = repmat(nan,length(z),1); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
172 |
ds.vsm = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
173 |
ds.wsm = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
174 |
ds.usmd = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
175 |
ds.vsmd = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
176 |
ds.use = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
177 |
ds.vse = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
178 |
ds.wse = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
179 |
ds.nn = ds.usm; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
180 |
ds.z = z; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
181 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
182 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
183 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
184 |
% loop over depth levels and calculate the average shear at that level |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
185 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
186 |
% in the case of central differences this is oversampled here |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
187 |
% but by sticking with the same resolution it makes the results easier |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
188 |
% to work with |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
189 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
190 |
for n=[1:length(z)] |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
191 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
192 |
i1 = find( ( abs( zshear - z(n) ) <= shear_dz/2 ) & isfinite( ushear + vshear ) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
193 |
ds.nn(n) = length(i1); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
194 |
if ds.nn(n) > 2 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
195 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
196 |
% two ways to select outliers |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
197 |
% first: select all that are beyond a fixed range around the median |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
198 |
% second: iteratively reject the worst (largest distance from mean) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
199 |
% until a fixed fraction is rejected |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
200 |
% the second is usually the safer calculation but is a bit slower |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
201 |
if 1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
202 |
usmm = median( ushear(i1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
203 |
ussd1 = std( ushear(i1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
204 |
vsmm = median( vshear(i1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
205 |
vssd1 = std( vshear(i1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
206 |
wsmm = median( wshear(i1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
207 |
wssd1 = std( wshear(i1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
208 |
ii1 = i1( find(abs(ushear(i1)-usmm)<stdf*ussd1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
209 |
ii2 = i1( find(abs(vshear(i1)-vsmm)<stdf*vssd1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
210 |
ii3 = i1( find(abs(wshear(i1)-wsmm)<stdf*wssd1) ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
211 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
212 |
[dummy,ii1] = meanoutlier(ushear(i1),frac); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
213 |
[dummy,ii2] = meanoutlier(vshear(i1),frac); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
214 |
[dummy,ii3] = meanoutlier(wshear(i1),frac); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
215 |
ii1 = i1(ii1); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
216 |
ii2 = i1(ii2); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
217 |
ii3 = i1(ii3); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
218 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
219 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
220 |
% two ways of calculating the mean and std of the selected shears |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
221 |
% first: if there is a rejected one in any of u,v,w shears then use it |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
222 |
% for non of the calculations |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
223 |
% second: if there is a rejected one in any of u,v,w shears then use it |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
224 |
% only in u,v or w calculations |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
225 |
% the second one is the one used by the old calc_shear2.m |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
226 |
% but to me this does not make sense, GK May 2015 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
227 |
if 1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
228 |
dummy = zeros(size(ushear)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
229 |
dummy(ii1) = 1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
230 |
dummy(ii2) = dummy(ii2)+1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
231 |
dummy(ii3) = dummy(ii3)+1; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
232 |
ii = find(dummy==3); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
233 |
if length(ii)>1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
234 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
235 |
ds.usm(n) = mean(ushear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
236 |
ds.usmd(n) = median(ushear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
237 |
ds.use(n) = std(ushear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
238 |
ds.ii(n) = length(ii); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
239 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
240 |
ds.vsm(n) = mean(vshear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
241 |
ds.vsmd(n) = median(vshear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
242 |
ds.vse(n) = std(vshear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
243 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
244 |
ds.wsm(n) = mean(wshear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
245 |
ds.wsmd(n) = median(wshear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
246 |
ds.wse(n) = std(wshear(ii)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
247 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
248 |
% debugging plot |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
249 |
if 0 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
250 |
figure(3) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
251 |
clf |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
252 |
subplot(3,1,1) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
253 |
hist(ushear(ii),30) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
254 |
hold on |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
255 |
ax = axis; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
256 |
plot([1,1]*mean(ushear(ii)),ax(3:4),'r') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
257 |
plot([1,1]*median(ushear(ii)),ax(3:4),'m') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
258 |
ind = find(dr.z==z(n)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
259 |
if ind<length(dr.u) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
260 |
plot([1,1]*(dr.u(ind-1)-dr.u(ind+1))/20,ax(3:4),'g') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
261 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
262 |
title(int2str(z(n))) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
263 |
subplot(3,1,2) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
264 |
hist(vshear(ii),30) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
265 |
hold on |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
266 |
ax = axis; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
267 |
plot([1,1]*mean(vshear(ii)),ax(3:4),'r') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
268 |
plot([1,1]*median(vshear(ii)),ax(3:4),'m') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
269 |
ind = find(dr.z==z(n)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
270 |
if ind<length(dr.u) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
271 |
plot([1,1]*(dr.v(ind-1)-dr.v(ind+1))/20,ax(3:4),'g') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
272 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
273 |
subplot(3,1,3) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
274 |
hist( zshear(ii)-z(n), 30 ) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
275 |
pause |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
276 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
277 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
278 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
279 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
280 |
if length(ii1)>1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
281 |
ds.usm(n) = mean(ushear(ii1)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
282 |
ds.usmd(n) = median(ushear(ii1)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
283 |
ds.use(n) = std(ushear(ii1)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
284 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
285 |
if length(ii2)>1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
286 |
ds.vsm(n) = mean(vshear(ii2)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
287 |
ds.vsmd(n) = median(vshear(ii2)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
288 |
ds.vse(n) = std(vshear(ii2)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
289 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
290 |
if length(ii3)>1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
291 |
ds.wsm(n) = mean(wshear(ii3)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
292 |
ds.wsmd(n) = median(wshear(ii3)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
293 |
ds.wse(n) = nstd(wshear(ii3)); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
294 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
295 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
296 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
297 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
298 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
299 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
300 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
301 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
302 |
% a debugging figure |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
303 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
304 |
if 0 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
305 |
sfigure(3); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
306 |
clf |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
307 |
orient tall |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
308 |
subplot(1,2,1) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
309 |
plot(ushear,zshear,'b.','markersize',3) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
310 |
hold on |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
311 |
plot(ds.usm,ds.z,'r') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
312 |
plot(ds.usmd,ds.z,'k') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
313 |
inv_shear_u = -diff(dr.u-mean(dr.u))/dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
314 |
plot(inv_shear_u,(z(1:end-1)+z(2:end))/2,'g') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
315 |
set(gca,'ydir','reverse') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
316 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
317 |
subplot(1,2,2) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
318 |
plot(vshear,zshear,'b.','markersize',3) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
319 |
hold on |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
320 |
plot(ds.vsm,ds.z,'r') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
321 |
plot(ds.vsmd,ds.z,'k') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
322 |
inv_shear_v = -diff(dr.v-mean(dr.v))/dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
323 |
plot(inv_shear_v,(z(1:end-1)+z(2:end))/2,'g') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
324 |
set(gca,'ydir','reverse') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
325 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
326 |
sfigure(2) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
327 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
328 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
329 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
330 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
331 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
332 |
% integrate shear profile (from bottom up) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
333 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
334 |
%%ds.usm = replace( ds.usm, isnan(ds.usm), 0 ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
335 |
%%ds.vsm = replace( ds.vsm, isnan(ds.vsm), 0 ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
336 |
%%ds.wsm = replace( ds.wsm, isnan(ds.wsm), 0 ); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
337 |
ds.usm(find(isnan(ds.usm))) = 0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
338 |
ds.vsm(find(isnan(ds.vsm))) = 0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
339 |
ds.wsm(find(isnan(ds.wsm))) = 0; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
340 |
if length(ind)/length(ds.usm)*100>5 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
341 |
disp(['> Found ',num2str(length(ind)/length(ds.usm)*100),... |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
342 |
'% Nan in shear data. Integration result might be problematic.']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
343 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
344 |
if 1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
345 |
ds.ur = flipud(cumsum(flipud(ds.usm)))*dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
346 |
ds.vr = flipud(cumsum(flipud(ds.vsm)))*dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
347 |
ds.wr = flipud(cumsum(flipud(ds.wsm)))*dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
348 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
349 |
ds.ur = flipud(cumsum(flipud(ds.usmd)))*dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
350 |
ds.vr = flipud(cumsum(flipud(ds.vsmd)))*dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
351 |
ds.wr = flipud(cumsum(flipud(ds.wsmd)))*dz; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
352 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
353 |
ds.ur = ds.ur-mean(ds.ur); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
354 |
ds.vr = ds.vr-mean(ds.vr); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
355 |
ds.wr = ds.wr-mean(ds.wr); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
356 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
357 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
358 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
359 |
% This is a peculiar place for the single ping error estimate. But |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
360 |
% as it is based on the variability in the data itself, it makes sense. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
361 |
% The assumption is that there should be basically zero shear in the |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
362 |
% vertical velocities. At least it is so small as to be not detectable |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
363 |
% here. Thus any variability in the vertical shear is caused by the |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
364 |
% errors/noise of the measurement. Together with an angular conversion |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
365 |
% factor this gives an error/noise value for the horizontal velocities. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
366 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
367 |
if ~isfield(d,'zd') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
368 |
dz2 = abs(mean(diff(d.z))); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
369 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
370 |
dz2 = diff_type*abs(mean(diff(d.zd))); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
371 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
372 |
if isfield(d,'down') |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
373 |
fac = 1/tan(d.down.Beam_angle*pi/180)*sqrt(2)*dz2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
374 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
375 |
fac = 1/tan(d.up.Beam_angle*pi/180)*sqrt(2)*dz2; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
376 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
377 |
ds.ensemble_vel_err = ds.wse*fac; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
378 |
dr.ensemble_vel_err = ds.wse*fac; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
379 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
380 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
381 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
382 |
% store result and give text output |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
383 |
% |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
384 |
dr.u_shear_method = ds.ur; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
385 |
dr.v_shear_method = ds.vr; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
386 |
dr.w_shear_method = ds.wr; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
387 |
uds = std(dr.u-mean(dr.u)-ds.ur); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
388 |
vds = std(dr.v-mean(dr.v)-ds.vr); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
389 |
uvds = sqrt(uds^2+vds^2); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
390 |
disp([' Inversion average error : ',num2str(mean( dr.uerr ) ),' m/s']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
391 |
if uvds>mean(dr.uerr)*1.5 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
392 |
error_increase_factor = 1/mean(dr.uerr)*uvds/1.5; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
393 |
warn = ('> Increasing error estimate because of elevated shear - inverse difference'); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
394 |
disp(warn) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
395 |
disp(['> by a factor of ',num2str(error_increase_factor)]) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
396 |
disp(['> std of difference between regular and shear profile : ',num2str(uvds),' m/s']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
397 |
p.warnp(size(p.warnp,1)+1,1:length(warn))=warn; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
398 |
dr.uerr = dr.uerr * error_increase_factor; |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
399 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
400 |
disp([' Final average error : ',num2str(mean( dr.uerr ) ),' m/s']) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
401 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
402 |
%-------------------------------------------------- |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
403 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
404 |
function x = diff2(x,k,dn) |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
405 |
%DIFF2 Difference function. If X is a vector [x(1) x(2) ... x(n)], |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
406 |
% then DIFF(X) returns a vector of central differences between |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
407 |
% elements [x(3)-x(1) x(4)-x(2) ... x(n)-x(n-2)]. If X is a |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
408 |
% matrix, the differences are calculated down each column: |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
409 |
% DIFF(X) = X(3:n,:) - X(1:n-2,:). |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
410 |
% DIFF(X,n) is the n'th difference function. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
411 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
412 |
% J.N. Little 8-30-85 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
413 |
% Copyright (c) 1985, 1986 by the MathWorks, Inc. |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
414 |
|
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
415 |
if nargin < 2, k = 1; end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
416 |
if nargin < 3, dn = 2; end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
417 |
for i=1:k |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
418 |
[m,n] = size(x); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
419 |
if m == 1 |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
420 |
x = x(1+dn:n) - x(1:n-dn); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
421 |
else |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
422 |
x = x(1+dn:m,:) - x(1:m-dn,:); |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
423 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
424 |
end |
624b1ed6e9c9
version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff
changeset
|
425 |