Newer
Older
function plot_Climatology(hMainFig, hPlotAxes)

jacques.grelet_ird.fr
committed
% 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$
% Read surface climatology (annual, seasonal or monthly)
% ------------------------------------------------------
read_Climatology(hMainFig);
% Get data after read_Climatology because it could be change tsg.levitus.type
% -------------------------------------------------------------------------
tsg = getappdata( hMainFig, 'tsg_data' );
% get climatology depth: 0 or 10m -> indice 1 or 2
% -------------------------------------------------
depth = tsg.preference.levitus_depth_value;
% if reading error, tsg.levitus.data is empty, no action
% ------------------------------------------------------
if isempty(tsg.levitus.data)
return
end

jacques.grelet_ird.fr
committed
% get last selected climatology structure
% ---------------------------------------
s = get(findobj('Tag', 'TAG_UIMENU_CLIMATO_MAIN'), 'Userdata');
% select time dimension for climatology form saved structure s
% ------------------------------------------------------------
time_dim = s.time;

jacques.grelet_ird.fr
committed

jacques.grelet_ird.fr
committed
% shift to [-180 180] longitude range if needed
% ---------------------------------------------
if ~isempty(tsg.indcross)
lon=mod(lon+180,360)-180;
end

jacques.grelet_ird.fr
committed

jacques.grelet_ird.fr
committed
% valid parameters in climatology file are:
% -----------------------------------------
valid_parameters = {'SSTP','SSPS','DOX1'};

jacques.grelet_ird.fr
committed
% Get Climatology
% LATX(80) = -0.5 et LATX(81) = 0.5
% LONX(180) = -0.5 et LONX(181) = 0.5
% ---------------------------------------------
for i = 1:2
% get current parameter
% ----------------------
% for climatology, plot SSJT as SSTP (SST)
% ----------------------
if strcmp( para, 'SSJT' )
para = 'SSTP';
end
% goto next loop if parameter is not a member of climatology file
% ----------------------
if isempty(find(strcmp(para, valid_parameters),1))
continue
end
meanc = zeros(size(dayd));
stdc = zeros(size(dayd));
latc=tsg.levitus.data.WOA_LATX;
lonc=tsg.levitus.data.WOA_LONX;
clim=tsg.levitus.data.(['WOA_MEAN_' para]);
clim=squeeze(clim(time_dim,depth,:,:));
meanc=interp2(lonc,latc,clim,lon,lat);
sclim=tsg.levitus.data.(['WOA_STD_' para]);
sclim=squeeze(sclim(time_dim,depth,:,:));
stdc=interp2(lonc,latc,sclim,lon,lat);
% Select the axes
% ---------------
axes( hPlotAxes(i) );

jacques.grelet_ird.fr
committed
% Plot mean salinity climatology
% ------------------------------
'Tag', ['TAG_LINE_CLIMATO_MEAN_' para], 'Linestyle', '-', 'Color','k');

jacques.grelet_ird.fr
committed
% Plot with 3 standard deviation
% ------------------------------
line(dayd, meanc + 3 * stdc, ...
'Tag', ['TAG_LINE_CLIMATO_STDDEV_PLUS_' para], 'Linestyle', '-', 'Color','r');
line(dayd, meanc - 3 * stdc, ...
'Tag', ['TAG_LINE_CLIMATO_STDDEV_MINUS_' para], 'Linestyle', '-', 'Color','r');
gael.alory_legos.obs-mip.fr
committed
% Plot marker if climatological value has no neighbour
% --------------------------------------------------
indnon=find(isfinite([meanc',nan]) & isnan(circshift([meanc',nan],[0 1]))...
& isnan(circshift([meanc',nan],[0 -1])));
gael.alory_legos.obs-mip.fr
committed
if ~isempty(indnon)
line(dayd(indnon), meanc(indnon), ...
gael.alory_legos.obs-mip.fr
committed
'Tag', ['TAG_LINE_CLIMATO_MEAN_' para], 'Linestyle', 'none', 'Color','k','Marker','d');
line(dayd(indnon), meanc(indnon) + 3 * stdc(indnon), ...
gael.alory_legos.obs-mip.fr
committed
'Tag', ['TAG_LINE_CLIMATO_STDDEV_PLUS_' para], 'Linestyle', 'none', 'Color','r','Marker','d');
line(dayd(indnon), meanc(indnon) - 3 * stdc(indnon), ...
gael.alory_legos.obs-mip.fr
committed
'Tag', ['TAG_LINE_CLIMATO_STDDEV_MINUS_' para], 'Linestyle', 'none', 'Color','r','Marker','d');
end

jacques.grelet_ird.fr
committed
end

jacques.grelet_ird.fr
committed
% save tsg structure
% ------------------
setappdata( hMainFig, 'tsg_data', tsg );