This directory contains
pe_icon_out.nc.gz - A compressed output file from a 30 day
simulation initialized at 12:00gmt on
August 1, 2000
pe_icon_out.header - A dump of the header information of
pe_icon_out.nc created by the ncdump utility
ReadMe.txt - This file.
grids_AOSN2_med_sasm.nc.gz - A compressed grid file.
The relevent information for extracting velocity data is given by the following
dimensions and variables:
dimensions:
vlat = 84 ;
vlon = 53 ;
outlev = 20 ;
vector = 2 ;
time = UNLIMITED ; // (61 currently)
axis3 = 3 ;
variables:
float vgrid3(vlat, vlon, outlev, axis3) ;
vgrid3:long_name = "3D grid positions at velocity points" ;
vgrid3:axis = "1: longitude, 2: latitude, 3: depth" ;
vgrid3:units = "degrees_east, degrees_north, meter" ;
float time(time) ;
time:long_name = "time since initialization" ;
time:units = "seconds" ;
time:field = "time, scalar, series" ;
float vtot(time, vlat, vlon, outlev, vector) ;
vtot:long_name = "total velocity" ;
vtot:units = "centimeter second-1" ;
vtot:field = "total velocity, vector, series" ;
vtot:positions = "vgrid3" ;
vtot:_FillValue = 1.e+35f ;
vtot:missing_value = 1.e+35f ;
To get the positions of every velocity point on the HOPS sigma-coordinate
system:
longitude = vgrid3(:,:,1,1)
latitude = vgrid3(:,:,1,2)
depth = vgrid3(:,:,:,1)
Notice that only the top level LAT/LON data is necessary. These values
don't change with depth.
The navigation of the total velocity ("vtot") is indicated by the
positions attribute.
One thing to beware of: the velocity is oriented along the model grid
vtot(:,:,:,:,1) is roughly across isobaths
vtot(:,:,:,:,2) is roughly along isobaths
To rotate back to lat/lon orientation, extract the variable "lrotang" from
the grids file and use the formula
phi(i,j) = lrotang(i,j)*pi/180
ulon(n,j,i,k) = vtot(n,j,i,k,1)*cos(phi(i,j)) - vtot(n,j,i,k,2)*sin(phi(i,j))
vlat(n,j,i,k) = vtot(n,j,i,k,1)*sin(phi(i,j)) + vtot(n,j,i,k,2)*cos(phi(i,j))
One other pointer, the last slab of velocity data
vtot(:,vlat,:,:,:)
is filler and just contains the fill values
vtot:_FillValue = 1.e+35f ;
If you're working in Matlab, it's usually a good idea to check for these
fill values when the data is first read in, and replace them with NaN's.