From: <js...@us...> - 2011-02-11 19:30:20
|
Revision: 8970 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8970&view=rev Author: jswhit Date: 2011-02-11 19:30:12 +0000 (Fri, 11 Feb 2011) Log Message: ----------- add new Line Integral Convolution (LIC) example (requires vectorplot scikit) Modified Paths: -------------- trunk/toolkits/basemap/MANIFEST.in trunk/toolkits/basemap/examples/README trunk/toolkits/basemap/examples/run_all.py Added Paths: ----------- trunk/toolkits/basemap/examples/hurrearl.nc trunk/toolkits/basemap/examples/lic_demo.py Modified: trunk/toolkits/basemap/MANIFEST.in =================================================================== --- trunk/toolkits/basemap/MANIFEST.in 2011-02-10 07:37:05 UTC (rev 8969) +++ trunk/toolkits/basemap/MANIFEST.in 2011-02-11 19:30:12 UTC (rev 8970) @@ -75,9 +75,11 @@ include examples/cities.shx include examples/show_colormaps.py include examples/plotprecip.py +include examples/lic_demo.py include examples/nws_precip_conus_20061222.nc include examples/C02562.orog.nc include examples/ccsm_popgrid.nc +include examples/hurrearl.nc include examples/NetCDFFile_tst.py include examples/maskoceans.py include examples/README Modified: trunk/toolkits/basemap/examples/README =================================================================== --- trunk/toolkits/basemap/examples/README 2011-02-10 07:37:05 UTC (rev 8969) +++ trunk/toolkits/basemap/examples/README 2011-02-11 19:30:12 UTC (rev 8970) @@ -141,3 +141,6 @@ daynight.py shows how to shade the regions of a map where the sun has set. ploticos.py demonstrates plotting on unstructured grids. + +lic_demo.py shows how to use vectorplot scikit to visualize vector fields with +Line Integral Convolutions (LIC). Added: trunk/toolkits/basemap/examples/hurrearl.nc =================================================================== (Binary files differ) Property changes on: trunk/toolkits/basemap/examples/hurrearl.nc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/toolkits/basemap/examples/lic_demo.py =================================================================== --- trunk/toolkits/basemap/examples/lic_demo.py (rev 0) +++ trunk/toolkits/basemap/examples/lic_demo.py 2011-02-11 19:30:12 UTC (rev 8970) @@ -0,0 +1,42 @@ +# example showing how to use Line Integral Convolution to visualize a vector +# flow field (from Hurricane Earl). Produces something akin to streamlines. +# Requires vectorplot scikit (http://scikits.appspot.com/vectorplot). +try: + from netCDF4 import Dataset as NetCDFFile +except ImportError: + from mpl_toolkits.basemap import NetCDFFile +from mpl_toolkits.basemap import Basemap, cm, shiftgrid +import numpy as np +import matplotlib.pyplot as plt +try: + from vectorplot import lic_internal +except ImportError: + raise ImportError('need vectorplot scikit for this example') + +date = '2010090100' +lat0=22.6; lon0=-69.2 + +ncfile = NetCDFFile('hurrearl.nc') +u = ncfile.variables['u10m'][:,:] +v = ncfile.variables['v10m'][:,:] +lons1 = ncfile.variables['lon'][:] +lats1 = ncfile.variables['lat'][:] +lons, lats = np.meshgrid(lons1,lats1) +ncfile.close() + +fig = plt.figure(figsize=(8,8)) +m = Basemap(projection='stere',lat_0=lat0,lon_0=lon0,width=1.e6,height=1.e6,resolution='i') +nxv = 501; nyv = 501 +udat, vdat, xv, yv = m.transform_vector(u,v,lons1,lats1,nxv,nyv,returnxy=True) +texture = np.random.rand(udat.shape[0],udat.shape[1]).astype(np.float32) +kernellen=51 +kernel = np.sin(np.arange(kernellen)*np.pi/kernellen).astype(np.float32) +image = lic_internal.line_integral_convolution(udat.astype(np.float32),\ + vdat.astype(np.float32), texture, kernel) +im = m.imshow(image,plt.cm.gist_stern) +m.drawcoastlines() +m.drawmeridians(np.arange(0,360,2),labels=[0,0,0,1]) +m.drawparallels(np.arange(-30,30,2),labels=[1,0,0,0]) +plt.title('Hurricane Earl flow field visualized with Line Integral Convolution',\ + fontsize=13) +plt.show() Property changes on: trunk/toolkits/basemap/examples/lic_demo.py ___________________________________________________________________ Added: svn:executable + * Modified: trunk/toolkits/basemap/examples/run_all.py =================================================================== --- trunk/toolkits/basemap/examples/run_all.py 2011-02-10 07:37:05 UTC (rev 8969) +++ trunk/toolkits/basemap/examples/run_all.py 2011-02-11 19:30:12 UTC (rev 8970) @@ -10,6 +10,7 @@ test_files.remove('plotsst.py') test_files.remove('embedding_map_in_wx.py') # requires wx test_files.remove('plothighsandlows.py') # requires scipy +test_files.remove('lic_demo.py') print test_files py_path = os.environ.get('PYTHONPATH') if py_path is None: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |