通过imsh在基础地图上覆盖PNG

2024-09-27 00:16:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在通过matplotlib创建的基础地图上覆盖地理空间遮罩的.png文件。蒙版应该覆盖我正在研究的焦点区域的导入形状文件之外的基础地图中的所有内容。它确实覆盖了我的焦点区域之外的东西,但是……当我试图在底图上覆盖蒙版,打开州、海岸和国家边界来测试我的准确性时,蒙版和它的边界与基准不匹配,我不太确定原因。我使用extent和zorder参数,但问题似乎不在于这些关键字参数。在

我最初通过导出图形的.png(alpha=1.0)和完全相同的参数(lat/lon边界等)来创建掩码,然后使用GIMP使shapefile中包含的部分透明。在

{1美元^

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)

Tags: 文件参数parampng地图figax基础

热门问题