1 function [d,p]=getbtrack(d,p); |
1 function [d,p]=getbtrack(d,p); |
2 % function [d,p]=getbtrack(d,p); |
2 % function [d,p]=getbtrack(d,p); |
3 % |
3 % |
4 % create own bottom track in addition to the one used before |
4 % create own bottom track in addition to the one used before |
5 % |
5 % |
|
6 |
|
7 %====================================================================== |
|
8 % G E T B T R A C K . M |
|
9 % doc: Wed Sep 4 17:07:35 2019 |
|
10 % dlm: Wed Sep 4 17:09:37 2019 |
|
11 % (c) 2019 A.M. Thurnherr |
|
12 % uE-Info: 108 68 NIL 0 0 72 0 2 8 NIL ofnI |
|
13 %====================================================================== |
|
14 |
|
15 % CHANGES BY ANT: |
|
16 % Sep 4, 2019: - fixed minor typo (GK suggestion) |
6 |
17 |
7 % force own distance to RDI bottom track |
18 % force own distance to RDI bottom track |
8 p=setdefv(p,'bottomdist',0); |
19 p=setdefv(p,'bottomdist',0); |
9 % "manual" bottom track for down looker |
20 % "manual" bottom track for down looker |
10 p=setdefv(p,'btrk_mode',3); |
21 p=setdefv(p,'btrk_mode',3); |
23 |
34 |
24 % convert echo amplitude to relative target strength |
35 % convert echo amplitude to relative target strength |
25 % at=0.039; % attenuation dB/m for 150 kHz |
36 % at=0.039; % attenuation dB/m for 150 kHz |
26 % at=0.062; % attenuation dB/m for 300 kHz |
37 % at=0.062; % attenuation dB/m for 300 kHz |
27 if d.down.Frequency==300, |
38 if d.down.Frequency==300, |
28 p=setdefv(p,'ts_att_dn',0.06); |
39 p=setdefv(p,'ts_att_dn',0.062); |
29 else |
40 else |
30 p=setdefv(p,'ts_att_dn',0.039); |
41 p=setdefv(p,'ts_att_dn',0.039); |
31 end |
42 end |
32 d.tg(d.izd,:)=targ(d.ts(d.izd,:),d.zd,p.ts_att_dn); |
43 d.tg(d.izd,:)=targ(d.ts(d.izd,:),d.zd,p.ts_att_dn); |
33 |
44 |
48 |
59 |
49 if p.btrk_mode>=1 |
60 if p.btrk_mode>=1 |
50 if p.btrk_ts>0 |
61 if p.btrk_ts>0 |
51 |
62 |
52 disp(' using increased bottom echo amplitudes to create bottom track') |
63 disp(' using increased bottom echo amplitudes to create bottom track') |
53 % don't use first bin |
|
54 fitb1=1; |
64 fitb1=1; |
55 zd=d.zd(fitb1:end); |
65 zd=d.zd(fitb1:end); |
56 ead=d.tg(d.izd(fitb1:end),:); |
66 ead=d.tg(d.izd(fitb1:end),:); |
57 % fit parabola to locate bottom |
67 % fit parabola to locate bottom |
58 [zmead,mead,imead]=localmax2(zd',ead); |
68 [zmead,mead,imead]=localmax2(zd',ead); |
92 end |
102 end |
93 end |
103 end |
94 |
104 |
95 disp([' use ',num2str(p.btrk_below),... |
105 disp([' use ',num2str(p.btrk_below),... |
96 ' bins below maximum target strength for own bottom track velocity']) |
106 ' bins below maximum target strength for own bottom track velocity']) |
97 % locate acceptable bottom tracks (don't accept first/last bin) |
107 % locate acceptable bottom tracks (don't accept first two and last bin) |
98 ii=find(dts>p.btrk_ts & ... |
108 ii=find(dts>p.btrk_ts & ... |
99 zmead>min(p.btrk_range) & zmead<max(p.btrk_range) & ... |
109 zmead>min(p.btrk_range) & zmead<max(p.btrk_range) & ... |
100 imeadbv<(nbin-1) & imeadbv>fitb1); |
110 imeadbv<(nbin-1) & imeadbv>fitb1); |
101 |
111 |
102 if length(ii)>0 |
112 if length(ii)>0 |