-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathdelftsdrs.m
50 lines (42 loc) · 1.03 KB
/
delftsdrs.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
function [delftmdr,delftpdr,delftsprd] = delftsdrs(ef2d,fr,delf,nang,dtheta)
ainc = pi/180 * dtheta;
nfre = length(fr);
ife = nfre - 1;
ide = nang;
idt = -1;
dire = 270 - dtheta.*[0:ide-1];
dfsq = repmat(delf,[1 nang]);
etf = sum(dfsq(1:ife,:).*(ef2d(1:ife,:) + ef2d(2:ife+1,:)));
ii = find(etf == max(etf));
etop = etf(ii);
idt = ii;
if idt > 0
delftpdr = dire(max(idt));
if delftpdr < 0
delftpdr = delftpdr + 360;
else
delftpdr = -999.;
end
end
[sint cost sin2t cos2t] = angle_onlns(dtheta,nang);
edt = etf*ainc;
sum0 = sum(edt);
eex = sum(cost.*edt);
eey = sum(sint.*edt);
if sum0 > 0
ff = sqrt((eex*eex + eey*eey)/(sum0*sum0));
if ff <= 1.0
delftsprd = 180/pi*sqrt(2.0 - 2.0*ff);
else
delftsprd = 0.0;
end
delftmdr = 180/pi*atan2(eey,eex+1.0e-10);
delftmdr = 270 - delftmdr;
if delftmdr < 0
delftmdr = delftmdr + 360;
end
else
delftmdr = -999.;
delfttpdr = -999.;
delftsprd = -999.;
end