我是python和底图的新手,所以请原谅我,如果我遗漏了一些明显的东西或者犯了一个新手的错误 .

我有一个网格数据集(lat / lon网格上的天气数据),我试图在底图上绘制 . 我可以使用colormesh绘制数据,但是在应用于数据数组时,插值/平滑过程似乎需要很长时间 . 唉,我希望通过imshow在底图上绘制数据,并通过imshow应用插值,因为它看起来更快 .

但是,当我通过imshow绘制数据时,它没有正确对齐 . 图像在底图背景上显示为“缩小”并放错地方 . 也许它甚至颠倒了 . 我试图使用范围kwarg,但没有运气......可能是因为我做得不对 .

#Basemap, 6 panel plot
map_image = Basemap(projection='mill', lat_ts=10, llcrnrlon=-86, urcrnrlon=-72, llcrnrlat=36, urcrnrlat=44, resolution='i', ax=ax[location1r, location1c])
x1, y1 = map_image(lons, lats)     

# pull radar data, latitudes and longitudes from grib2 file via pygrib function
raindbz = pull_grib_data_bylevels.pullvalueslevels(totalgribfile,'rain','Derived radar reflectivity',1000,1)
lats, lons = pull_grib_data_bylevels.pulllatlonslevels(totalgribfile,'DBZ','Derived radar reflectivity',1000,1)
raindbz = np.ma.masked_less(raindbz, 105)

#plot via imshow, using custom radar colormap
map_image.imshow(raindbz, cmap=rain_colormap, extent=[x1.min(), x1.max(), y1.min(), y1.max()])

plt.draw()

使用colormesh,图像正确绘制:

cs1 = map_image.pcolormesh(x1, y1, raindbz, norm=rainnorm, cmap=rain_colormap)

我觉得我必须做一些事情以匹配imshow图像的“范围”以匹配底图,但我不确定如何 . 我需要将数据网格化到纬度/经度坐标吗?我一直很困惑 .

我附上了下面图片的链接,以帮助显示问题 .

无论如何,我假设修复imshow方法很简单 - 有没有人对我如何解决这个问题有一些指导?谢谢!

Colormesh_correct imshow_incorrect