Skip to content
Snippets Groups Projects
read_file_woa01.m 1.51 KiB
Newer Older
function levitus = read_file_woa01(file)
% a mettre dans la classe de base oceano puisque commun a tous
%
% read WOA01 Levitus T-S-O2, Stddev & nb_obs Netcdf file in memory


filesfound = checkforfiles( file );
if filesfound == 0; 
   warning(['Couldn''t find ', file]);
   levitus = -1;
   return;
end

% a commenter en production
% t = cputime;

% il existe un "bug" dans netcdf ligne 409, ncitem retourne une
% erreur dans la variable result
nc = netcdf(which(file),'nowrite');

%recupere les variables et les mets de le workspace
variables = var(nc);

% list les variables du fichier et sort
% if strcmp( variable, 'list' )
%     disp(char(ncnames(var(nc))));
%     return
% end

% Initialise la waitbar de chargement du fichier netCDF
wb = waitbar(0,['Loading file: ' file ' Please  wait...']);

for i = 1:length(variables)
  value = variables{i}(:);
  % je n'ai pas reussi a utiliser autonan avec l'attribue FillValue_
  value(value == fillval(variables{i})) = NaN;
  % Assign dynamiquely variable in struct levitus.
  levitus.(name(variables{i})) = value;
  % set(wb, 'Title', name(variables{i}));
  waitbar( i/length(variables), wb);
end

close(wb);
close(nc);

% a commenter en production
% e = cputime-t
% 
% builtin( 'set', findobj( 'Tag', 'main' ), 'UserData', self );

%----------------------------------------------------------------------
%----------------------------------------------------------------------
function filesfound = checkforfiles( file )

if exist(file,'file');
   filesfound = 1;
else 
   filesfound = 0;
end