calc_shear3.m
author A.M. Thurnherr <athurnherr@yahoo.com>
Sat, 10 Apr 2021 08:03:07 -0400
changeset 22 624b1ed6e9c9
permissions -rw-r--r--
version on whoosher Apr 10. 2021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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: Thu Sep  5 10:58:55 2019
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
%                    dlm: Thu Sep  5 16:27:19 2019
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
%                    (c) 2019 G. Krahmann
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
%                    uE-Info: 31 1 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  5, 2019: - added local_weight to another case in if
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
%				  - added defaults provided by Gerd
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
%				  - removed 'messages' variable
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
%				  - replaced all "replace" statements (required 
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
%				    removal of warning)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    34
%				  - added nmin() nmax() nmean() nstd()
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    35
%				  - disabled code (replaced if 0 by if 1) calling
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    36
%				  	meanoutlier
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
% Defaults from Gerd (email 9/5/2019):
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    39
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    40
% average over data within how many standard deviations from median
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    41
% this is the value used by the old calc_shear2.m
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
% In calc_shear3.m the outlying fraction of data is discarded. Assuming a
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    43
% normal distribution a value of stdf=2 converts to an outlier fraction of
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    44
% 5%, stdf=3 converts to 1% and stdf=1 converts to 32%.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    45
% Internally in calc_shear3 this is converted so that shear_stdf does not
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46
% need to be changed.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    47
ps.shear_stdf = 2;
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
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    50
% the minimum weight a bin must have to be accepted for shear
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    51
ps.shear_weightmin = nan;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    52
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    53
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    54
% this one is similar to shear_weight_min, but gives the percentage of
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    55
% values thrown out. The routine throws out the xx% values with the
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    56
% lowest weight. The weights are the correlation based ones.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    57
ps.shear_throw_out_percent = 10;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    58
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    59
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    60
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    61
% general function info
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    62
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    63
disp(' ')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    64
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
    65
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
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    68
% 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
    69
% the shear calculation
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    70
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    71
% 1: simple differences
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    72
% 2: central differences
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    73
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    74
diff_type = 2;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    75
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    76
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    77
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    78
% resolution of final shear profile in meter
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
dz = ps.dz;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    81
shear_dz = dz * diff_type;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    82
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
    83
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    84
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    85
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    86
% 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
    87
% 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
    88
% 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
    89
% 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
    90
% 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
    91
% 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
    92
% 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
    93
% 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
    94
% here.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    95
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    96
use_new_outlier = 1;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    97
stdf = ps.shear_stdf;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    98
if use_new_outlier==1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    99
  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
   100
  stdfs = [1,1.5,2,2.5,3];
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   101
  [dummy,ind] = min(abs(stdf-stdfs));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   102
  frac = fracs(ind);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   103
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   104
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
   105
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
   106
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   107
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   108
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   109
% 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
   110
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   111
if ps.up_dn_looker==2
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   112
  % down looker only
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   113
  d.weight(d.izu,:)=nan;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   114
elseif ps.up_dn_looker==3
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   115
  % up looker only
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   116
  d.weight(d.izd,:)=nan;
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
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   119
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   120
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   121
% Apply a weight threshold to shear data.
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
% There are two variants.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   124
% 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
   125
%   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
   126
% 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
   127
%   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
   128
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   129
% First one is now default with 10%.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   130
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   131
disp(['    Correlation-derived weights range from ',num2str(nmin(d.weight(:))),' to ',num2str(nmax(d.weight(:)))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   132
if ~isnan(ps.shear_throw_out_percent)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   133
  local_weight = d.weight;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   134
  ind = find(isfinite(local_weight));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   135
  [dummy,ind2] = sort(local_weight(ind));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   136
  if length(ind2)>9
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   137
    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
   138
  end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   139
elseif ~isnan(ps.shear_weightmin)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   140
  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
   141
  local_weight = double(d.weight>ps.shear_weightmin);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   142
else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   143
  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
   144
  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
   145
  local_weight = d.weight;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   146
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   147
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
   148
  ' % of data with lowest weights from shear calculation.'])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   149
disp(['    New weights range from ',num2str(nmin(local_weight(:))),' to ',num2str(nmax(local_weight(:)))])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   150
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   151
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   152
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   153
% convert the weights to 1 and NaN
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   154
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   155
local_weight(find(local_weight <= 0)) = nan;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   156
local_weight(find(local_weight > 0))  = 1;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   157
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   158
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   159
% compute shear
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
% two ways are offered here
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   162
% first:   central differences for the shears
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   163
% second:  single differences 
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   164
% 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
   165
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   166
% central differences
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   167
if diff_type==2
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   168
  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
   169
  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
   170
  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
   171
  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
   172
  zshear = -d.izm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   173
