Hi,
I'm having a problem using matplotlibs barbs function. I'm trying to
plot some wind barbs on a map created with basemap. My code is as follows,
m =
Basemap(llcrnrlon=-35.0,llcrnrlat=40.0,urcrnrlon=10.0,urcrnrlat=68.0,
resolution='i',projection='lcc',lon_0=-12.5,lat_0=54.0)
m.drawcoastlines()
m.bluemarble()
m.drawcoastlines()
# draw parallels
m.drawparallels(np.arange(40,68,5),labels=[1,0,0,0])
# draw meridians
m.drawmeridians(np.arange(-35, 10, 5),labels=[0,0,0,1])
x, y = m(lons, lats)
m.barbs(lons,lats,us,vs, barbcolor = 'r', flagcolor = 'r')
plt.show()
where x, y, us and vs are lists with shape (64,). I get the following error,
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (382, 0))
---------------------------------------------------------------------------
ValueError Traceback (most recent
call last)
/home/davcra/python_scripts/plot_synops.py in <module>()
63 #m.plot(x,y,'ro', ms=5)
64 plt.suptitle(record['date'])
---> 65 m.barbs(x,y,us,vs, barbcolor = 'r', flagcolor = 'r')
66 #m.xlim(-35.0, 10.0)
67 #m.ylim(40.0, 68.0)
/usr/lib64/python2.6/site-packages/mpl_toolkits/basemap/__init__.pyc
in barbs(self, x, y, u, v, *args, **kwargs)
2924 retnh = ax.barbs(x,y,unh,vnh,*args,**kwargs)
2925 kwargs['flip_barb']=True
-> 2926 retsh = ax.barbs(x,y,ush,vsh,*args,**kwargs)
2927 try:
2928 plt.draw_if_interactive()
/usr/lib64/python2.6/site-packages/matplotlib/axes.pyc in
barbs(self, *args, **kw)
5888 """
5889 if not self._hold: self.cla()
-> 5890 b = mquiver.Barbs(self, *args, **kw)
5891 self.add_collection(b)
5892 self.update_datalim(b.get_offsets())
/usr/lib64/python2.6/site-packages/matplotlib/quiver.pyc in
__init__(self, ax, *args, **kw)
776 self.set_transform(transforms.IdentityTransform())
777
--> 778 self.set_UVC(u, v, c)
779
780 __init__.__doc__ = """
/usr/lib64/python2.6/site-packages/matplotlib/quiver.pyc in
set_UVC(self, U, V, C)
952
953 def set_UVC(self, U, V, C=None):
--> 954 self.u = ma.masked_invalid(U, copy=False).ravel()
955 self.v = ma.masked_invalid(V, copy=False).ravel()
956 if C is not None:
/usr/lib64/python2.6/site-packages/numpy/ma/core.pyc in
masked_invalid(a, copy)
1976 condition = ~(np.isfinite(a))
1977 if hasattr(a, '_mask'):
-> 1978 condition = mask_or(condition, a._mask)
1979 cls = type(a)
1980 else:
/usr/lib64/python2.6/site-packages/numpy/ma/core.pyc in mask_or(m1,
m2, copy, shrink)
1383 _recursive_mask_or(m1, m2, newmask)
1384 return newmask
-> 1385 return make_mask(umath.logical_or(m1, m2), copy=copy,
shrink=shrink)
1386
1387
/usr/lib64/python2.6/site-packages/numpy/ma/core.pyc in make_mask(m,
copy, shrink, flag, dtype)
1265 # We won't return after this point to make sure we
can shrink the mask
1266 # Fill the mask in case there are missing data
-> 1267 m = filled(m, True)
1268 # Make sure the input dtype is valid
1269 dtype = make_mask_descr(dtype)
/usr/lib64/python2.6/site-packages/numpy/ma/core.pyc in filled(a,
fill_value)
406 """
407 if hasattr(a, 'filled'):
--> 408 return a.filled(fill_value)
409 elif isinstance(a, ndarray):
410 # Should we check for contiguity ? and
a.flags['CONTIGUOUS']:
/usr/lib64/python2.6/site-packages/numpy/ma/core.pyc in filled(self,
fill_value)
2929 result = self._data.copy()
2930 try:
-> 2931 np.putmask(result, m, fill_value)
2932 except (TypeError, AttributeError):
2933 fill_value = narray(fill_value, dtype=object)
ValueError: putmask: mask and data must be the same size
WARNING: Failure executing file: <plot_synops.py>
Anyone know whats going on here??
Thanks in advance,
D
|