我正在尝试将地理空间掩码的.png文件覆盖在通过matplotlib创建的底图上。掩码应该覆盖底图中我正在研究的焦点区域的导入shapefile之外的所有内容。它确实覆盖了我的焦点区域之外的东西,但是...当我尝试在底图上覆盖蒙版并打开状态,海岸和国家边界来测试我的准确性时,蒙版和它的边界不匹配基地,我不太清楚为什么。我使用了extent和zorder参数,但问题似乎并不在于这些关键字参数。
我最初通过导出图形的.png(alpha = 1.0)和完全相同的参数(纬度/经度边界等)创建了蒙版,然后使用GIMP使shapefile中包含的部分透明。
def makeBasemap(lon, lat, param):
fig, ax = plt.subplots()
ax.set_position([0.0, 0.0, 1.0, 1.0])
ax.axis('off')
llcrnrlon = 278.
llcrnrlat = 37.
urcrnrlon = 307.
urcrnrlat = 50.
m = Basemap(resolution = 'i', projection = 'lcc',
lat_0 = 10., lon_0 = 291.5, llcrnrlon = llcrnrlon,
llcrnrlat = llcrnrlat,
urcrnrlon = urcrnrlon, urcrnrlat = urcrnrlat)
m.ax = ax
x,y = m((lon-360.),lat)
pcmap = cm.get_cmap('coolwarm')
pp = m.contourf(x, y, param, 100, cmap=pcmap, extend='both')
m.drawcoastlines()
m.drawcountries()
m.drawstates()
im = m.imshow(plt.imread('nafsemask.png'), zorder = 10,
origin = 'upper', extent=[x.min(), x.max(), y.min(), y.max()])
return fig, m, x, y
fig, m, x, y = makeBasemap(lon, lat, param)