% single differences
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   174
else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   175
  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
   176
  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
   177
  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
   178
  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
   179
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   180
ds.ushear = ushear;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   181
ds.vshear = vshear;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   182
ds.wshear = wshear;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   183
ds.zshear = zshear;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   184
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
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   187
% set depth levels
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   188
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   189
z = dr.z;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   190
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
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   193
% prepare shear solution result vectors
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   194
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   195
ds.usm = repmat(nan,length(z),1);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   196
ds.vsm = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   197
ds.wsm = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   198
ds.usmd = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   199
ds.vsmd = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   200
ds.use = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   201
ds.vse = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   202
ds.wse = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   203
ds.nn = ds.usm;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   204
ds.z = z;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   205
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   206
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   207
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   208
% 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
   209
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   210
% 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
   211
% 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
   212
% to work with
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   213
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   214
for n=[1:length(z)]
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   215
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   216
  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
   217
  ds.nn(n) = length(i1);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   218
  if ds.nn(n) > 2
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 to select outliers
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   221
    % 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
   222
    % 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
   223
    %          until a fixed fraction is rejected
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   224
    % 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
   225
    if 1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   226
      usmm = median( ushear(i1) );
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   227
      ussd1 = std( ushear(i1) );
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   228
      vsmm = median( vshear(i1) );
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   229
      vssd1 = std( vshear(i1) );
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   230
      wsmm = median( wshear(i1) );
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   231
      wssd1 = std( wshear(i1) );
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   232
      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
   233
      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
   234
      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
   235
    else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   236
      [dummy,ii1] = meanoutlier(ushear(i1),frac);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   237
      [dummy,ii2] = meanoutlier(vshear(i1),frac);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   238
      [dummy,ii3] = meanoutlier(wshear(i1),frac);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   239
      ii1 = i1(ii1);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   240
      ii2 = i1(ii2);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   241
      ii3 = i1(ii3);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   242
    end
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
    % 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
   245
    % 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
   246
    %         for non of the calculations
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   247
    % 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
   248
    %         only in u,v or w calculations
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   249
    % 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
   250
    % 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
   251
    if 1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   252
      dummy = zeros(size(ushear));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   253
      dummy(ii1) = 1;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   254
      dummy(ii2) = dummy(ii2)+1;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   255
      dummy(ii3) = dummy(ii3)+1;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   256
      ii = find(dummy==3);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   257
      if length(ii)>1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   258
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   259
        ds.usm(n) = mean(ushear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   260
        ds.usmd(n) = median(ushear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   261
        ds.use(n) = std(ushear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   262
        ds.ii(n) = length(ii);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   263
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   264
        ds.vsm(n) = mean(vshear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   265
        ds.vsmd(n) = median(vshear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   266
        ds.vse(n) = std(vshear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   267
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   268
        ds.wsm(n) = mean(wshear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   269
        ds.wsmd(n) = median(wshear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   270
        ds.wse(n) = std(wshear(ii));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   271
       
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   272
        % debugging plot 
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   273
        if 0
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   274
          figure(3)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   275
          clf
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   276
          subplot(3,1,1)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   277
          hist(ushear(ii),30)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   278
          hold on
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   279
          ax = axis;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   280
          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
   281
          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
   282
          ind = find(dr.z==z(n));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   283
          if ind<length(dr.u)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   284
            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
   285
          end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   286
          title(int2str(z(n)))
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   287
          subplot(3,1,2)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   288
          hist(vshear(ii),30)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   289
          hold on
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   290
          ax = axis;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   291
          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
   292
          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
   293
          ind = find(dr.z==z(n));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   294
          if ind<length(dr.u)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   295
            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
   296
          end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   297
          subplot(3,1,3)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   298
          hist( zshear(ii)-z(n), 30 )
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   299
          pause
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   300
        end 
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
      end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   303
    else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   304
      if length(ii1)>1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   305
        ds.usm(n) = mean(ushear(ii1));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   306
        ds.usmd(n) = median(ushear(ii1));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   307
        ds.use(n) = std(ushear(ii1));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   308
      end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   309
      if length(ii2)>1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   310
        ds.vsm(n) = mean(vshear(ii2));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   311
        ds.vsmd(n) = median(vshear(ii2));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   312
        ds.vse(n) = std(vshear(ii2));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   313
      end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   314
      if length(ii3)>1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   315
        ds.wsm(n) = mean(wshear(ii3));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   316
        ds.wsmd(n) = median(wshear(ii3));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   317
        ds.wse(n) = nstd(wshear(ii3));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   318
      end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   319
    end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   320
  end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   321
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   322
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   323
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   324
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
% a debugging figure
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   327
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   328
if 0
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   329
sfigure(3);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   330
clf
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   331
orient tall
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   332
subplot(1,2,1)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   333
plot(ushear,zshear,'b.','markersize',3)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   334
hold on
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   335
plot(ds.usm,ds.z,'r')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   336
plot(ds.usmd,ds.z,'k')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   337
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
   338
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
   339
set(gca,'ydir','reverse')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   340
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   341
subplot(1,2,2)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   342
plot(vshear,zshear,'b.','markersize',3)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   343
hold on
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   344
plot(ds.vsm,ds.z,'r')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   345
plot(ds.vsmd,ds.z,'k')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   346
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
   347
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
   348
set(gca,'ydir','reverse')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   349
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   350
sfigure(2)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   351
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   352
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   353
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   354
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   355
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   356
% integrate shear profile (from bottom up)
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
ds.usm(find(isnan(ds.usm))) = 0;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   359
ds.vsm(find(isnan(ds.vsm))) = 0;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   360
ds.wsm(find(isnan(ds.wsm))) = 0;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   361
%if length(ind)/length(ds.usm)*100>5
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   362
%  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
   363
%    '% 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
   364
%end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   365
if 1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   366
  ds.ur = flipud(cumsum(flipud(ds.usm)))*dz;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   367
  ds.vr = flipud(cumsum(flipud(ds.vsm)))*dz;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   368
  ds.wr = flipud(cumsum(flipud(ds.wsm)))*dz;
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
  ds.ur = flipud(cumsum(flipud(ds.usmd)))*dz;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   371
  ds.vr = flipud(cumsum(flipud(ds.vsmd)))*dz;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   372
  ds.wr = flipud(cumsum(flipud(ds.wsmd)))*dz;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   373
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   374
ds.ur = ds.ur-mean(ds.ur);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   375
ds.vr = ds.vr-mean(ds.vr);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   376
ds.wr = ds.wr-mean(ds.wr);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   377
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   378
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
% 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
   381
% 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
   382
% 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
   383
% 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
   384
% 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
   385
% 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
   386
% 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
   387
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   388
if ~isfield(d,'zd')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   389
  dz2 = abs(nmean(diff(d.z)));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   390
else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   391
  dz2 = diff_type*abs(mean(diff(d.zd)));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   392
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   393
if isfield(d,'down')
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   394
  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
   395
else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   396
  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
   397
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   398
ds.ensemble_vel_err = ds.wse*fac;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   399
dr.ensemble_vel_err = ds.wse*fac;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   400
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
% store result and give text output
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   404
%
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   405
dr.u_shear_method = ds.ur;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   406
dr.v_shear_method = ds.vr;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   407
dr.w_shear_method = ds.wr;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   408
uds = nstd(dr.u-mean(dr.u)-ds.ur);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   409
vds = nstd(dr.v-mean(dr.v)-ds.vr);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   410
uvds = sqrt(uds^2+vds^2);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   411
disp(['    Inversion average error : ',num2str(nmean( dr.uerr ) ),' m/s'])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   412
if uvds>nmean(dr.uerr)*1.5
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   413
  error_increase_factor = 1/nmean(dr.uerr)*uvds/1.5;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   414
  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
   415
  disp(warn)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   416
  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
   417
  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
   418
  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
   419
  dr.uerr = dr.uerr * error_increase_factor;
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   420
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   421
disp(['    Final average error : ',num2str(nmean( dr.uerr ) ),' m/s'])
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   422
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   423
%--------------------------------------------------
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   424
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   425
function x = diff2(x,k,dn)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   426
%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
   427
%       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
   428
%       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
   429
%	matrix, the differences are calculated down each column:
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   430
%       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
   431
%	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
   432
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   433
%	J.N. Little 8-30-85
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   434
%	Copyright (c) 1985, 1986 by the MathWorks, Inc.
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   435
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   436
if nargin < 2,	k = 1; end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   437
if nargin < 3,	dn = 2; end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   438
for i=1:k
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   439
	[m,n] = size(x);
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   440
	if m == 1
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   441
                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
   442
	else
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   443
                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
   444
	end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   445
end
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   446
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   447
%----------------------------------------------------------------------
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   448
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   449
function m = nmin(d)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   450
	m = min(d(find(isfinite(d))));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   451
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   452
function m = nmax(d)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   453
	m = max(d(find(isfinite(d))));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   454
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   455
function m = nmean(d)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   456
	m = mean(d(find(isfinite(d))));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   457
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   458
function m = nstd(d)
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   459
	m = std(d(find(isfinite(d))));
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   460
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   461
624b1ed6e9c9 version on whoosher Apr 10. 2021
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
   462