Skip to content
Snippets Groups Projects
cat_acas_cl31.m 1.69 KiB
Newer Older
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