function u=nj_varget(uri,var,corner,edges); % NJ_VARGET get data from local NetCDF file, NetCDF URL or OpenDAP URL % Usage: u=nj_varget(file,var,[corner],[edges]); % where: ncfile = local file name or a URL % var = variable to extract % corner = corner of hyperslab (0-based) % edges = edges of hyperslap (0-based) % or % corner = string using ranges % Any of these URI types will work: % Local NetCDF: uri='adria03_sed036_his_0036.nc'; % Remote NetCDF: uri='http://stellwagen.er.usgs.gov/models/test/bora_feb.nc'; % OpenDAP: uri='http://stellwagen.er.usgs.gov/cgi-bin/nph-dods/models/test/bora_feb.nc'; % Local NcML: uri='bora_feb.ncml'; % Remote NcML: uri='http://stellwagen.er.usgs.gov/models/test/bora_feb.ncml'; % % Any of these syntaxes will return the surface temperature values % from the first time step: % t=nj_varget(uri,'temp',[0 0 0 0],[1 1 60 160]); % get surface temp from first time step % t=nj_varget(uri,'temp','0,19,0:59,0:159'); % % t=nj_varget(uri,'temp','0,19,:,:'); % same % and the following will return the entire longitude variable % t=nj_varget(uri,'lon'); % get all the lon values % Rich Signell rsignell@usgs.gov import ucar.nc2.dataset.NetcdfDataset if nargin < 2 disp('Please check usage:'); help nj_varget return end jncid=NetcdfDataset.openDataset(uri); v=jncid.findVariable(var); if nargin==4 t=v.read(corner,edges); %read using standard corner,edge format elseif nargin==3 if ischar(corner), t=v.read(corner); % read using string/range ['2:4,5:10,10,10:20:2'] format end else t=v.read(); %read the entire data end u=squeeze(copyToNDJavaArray(t)); close(jncid);