trazar datos gebco en el mapa base de Python

He descargado algunos datos de batimetría de gebco como un archivo netCDF. Me gustaría trazarlo con python-basemap. Yo he tratado,

import netCDF4 from mpl_toolkits.basemap import Basemap # Load data dataset = netCDF4.Dataset('/home/david/Desktop/GEBCO/gebco_08_-30_45_5_65.nc') # Extract variables x = dataset.variables['x_range'] y = dataset.variables['y_range'] spacing = dataset.variables['spacing'] # Data limits nx = (x[-1]-x[0])/spacing[0] # num pts in x-dir ny = (y[-1]-y[0])/spacing[1] # num pts in y-dir # Reshape data zz = dataset.variables['z'] Z = zz[:].reshape(ny, nx) # setup basemap. m = Basemap(llcrnrlon=-30,llcrnrlat=45.0,urcrnrlon=5.0,urcrnrlat=65.0, resolution='i',projection='stere',lon_0=-15.0,lat_0=55.0) # Set up grid lons, lats = m.makegrid(nx, ny) x, y = m(lons, lats) m.contourf(x, y, flipud(Z)) m.fillcontinents(color='grey') m.drawparallels(np.arange(10,70,10), labels=[1,0,0,0]) m.drawmeridians(np.arange(-80, 5, 10), labels=[0,0,0,1]) 

Esto da la figura de abajo, claramente incorrecta. El problema se deriva de cómo se definen las áreas. Para el mapa base, el área está definida por la esquina inferior izquierda lat, lon y la esquina superior derecha lat, lon. Pero los datos de gebco toman un máximo y mínimo lon / lat definidos a lo largo de una línea central. ¿Alguien tiene alguna experiencia con datos de gebco o ve una solución?

gracias: D mapa

tan solo para el registro, aquí está la respuesta que funciona, utilizando los comentarios anteriores:

 import netCDF4 from mpl_toolkits.basemap import Basemap # Load data dataset = netCDF4.Dataset('/usgs/data1/rsignell/bathy/gebco_08_-30_-45_5_65.nc') # Extract variables x = dataset.variables['x_range'] y = dataset.variables['y_range'] spacing = dataset.variables['spacing'] # Compute Lat/Lon nx = (x[-1]-x[0])/spacing[0] # num pts in x-dir ny = (y[-1]-y[0])/spacing[1] # num pts in y-dir lon = np.linspace(x[0],x[-1],nx) lat = np.linspace(y[0],y[-1],ny) # Reshape data zz = dataset.variables['z'] Z = zz[:].reshape(ny, nx) # setup basemap. m = Basemap(llcrnrlon=-30,llcrnrlat=45.0,urcrnrlon=5.0,urcrnrlat=65.0, resolution='i',projection='stere',lon_0=-15.0,lat_0=55.0) x,y = m(*np.meshgrid(lon,lat)) m.contourf(x, y, flipud(Z)); m.fillcontinents(color='grey'); m.drawparallels(np.arange(10,70,10), labels=[1,0,0,0]); m.drawmeridians(np.arange(-80, 5, 10), labels=[0,0,0,1]); 

Lo que produce esta ttwig. introduzca la descripción de la imagen aquí