Ich habe diese Frage-Overlay shape file on matplotlib gelesen und bin mir nicht sicher, dass es für mich gilt, aber ich habe ein Shapefile meines Landes und ich möchte die Niederschlagsdaten aus einer GRIB-Datei auf diese Shapefile überlagern. Dies verwendet pygrib und matplotlib. Ich bin nicht daran interessiert, Basemap.coastlines() und Basemap.countries() zu verwenden, da dies im Shapefile verfügbar ist. Ich möchte das mit meiner eigenen Shapefile überschreiben. Wie mache ich das ?Wie überlagern Sie Niederschlagsdaten mit Matplotlib und Pygrib in einem Shapefile?
#!/usr/bin/python3.4
import numpy as np
import pygrib
import shapefile
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
grbs = pygrib.open('00020000')
grb = grbs.select(name='Total Precipitation')[0]
data = grb.values
lat,lon = grb.latlons()
m=Basemap(projection='mill',lat_ts=10,llcrnrlon=lon.min(), \
urcrnrlon=lon.max(),llcrnrlat=lat.min(),urcrnrlat=lat.max(), \
resolution='c')
m.readshapefile("adm3.shp")
x,y=m(lon,lat)
cs = m.pcolormesh(x,y,data,shading='flat',cmap=plt.cm.jet)
m.drawparallels(np.arange(-90.,80.,5.),labels=[1,0,0,0])
m.drawmeridians(np.arange(-180.,180.,5.),labels=[0,0,0,1])
plt.colorbar(cs,orientation='vertical')
plt.title('Precipitation Plot')
plt.show()