function read_Climatology(hMainFig) % read_Climatology(hMainFig) % Function to read climatology and store result to tsg structure % % Input % ----- % tsg ............ structure tsg % type ............ String describing climatology (annual,sesonal or % monthly) % % Output % ------ % none ............ but update tsg structure with setappdata % % Caution: % -------- % before V1.0RC5, structure was levitus.WOA01_TIME with DEPH = [0] % after V1.0RC5, structure is levitus.WOA_TIME with DEPH = [0, 10] and % works with new WOA01_*_surf.nc & WOA05_*_surf.nc files % % $Id$ global DEBUGGING % Get data % ----------------------- tsg = getappdata( hMainFig, 'tsg_data' ); % get last selected climatology % ----------------------------- s = get(findobj('Tag', 'TAG_UIMENU_CLIMATO_MAIN'), 'Userdata'); % get selected levitus version in preferencesForm % ----------------------------------------------- lev_version = tsg.preference.levitus_version{tsg.preference.levitus_value}; % tsg.levitus.type = 'none' or new select climatology is different, load file % ------------------------------------------------------------------------- if strcmp( tsg.levitus.type, 'none') || ~strcmp(tsg.levitus.type, s.type) ... || ~strcmp(lev_version, tsg.levitus.version) % construct the climatology filename and try to found it % ------------------------------------------------------- theFile = [lower(lev_version) '_' s.type '_surf.nc']; file = which(theFile); % prepare full file ftp name % -------------------------- ftp = 'ftp://ftp.ifremer.fr/ifremer/ird/us191/oceano/lib/matlab/'; ftpLink = strcat(ftp, theFile); % check for file existence % ------------------------ if ~exist(file, 'file') % display ftp download adress in hypertext link in Matlab command Window % ---------------------------------------------------------------------- fprintf(1,'download from ftp directory: <a href="%s">%s</a>\n', ftp, ftp); fprintf(1,'direct link: <a href="%s">%s</a>\n', ftpLink, ftpLink); % show error dialog box with help to get climatology file % ------------------------------------------------------- errordlg({['NetCDF climatology file: ', theFile], ... 'not present in you Matlab path.',... 'Check your Matlab path or download the file from',... ftp, .... 'see hypertext link in Matlab Command Window'},... 'NetCDF climatology file access error'); % disable climatology toolbar hdl = findobj( '-regexp', 'tag', 'PUSHTOOL_CLIM'); set( hdl, 'state', 'off' ); return; end % open netcdf climatology file % ---------------------------- levitus = read_file_woa(file); if DEBUGGING fprintf(1, 'Read climatology file: %s\n', file); end % check if the new climatology format is used: % before V1.0RC5, structure was levitus.WOA01_TIME % after V1.0RC5, structure is levitus.WOA_TIME and works with new % WOA01_*_surf.nc & WOA05_*_surf.nc files % ---------------------------------------------------------------- % if ~isfield(levitus, 'WOA_TIME') % % end % update tsg.levitus.version % -------------------------- tsg.levitus.version = lev_version; % test for structure concordance % ------------------------------ if isstruct(levitus) % ok, save last climato state in tsg.levitus structure % ---------------------------------------------------- tsg.levitus.type = s.type; tsg.levitus.data = levitus; else % display ftp download adress in hypertext link in Matlab command Window % ---------------------------------------------------------------------- fprintf(1,'download from ftp directory: <a href="%s">%s</a>\n', ftp, ftp); fprintf(1,'direct link: <a href="%s">%s</a>\n', ftpLink, ftpLink); % show error dialog box with help to get climatology file % ------------------------------------------------------- errordlg({['NetCDF climatology file: ' theFile], ... 'is wrong type or obsolete. Internal structure as changed',... 'Download new one from: ',... ftp,... 'see hypertext link in Matlab Command Window'},... 'NetCDF climatology file error'); % init tsg.levitus state % ---------------------- tsg.levitus.data = []; tsg.levitus.type = 'none'; % disable climatology toolbar hdl = findobj( '-regexp', 'tag', 'PUSHTOOL_CLIM'); set( hdl, 'state', 'off' ); end end % save tsg structure % ------------------ setappdata( hMainFig, 'tsg_data', tsg );