GEODEMO_6

Extracting a layer of velocity from a C-GRID model like ROMS

Contents

url = 'http://geoport.whoi.edu/thredds/dodsC/examples/bora_feb.nc';
hname = 'h';
uname = 'u';
vname = 'v';
aname = 'angle';

Use NCTOOLBOX for data access

Create a geodataset object that represents the dataset from the opendap endpoint

nc = ncgeodataset(url);

% Create variable objects that represent the variables of interest in the dataset
uvar = nc.geovariable(uname);
vvar = nc.geovariable(vname);
hvar = nc.geovariable(hname);
avar = nc.geovariable(aname);

Interpolate ROMS u and v vectors on to same grid as hvar (a rho variable)

Use the uvar and vvar objects and the avar (angle) variable object to interpolate velocity vectors onto rho grid points and rotate them according to the angle variable

Uobj = hvar.getvectors(uvar, vvar, avar);

Grab the data at the indices of interest

itime = 3; % 3rd time step
klev = -1; % last (top) layer
% Grab coordinate information at our indices
g = Uobj.grid(itime, klev, :, :);

Plot vectors

Get the magnitude of the new vectors at our indices and plot, overlay with the vector representation of the new velocities

figure;
pcolorjw(g.lon, g.lat, Uobj.magnitude(itime, klev, :, :));
colorbar;
arrows(g.lon(1:end,1:end), g.lat(1:end,1:end),...
    Uobj.vectors(itime, klev, 1:end,1:end), 0.08, 'black');
title(datestr(g.time));
dasp(44);

Plot subset of vectors

figure;
pcolorjw(g.lon(1:58, 1:70), g.lat(1:58, 1:70), ...
    Uobj.magnitude(itime, klev, 1:58, 1:70));
colorbar;
arrows(g.lon(1:2:58,1:2:70), g.lat(1:2:58,1:2:70),...
    Uobj.vectors(itime, klev, 1:2:58,1:2:70), 0.08, 'black');
title(datestr(g.time));
dasp(44);