function plot_Climatology(hMainFig, hPlotAxes) % Function to plot mean climatology and standard deviation % % Input % ----- % hTsgGUI ............ Handel to the main user interface % hPlotAxes .......... Handels to the 3 graphic axes % % Output % ------ % none % % $Id$ % Get data % ----------------------- tsg = getappdata( hMainFig, 'tsg_data' ); % Get line handles % ---------------- hLine1 = get( hPlotAxes(1), 'UserData'); hLine2 = get( hPlotAxes(2), 'UserData'); % Read surface climatology (annual, seasonal or monthly) % ------------------------------------------------------ read_climatology(hMainFig, tsg.levitus.type); % select time dimension for climatology dim_time = tsg.levitus.time; % round positive latitude and Longitude toward zero % ------------------------------------------------- ind = find(tsg.LATX > 0); lat(ind) = fix(tsg.LATX(ind)) + 0.5; ind = find(tsg.LONX > 0); lon(ind) = fix(tsg.LONX(ind)) + 0.5; % rounds negative latitude and Longitudeto the nearest lowest integers % --------------------------------------------------------------------- ind = find(tsg.LATX <= 0); lat(ind) = floor(tsg.LATX(ind)) + 0.5; ind = find(tsg.LONX <= 0); lon(ind) = floor(tsg.LONX(ind)) + 0.5; % Calculates differences between adjacent elements of X. % 0 if adajacent latitude or longitude are equal % - 1 or -1 otherwise % ------------------------------------------------------------ lat_diff = [diff( lat )'; 0]; lon_diff = [diff( lon )'; 0]; % Select latitude and longitude % ----------------------------- ind = find(abs(lat_diff) == 1 | abs(lon_diff == 1)); lat2 = lat( ind ); lon2 = lon( ind ); dayd = tsg.DAYD( ind ); ssjt = tsg.SSJT( ind ); ssps = tsg.SSPS( ind ); % Get Climatology % LATX(80) = -0.5 et LATX(81) = 0.5 % LONX(180) = -0.5 et LONX(181) = 0.5 % ---------------- axes( hPlotAxes(1) ); mean_sstp = zeros(size(ind)); mean_ssps = zeros(size(ind)); std_sstp = zeros(size(ind)); std_ssps = zeros(size(ind)); for ii=1:length(ind) ilat = find(tsg.levitus.data.WOA01_LATX == lat2(ii)); ilon = find(tsg.levitus.data.WOA01_LONX == lon2(ii)); mean_sstp(ii) = tsg.levitus.data.WOA01_MEAN_SSTP(dim_time,1,ilat,ilon); mean_ssps(ii) = tsg.levitus.data.WOA01_MEAN_SSPS(dim_time,1,ilat,ilon); std_sstp(ii) = tsg.levitus.data.WOA01_STD_SSTP(dim_time,1,ilat,ilon); std_ssps(ii) = tsg.levitus.data.WOA01_STD_SSPS(dim_time,1,ilat,ilon); end % Plot mean salinity climatology % ------------------------------ hLine1.meanClim = line( ... dayd, mean_ssps,'Linestyle', '-', 'Color','k'); % Plot with 3 standard deviation % ------------------------------ hLine1.stdClimPlus = line( ... dayd, mean_ssps + 3 * std_ssps ,'Linestyle', '-', 'Color','r'); hLine1.stdClimMinus = line( ... dayd, mean_ssps - 3 * std_ssps ,'Linestyle', '-', 'Color','r'); % Plot mean temperature climatology % --------------------------------- axes( hPlotAxes(2)); hLine2.meanClim = line( ... dayd, mean_sstp,'Linestyle', '-', 'Color','k'); hLine2.stdClimPlus = line( ... dayd, mean_sstp + 3 * std_sstp ,'Linestyle', '-', 'Color','r'); hLine2.stdClimMinus = line( ... dayd, mean_sstp - 3 * std_sstp ,'Linestyle', '-', 'Color','r'); % Store the handle of the bucketline % ---------------------------------- set( hPlotAxes(1), 'UserData', hLine1 ); set( hPlotAxes(2), 'UserData', hLine2 ); % save tsg structure % ------------------ setappdata( hMainFig, 'tsg_data', tsg ); end