Andrew, I sent this to you personally, unintentionally, and want it to be on the list too. So you have it doubled now, sorry.
2010/2/25 Andrew Charles <ac1...@gmail.com>: > I'm trying to interpolate from one grid to another using Basemap's > interp function. It seems to want the lat and lon axis of the new grid > to have the same shape: > > 3524 if xout.shape != yout.shape: > 3535 raise ValueError, 'xout and yout must have same shape!' > > The grid I'm interpolating to is 144 by 72 > > I'm calling it as interp(x,lon,lat,plon,plat) > where lon and plon are numpy arrays with shape (144,) lat has shape > (73,) plat has shape(72,) and x has shape (72, 144) > > Does interp() really only work if the target grid is square? I guess it wants a meshgrid, use e.g.: lats = len(lat) lons = len(lon) lat = lat[:, numpy.newaxis].repeat(lons, axis = 1) lon = lon[numpy.newaxis, :].repeat(lats, axis = 0) - or the other way round - lat = lat[numpy.newaxis, :].repeat(lons, axis = 0) lon = lat[:, numpy.newaxis].repeat(lats, axis = 1) depending on what axis lat and lon should respectively be associated with. A meshgrid is a sequence of coordinate grids. For each point KEY, the coordinates are MESHGRID[:, KEY]. Thus you can via meshgrids specifiy also distorted grids to interpolate to (e.g. a wavy rectangular grid or something). (I guess this is actually needed when doing Mercator to Postels or similar). Friedrich ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users