-
Notifications
You must be signed in to change notification settings - Fork 0
/
OmBLine_up_O_B.m
52 lines (40 loc) · 1.02 KB
/
OmBLine_up_O_B.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
51
52
% O minus B monitoring: Line up Obs and Bkg
function X = OmBLine_up_O_B(O,X)
% Settings
maxwndw = 900; % +/-15'
% Set dimensions
ntime = length(X.time);
nfrqs = length(O.channels);
nangs = length(O.angles_el);
X.channels = O.channels;
X.angles_el = O.angles_el;
X.TbObs = nan(nfrqs,nangs,ntime);
X.cld31 = nan(ntime,1);
X.std31 = nan(ntime,1);
for it = 1:ntime
indx_O = find( abs(X.time(it) - O.time) < maxwndw );
if isempty(indx_O)
X.TbObs(:,:,it) = nan(nfrqs,nangs,1);
X.cld31(it) = NaN;
X.std31(it) = NaN;
else
%[it,indx_O]
X.TbObs(:,:,it) = O.y(:,:,indx_O);
X.cld31(it) = O.cld31(indx_O);
X.std31(it) = O.std31(indx_O);
end
end
% remove Nans (i.e. time slots where obs are not available)
indx = isnan(X.cld31);
X.time(indx) = [];
X.ps(indx) = [];
X.T(:,indx) = [];
X.P(:,indx) = [];
X.Z(:,indx) = [];
X.Q(:,indx) = [];
X.LWC(:,indx) = [];
X.LWP(indx) = [];
X.TbObs(:,:,indx) = [];
X.cld31(indx) = [];
X.std31(indx) = [];
return