Newer
Older
function error = concatSample( hMainFig, data )
%
% Function that concatenates the sample structure data
% to the 'tsg' structure with _EXT fields
%
% input
% hMainFig .... handle to the tsgqc main program
% data ........ structure of _EXT data to trasfer to the tsg structure
%
% output
%
% return ...... 1 data structure transfered to tsg structure
% -1 nothing has been done
error = 1;
tsg = getappdata( hMainFig, 'tsg_data' );
% Get NO_CONTROL code value
% -------------------------
NO_CONTROL = get(tsg.qc.hash, 'NO_CONTROL', 'code');
if isempty( tsg.DAYD_EXT )
tsg.DAYD_EXT = data.DAYD_EXT;
tsg.DATE_EXT = data.DATE_EXT;
tsg.LATX_EXT = data.LATX_EXT;
tsg.LONX_EXT = data.LONX_EXT;
tsg.SSPS_EXT = data.SSPS_EXT;
tsg.SSPS_EXT_QC = int8(data.SSPS_EXT_QC);
tsg.SSPS_EXT_TYPE = char(data.SSPS_EXT_TYPE);
tsg.SSPS_EXT_ANALDATE = char(data.SSPS_EXT_ANALDATE);
tsg.SSPS_EXT_BOTTLE = data.SSPS_EXT_BOTTLE;
tsg.SSTP_EXT = data.SSTP_EXT;
tsg.SSTP_EXT_QC = int8(data.SSTP_EXT_QC);
tsg.SSTP_EXT_TYPE = char(data.SSTP_EXT_TYPE);
else
errmsg = {'Samples already loaded '; ' '; ...
'Do you want to replace the existing samples ?'};
button = questdlg(errmsg, 'Sample','Yes', 'No', 'No');
switch button
case 'Yes'
tsg.DAYD_EXT = data.DAYD_EXT;
tsg.DATE_EXT = data.DATE_EXT;
tsg.LATX_EXT = data.LATX_EXT;
tsg.LONX_EXT = data.LONX_EXT;
tsg.SSPS_EXT = data.SSPS_EXT;
tsg.SSPS_EXT_QC = int8(data.SSPS_EXT_QC);
tsg.SSPS_EXT_TYPE = char(data.SSPS_EXT_TYPE);
tsg.SSPS_EXT_ANALDATE = char(data.SSPS_EXT_ANALDATE);
tsg.SSPS_EXT_BOTTLE = data.SSPS_EXT_BOTTLE;
tsg.SSTP_EXT = data.SSTP_EXT;
tsg.SSTP_EXT_QC = int8(data.SSTP_EXT_QC);
tsg.SSTP_EXT_TYPE = char(data.SSTP_EXT_TYPE);
case 'No'
errmsg = {'Samples already loaded '; ' '; ...
'Do you really want to concatenate this file with the existing samples ?'};
button2 = questdlg(errmsg, 'Sample','Yes', 'No', 'No');
switch button2
case 'No'
% Nothing is done
% ---------------
error = -1;
return;
otherwise
% Test if at least one variable (SSPS or SSTP) exists. If one is missing
% create the array filled with NaN
% ----------------------------------------------------------------------
if isempty(tsg.SSPS_EXT) && isempty(tsg.SSTP_EXT)
error = -1;
return;
end
if isempty(tsg.SSTP_EXT) && ~isempty(tsg.SSPS_EXT)
tsg.SSTP_EXT = NaN * ones( size( tsg.DAYD_EXT ) );
label = 'UNKN';
tsg.SSTP_EXT_TYPE = label( ones(length(tsg.SSTP_EXT),1), :);
tsg.SSTP_EXT_QC = NO_CONTROL * int8(ones( size( tsg.SSTP_EXT )));
end
if isempty(tsg.SSPS_EXT) && ~isempty(tsg.SSTP_EXT)
tsg.SSPS_EXT = NaN * ones( size( tsg.DAYD_EXT ) );
tsg.SSPS_EXT_TYPE = label( ones(length(tsg.SSTP_EXT),1), :);
tsg.SSPS_EXT_QC = NO_CONTROL * int8(ones( size( tsg.SSTP_EXT )));
label = '19500101000000';
tsg.SSPS_EXT_ANALDATE = label( ones(length(tsg.SSTP_EXT),1), :);
tsg.SSPS_EXT_BOTTLE = zeros( size( tsg.DAYD_EXT ) );
end
tsg.DAYD_EXT = [tsg.DAYD_EXT; data.DAYD_EXT];
tsg.DATE_EXT = [tsg.DATE_EXT; data.DATE_EXT];
tsg.LATX_EXT = [tsg.LATX_EXT; data.LATX_EXT];
tsg.LONX_EXT = [tsg.LONX_EXT; data.LONX_EXT];
tsg.SSPS_EXT = [tsg.SSPS_EXT; data.SSPS_EXT];
tsg.SSPS_EXT_BOTTLE = [tsg.SSPS_EXT_BOTTLE; data.SSPS_EXT_BOTTLE];
tsg.SSPS_EXT_QC = [tsg.SSPS_EXT_QC; int8(data.SSPS_EXT_QC)];
tsg.SSPS_EXT_TYPE = strvcat(tsg.SSPS_EXT_TYPE,...
char(data.SSPS_EXT_TYPE));
tsg.SSPS_EXT_ANALDATE = strvcat(tsg.SSPS_EXT_ANALDATE,...
char(data.SSPS_EXT_ANALDATE));
tsg.SSTP_EXT = [tsg.SSTP_EXT; data.SSTP_EXT];
tsg.SSTP_EXT_QC = [tsg.SSTP_EXT_QC; int8(data.SSTP_EXT_QC)];
tsg.SSTP_EXT_TYPE = strvcat(tsg.SSTP_EXT_TYPE, ...
char(data.SSTP_EXT_TYPE));
end
end
end
% Sort the struct tsg - increasing time.
% -----------------------------------------
if ~isempty(tsg.DAYD_EXT)
[tsg.DAYD_EXT, iOrder] = sort(tsg.DAYD_EXT);
tsg.DATE_EXT = tsg.DATE_EXT(iOrder,:);
tsg.LATX_EXT = tsg.LATX_EXT(iOrder);
tsg.LONX_EXT = tsg.LONX_EXT(iOrder);
tsg.SSPS_EXT = tsg.SSPS_EXT(iOrder);
tsg.SSPS_EXT_QC = tsg.SSPS_EXT_QC(iOrder);
tsg.SSPS_EXT_BOTTLE = tsg.SSPS_EXT_BOTTLE(iOrder);
tsg.SSPS_EXT_TYPE = tsg.SSPS_EXT_TYPE(iOrder,:);
tsg.SSPS_EXT_ANALDATE = tsg.SSPS_EXT_ANALDATE(iOrder,:);
tsg.SSTP_EXT = tsg.SSTP_EXT(iOrder);
tsg.SSTP_EXT_QC = tsg.SSTP_EXT_QC(iOrder);
tsg.SSTP_EXT_TYPE = tsg.SSTP_EXT_TYPE(iOrder,:);
% _TYPE must be of type CHAR*4
% ----------------------------
tsg.SSPS_EXT_TYPE = char( blanks(4), tsg.SSPS_EXT_TYPE);
tsg.SSPS_EXT_TYPE(1,:) = [];
tsg.SSTP_EXT_TYPE = char( blanks(4), tsg.SSTP_EXT_TYPE);
tsg.SSTP_EXT_TYPE(1,:) = [];
end
% Save the data in the application GUI
% ------------------------------------
setappdata( hMainFig, 'tsg_data', tsg );
end