Global Index (short | long) | Local contents | Local Index (short | long)
[dat, lat, lon, lev] = ...
[dat, lat, lon, lev] = ... read_clim(fstr, pathstr, lims, levind, varname);
This function calls | |
---|---|
function [dat, lat, lon, lev] = ... read_clim(fstr, pathstr, lims, levind, varname); %lims = [40 300 -30 30]; %levind = 1; nlev = length(levind); %varname = 'PRECC'; % Get filenames this_dir = pwd; if strcmp(this_dir(1:8), '/tmp_mnt'); this_dir = this_dir(9:end); end; eval(['cd ' pathstr]); fname = dir(fstr); nmonth = length(fname); % Load lat, lon, and such nc = netcdf(fname(1).name, 'nowrite'); lat = nc{'lat'}(:); lon = nc{'lon'}(:); lev = nc{'lev'}(:); [xk, yk] = keep_var(lims, lon, lat); % Get variable parameters szvar = size(var(nc, varname)); nc = close(nc); lat = lat(yk); nlat = length(lat); lon = lon(xk); nlon = length(lon); vardims = length(szvar); if vardims == 3; dat = repmat(NaN, [nmonth nlat nlon]); for i = 1:nmonth; disp(char(fname(i).name)) nc = netcdf(fname(i).name, 'nowrite'); dat(i,:,:) = nc{varname, 1}(1,yk,xk); nc = close(nc); end else dat = repmat(NaN, [nmonth nlev nlat nlon]); for i = 1:nmonth; disp(char(fname(i).name)) nc = netcdf(fname(i).name, 'nowrite'); dat(i,:,:) = nc{varname, 1}(1,levind,yk,xk); nc = close(nc); end end