|
From: Scott H. <st...@co...> - 2012-08-20 21:34:38
|
I'm having trouble with transform_scalar() and imshow() with basemap. Essential I have data from satellite tracks that are either smaller or larger than the map extent, so I don't want to use Basemap.imshow() which sets the 'extent' keyword automatically. I tried following the following suggestion, but I can't get things to line up.. http://comments.gmane.org/gmane.comp.python.matplotlib.general/25085 I suspect I've done something wrong in the code below?: # ------------------------------- from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt LL = (-68, -26) UR = (-66, -21) bmap = Basemap(projection='merc', llcrnrlat=LL[1], urcrnrlat=UR[1], llcrnrlon=LL[0], urcrnrlon=UR[0], resolution='i', suppress_ticks=False, ax=ax) bmap.drawcountries(linewidth=1) # Overlay image with extents that don't match map boundaries nLon, nLat = image.shape LL = (-69.915, -31.161) UR = (-65.075, -17.334) dy = -0.006666664 lats = UR[1] + dy * np.arange(nLat) extent = (LL[0], UR[0], LL[1], UR[1]) nx = nLon; ny = nLat image_xy = bmap.transform_scalar(image, lons, lats[::-1], nx, ny) x, y = bmap(extent[:2],extent[2:]) extent_xy = (x[0], x[1], y[0], y[1]) im = plt.imshow(image_xy, extent=extent_xy) -- --------------- Scott T. Henderson http://www.geo.cornell.edu/eas/gstudent/sth54/contact.html |