Skip to content
Snippets Groups Projects
maxSSPSQC.m 1.89 KiB
Newer Older
function maxSSPSQC(hMainFig)
%
% This function is called after option/preferences menu has been activated
% and flag salinity data where SSPS > max as BAD if test is on
%
% Input
% -----
% hMainFig ............ Handle to the main user interface
%
alory's avatar
alory committed
% $Id: maxSSPSQC.m 543 2010-01-14 13:36:40Z jgrelet $

% Get the data from the application GUI
% -------------------------------------
tsg = getappdata( hMainFig, 'tsg_data');

% Get BAD code value
% ----------------------
badCode = tsg.qc.hash.BAD.code;

ssps_max = tsg.preference.ssps_max_string;

% If necessary replace a comma by a point
% ---------------------------------------
ssps_max = regexprep(ssps_max, ',', '.');

% If bias not a numeric, str2double return a NaN
% ----------------------------------------------
ssps_max = str2double( ssps_max );

if isnumeric( ssps_max ) && ~isnan( ssps_max )

  % Set salinity QC to BAD for ssps < ssps_max
  % -----------------------------------------------------
  ind = find(tsg.SSPS > ssps_max);
alory's avatar
alory committed
  
alory's avatar
alory committed
      
      % store last QC in history for undo
      % ---------------------------------
      
      if (tsg.qc_history_pointer == 0)
          tsg.qc_history_state = int8(zeros(size(tsg.SSPS_QC,1),tsg.qc_history_size));
      end
      
      if (tsg.qc_history_pointer == tsg.qc_history_size)
          tsg.qc_history_state = circshift(tsg.qc_history_state,[0 -1]);
      else
          tsg.qc_history_pointer = tsg.qc_history_pointer + 1;
      end
      
      tsg.qc_history_state(:,tsg.qc_history_pointer) = tsg.SSPS_QC;
      tsg.qc_redo_possible = 0;
      
      tsg.SSPS_QC(ind) = castByteQC( badCode, ind );
      
  end

  % Save tsg structure
  % ------------------
  setappdata( hMainFig, 'tsg_data', tsg);
  
else
  
  msgbox('Enter a numeric value in the REFERENCE menu', 'ssps QC',...
         'error', 'modal');

end

end