import Nio import time,os import numpy as np import matplotlib.pyplot as plt import matplotlib.mlab as mlab from mpl_toolkits.basemap import Basemap from numpy import ma fname='qscat_winds.csv' # specify the center of the plotting region and delta lat/lon from the center lonc=129.0 latc=16.0 delta=2 lonmin=lonc-delta lonmax=lonc+delta latmin=latc-delta latmax=latc+delta data=np.genfromtxt(fname, dtype="S8,S9,i8,i8,f8,f8,f8,f8,S7,f8,f8,f8,i8,f8", delimiter=',',names=True) Urows = data[::2] Vrows = data[1::2] ziplist = zip(Urows['lat'], Urows['lon'], Urows['obs'], Vrows['obs'], Urows['qcm'], Vrows['qcm']) ziplist = [(y, x, u, v) for (y, x, u, v, xqc, yqc) in ziplist if xqc == 1 and yqc == 1 and lonmin <= x <= lonmax and latmin <= y <= latmax] lat, lon, U, V = zip(*ziplist) fig = plt.figure() # Resolution: Can be 'c' (crude), 'l' (low), 'i' (intermediate), 'h' (high), 'f' (full) or None. m = Basemap(projection="cyl",lon_0=np.mean(lonc),lat_0=np.mean(latc),llcrnrlat=np.min(latmin),llcrnrlon=np.min(lonmin),urcrnrlat=np.max(latmax),urcrnrlon=np.max(lonmax),resolution="i") m.barbs(lon[::20], lat[::20], U[::20], V[::20]) dd = 0.5 # draw meridians at dd degree resolution m.drawparallels(np.arange(-90,90,dd),labels=[1,0,0,0], color='black',dashes=[1,0],labelstyle='+/-',linewidth=0.2) m.drawmeridians(np.arange(-180,180,dd),labels=[0,0,0,1], color='black',dashes=[1,0],labelstyle='+/-',linewidth=0.2) m.drawcoastlines(linewidth=0.5) m.drawmapboundary() m.drawstates() m.drawcountries() plt.savefig('qscat-2004062700.png') plt.clf()