From: <js...@us...> - 2008-02-14 21:52:01
|
Revision: 4963 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4963&view=rev Author: jswhit Date: 2008-02-14 13:51:58 -0800 (Thu, 14 Feb 2008) Log Message: ----------- update blue marble image Modified Paths: -------------- trunk/toolkits/basemap/examples/warpimage.py Added Paths: ----------- trunk/toolkits/basemap/examples/bmng.jpg Added: trunk/toolkits/basemap/examples/bmng.jpg =================================================================== (Binary files differ) Property changes on: trunk/toolkits/basemap/examples/bmng.jpg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/toolkits/basemap/examples/warpimage.py =================================================================== --- trunk/toolkits/basemap/examples/warpimage.py 2008-02-13 21:48:38 UTC (rev 4962) +++ trunk/toolkits/basemap/examples/warpimage.py 2008-02-14 21:51:58 UTC (rev 4963) @@ -6,10 +6,10 @@ from PIL import Image # shows how to warp an image from one map projection to another. -# image from http://visibleearth.nasa.gov/ +# 'blue marble next generation' image from http://visibleearth.nasa.gov/ # read in jpeg image to rgba array of normalized floats. -pilImage = Image.open('land_shallow_topo_2048.jpg') +pilImage = Image.open('bmng.jpg') rgba = pil_to_array(pilImage) rgba = rgba.astype(numpy.float32)/255. # convert to normalized floats. @@ -84,4 +84,30 @@ m.drawmeridians(meridians,labels=[1,1,0,1],color='0.5') P.title("Blue Marble image warped from 'cyl' to 'lcc' projection",fontsize=12) print 'warp to lambert conformal map ...' + +# create new figure +fig=P.figure() +# define oblique mercator map. +m = Basemap(height=24000000,width=12000000, + resolution=None,projection='omerc',\ + lon_0=-100,lat_0=15,lon_2=-120,lat_2=65,lon_1=-50,lat_1=-55) +# transform to nx x ny regularly spaced native projection grid +# nx and ny chosen to have roughly the same horizontal res as original image. +dx = 2.*numpy.pi*m.rmajor/float(nlons) +nx = int((m.xmax-m.xmin)/dx)+1; ny = int((m.ymax-m.ymin)/dx)+1 +rgba_warped = ma.zeros((ny,nx,4),numpy.float64) +# interpolate rgba values from proj='cyl' (geographic coords) to 'lcc' +# values outside of projection limb will be masked. +for k in range(4): + rgba_warped[:,:,k] = m.transform_scalar(rgba[:,:,k],lons,lats,nx,ny,masked=False) +# make points outside projection limb transparent. +rgba_warped = rgba_warped.filled(0.) +# plot warped rgba image. +im = m.imshow(rgba_warped) +# draw lat/lon grid lines every 20 degrees. +m.drawmeridians(numpy.arange(0,360,20),color='0.5') +m.drawparallels(numpy.arange(-80,81,20),color='0.5') +P.title("Blue Marble image warped from 'cyl' to 'omerc' projection",fontsize=12) +print 'warp to oblique mercator map ...' + P.show() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |