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.phpPull 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 --------------------------
Attachment:
grd_to_netcdf_convert.jnlb
Description: Binary data