Newer
Older
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
53
54
55
56
57
58
function cl31 = cat_acas_cl31(indir)
% cat_acas_cl31 - concatenate all the CL31 data
%
% cl31 = cat_acas_cl31(indir)
%
% INPUT
% indir - directory to read CL31 *.mat files from
%
% OUTPUT
% cl31 - structure with fields as shown in read_cl31.m
%
% JZP March 2018
files = dir([indir,'/*cl31.mat']);
% concatenate all the ndata into long time series
pp = 1; LL = 0;
for n = 1:length(files)
pp = pp+LL;
CL = load([indir,'/',files(n).name]);
% disp(['catenating ',num2str(n),' of ',num2str(length(files)),' : ',...
% files(n).name]);
if n == 1 % setup empty data structures, f = 30 sec, slightly overlong
cl31.mday = ones([length(files)*150, 1])*NaN;
cl31.doy = ones([length(files)*150, 1])*NaN;
cl31.cloudcode = ones([length(files)*150, 1])*NaN;
cl31.base_ht = ones([length(files)*150, 3])*NaN;
cl31.vert_vis = ones([length(files)*150, 1])*NaN;
cl31.high_sig = ones([length(files)*150, 1])*NaN;
cl31.sc_frac = ones([length(files)*150, 5])*NaN;
cl31.sc_ht = ones([length(files)*150, 5])*NaN;
cl31.bs_prof = ones([length(files)*150, 770])*NaN;
cl31.ceil_range = CL.cl31.ceil_range;
fields = fieldnames(cl31);
end
LL = length(CL.cl31.mday);
for nn = 1:length(fields) -1
cl31.(fields{nn})(pp:pp+LL-1,:) = CL.cl31.(fields{nn});
end
end
% clean up any bad timestamps
ii = isnan(cl31.mday);
for n = 1:length(fields)-1
cl31.(fields{n}) = cl31.(fields{n})(~ii,:);
end
% Ensure unique time stamps
[~,ii] = unique(cl31.mday);
for n = 1:length(fields)-1
cl31.(fields{n}) = cl31.(fields{n})(ii,:);
end