function plot_SalTempVel( hTsgGUI, hAxes ) % Function to plot the Salinity, Temperature TSG data as well as the % ship velocity % % Input % ----- % hTsgGUI ............ Handel to the main user interface % hPlotAxes .......... Handels to the 3 graphic axes % % Output % ------ % none % % $Id$ % Retrieve named application data % ------------------------------- tsg = getappdata( hTsgGUI, 'tsg_data'); % Plot the Salinity with the right color code % ------------------------------------------- axes( hAxes(1)); % plot all data in white to draw first axes before hold on if ind of % tsg.SSPS_QC == NO_CONTROL is empty % ---------------------------------- plot(hAxes(1), tsg.DAYD, tsg.SSPS, '.w'); hold on; % get list of keys from hashtable tsg.qc.hash, defined inside % tsg_initialisation.m % ----------------------------------------------------------- qc_list = get(tsg.qc.hash); % iterate (loop) on each key store inside hastable % ------------------------------------------------ for i=1:numel(qc_list) % get key and some values in hashtable % ------------------------------------ key = qc_list{i}; state = get(tsg.qc.hash, key, 'state'); code = get(tsg.qc.hash, key, 'code'); color = get(tsg.qc.hash, key, 'color'); % plot only for valid context menu (set to 'on') % -------------------------------_______------- if strcmp( state, 'on') % plot tsg salinity sample with right code/color % ---------------------------------------------- ind = find(tsg.SSPS_QC == code ); plot(hAxes(1), tsg.DAYD(ind), tsg.SSPS(ind), strcat('.', color)); end end % Plot filtered salinity for test % ------------------------------- plot(hAxes(1), tsg.DAYD, tsg.ssps.smooth.val, 'k'); hold off; % refresh QC statistic panel % -------------------------- display_QC( hTsgGUI, hAxes ); % set HandleVisibility 'On' to 'Callback' on first axes % ----------------------------------------------------- % set(hAxes(1), 'HandleVisibility', 'Callback'); % Plot Temperature and ship velocity with no qc color code % --------------------------------------------------------- plot(hAxes(2), tsg.DAYD, tsg.SSJT, '.'); plot(hAxes(3), tsg.DAYD, tsg.SPDC, '.k'); % Formatted x-TIME axes % --------------------- set(hAxes(1), 'Xlim', [tsg.DAYD(1)-1 tsg.DAYD(end)+1]); set(hAxes(2), 'Xlim', [tsg.DAYD(1)-1 tsg.DAYD(end)+1]); set(hAxes(3), 'Xlim', [tsg.DAYD(1)-1 tsg.DAYD(end)+1]); datetick(hAxes(1), 'x', 'keeplimits'); datetick(hAxes(2), 'x', 'keeplimits'); datetick(hAxes(3), 'x', 'keeplimits'); % Write some 'Y' label % ------------------ set(get(hAxes(1), 'Ylabel'), 'String', 'Salinity'); set(get(hAxes(2), 'Ylabel'), 'String', 'Temperature (�C)'); set(get(hAxes(3), 'Ylabel'), 'String', 'Ship Velocity (knots)'); % Make the axes visible % --------------------- set(hAxes(1), 'Visible', 'on' ); set(hAxes(2), 'Visible', 'on' ); set(hAxes(3), 'Visible', 'on' ); % The 3 axes will behave identically when zoomed and panned % --------------------------------------------------------- linkaxes([hAxes(1),hAxes(2),hAxes(3)], 'x'); end