Hi Ferreters -
Here's a source of fine-resolution bathymetry, perhaps 10s of meters
horizontally in some areas. In any case, it is probably the finest
resolution available. Brief instructions below, then a Ferret script
to read the files.
These are GMT-format netcdf files with the extension *.grd; Ferret
will read and convert them using the attached script. However, the
native way to read them is with a program called grdcontour (a whole
set of grd* routines are available on the web). But if you want to
use
these files in Ferret, read on:
http://www.marine-geo.org/tools/maps_grids.php
Pull down the "Focus/Study Site" menu. If you are lucky your region
will be listed specifically, otherwise pick "World".
Enter the coordinates of your region, Click "View Created Map" .
You will get a map, and set of links to download the data. The
appearance of the map is an indication of the location of truly high-
resolution data (perhaps 10s of meters horizontal, from side-scan
sonar).
As far as I can tell, the most realistic choice is "masked" at the
same resolution as the map. But experiment with the options and write
back, please.
This will produce a file with a long numerical name (GMT format =
*.grd)
Then bring this file into Ferret and rewrite using the attached
script
(with Ansley's help).
In Ferret:
yes? go grd_to_netcdf_convert.jnlb 1304975255453 ! the argument is
an example of the filename
Billy K
------------------------
! read and convert grd format files to Ferret-usable netcdf
! read-write-read-write to fix problem of reversing latitudes:
! the 1-d array Z contains the 2-d grid listed in north-to-south
order
! (despite the apparent south-to-north order of Y_RANGE):
! first ($dimx) values are W-E along the northern edge
! next ($dimx) values are 1 gridpoint south of the northern edge
! ...
! last ($dimx) values are along the southern edge
! arg1 = grd file name
use $1.grd
set var/bad=nan 'Z'
! define the lat/lon grid using the file variables
def sym dimx `dimension[i=1]`
def sym dimy `dimension[i=2]`
define axis/x=`x_range[i=1]`:`x_range[i=2]`/npoints=($dimx)/unit=lon
xlon
define axis/y=`y_range[i=1]`:`y_range[i=2]`/npoints=($dimy)/unit=lat
ylat
! RESHAPE the input 1-d vector Z to a 2-d grid (but reversed south-
to-
north)
let zz = reshape('Z',x[gx=xlon]+y[gy=ylat])
save/file=$1_a.cdf zz ! write an intermediate file
! read it back
can var zz
use/order=x-y $1_a.cdf ! per Ansley, reverse the order
let bathy = zz[gx=xlon,gy=ylat] ! regrid on correct lat/lon axis
save/file=$1.cdf bathy
sp rm $1_a.cdf ! remove the intermediate file
--------------------------