[Thread Prev][Thread Next][Index]

Re: [ferret_users] problems reading a GMT-style grid



Hi Billy,
If you don't mind writing and reading the data back in an extra time, then I think this might work:

- read the data and set up the grid as you are now doing

- write the data on its new 2D grid to a netCDF file

- open that file with USE/ORDER=x-y

Then there might still need to be some re-working of the Y axis.

Ansley


On 5/9/2011 11:30 AM, William S. Kessler wrote:
Hi all -

I have a GMT-style bathymetry file that conforms to netcdf conventions (Ferret will read it), but ends up with reversed latitudes.

The file consists of a 2-d grid given as a single vector ("Z"), with the grid specifications given in variables X_RANGE, Y_RANGE, DIMENSION.

yes? use 1304785711512.grd

yes? sho dat 1
    1> ./1304785711512.grd  (default)
 name     title    I        J    K    L
 X_RANGE        1:2        ...    ...    ...
 Y_RANGE        1:2        ...    ...    ...
 Z_RANGE        1:2        ...    ...    ...
 SPACING        1:2        ...    ...    ...
 DIMENSION    1:2        ...    ...    ...
 Z            1:763420  ...    ...    ...

yes? list X_RANGE, Y_RANGE, DIMENSION
             DATA SET: ./1304785711512.grd
             Bathymetry Grid
             X: 0.5 to 2.5
 Column  1: X_RANGE is X_RANGE (Longitude)
 Column  2: Y_RANGE is Y_RANGE (Latitude)
 Column  3: DIMENSION
        X_RANGE    Y_RANGE    DIMENSION
1 / 1:    151.8    -11.50    820.0
2 / 2:    152.3    -11.00    931.0

Note that 820*931 = 763420, which is the size of Z.

I can decode this as follows:
- - - - - - -
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
let zz=reshape('Z',x[gx=xlon]+y[gy=ylat])
- - - - - - -
This works fine except for one crucial thing: the latitudes are reversed!

Some experimentation shows that 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 820 values are W-E along the northern edge
next 820 values are 1 gridpoint south of the northern edge
...
last 820 values are along the southern edge

Does anybody have a good idea of how to reshape this grid correctly?

Thanks .... Billy K


[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement