【发布时间】:2013-07-16 08:08:22
【问题描述】:
我正在尝试使用 mpl_toolkits.basemap 在俄克拉荷马州的地图上绘制天气变量,但在弄清楚如何插入数据以绘制在地图上时遇到问题。
这是我当前代码的总体思路:
lons = [-97.9547, -97.9747, -97.4256]
lats = [35.5322, 35.864, 35.4111]
data = [2,2,2]
map = Basemap(llcrnrlon = -103.068237, llcrnrlat = 33.610045, urcrnrlon = -94.359076, urcrnrlat = 37.040928, resolution = 'i')
CS = map.contour(X, Y, data)
map.drawstates()
plt.show()
我试图完成的是根据 lons/lats 列表中的相关参考索引在地图上绘制数据值,然后勾勒出数据变量的值。
现在这显然行不通,因为我需要插入数据。有没有办法可以使用 griddata 函数来完成这个任务?鉴于纬度和经度值不是线性间隔的,我对如何建立网格边界感到非常困惑。
有没有我想念的更简单的方法来做到这一点?
任何帮助和/或提示将不胜感激,这阻碍了我继续研究项目的下一个主要部分!
【问题讨论】:
-
很确定你需要使用meshgrid之类的东西。然后,您需要将数据插入到您
lons和lats创建的网格上。 -
据我了解,meshgrid 仅适用于不需要插值的数据,例如数据已经设置到它将在方坐标中工作的位置。
-
meshgrid 只是创建了一个网格,你可以在上面插入你想要的任何数据。如果你给它两个数组来创建已经拥有所有你想要的坐标的网格,你不需要做任何插值......
-
非常感谢,威尔。我昨天查看了网格网格功能,但显然要么误解了它,要么脑子放了个屁。现在我都想通了,再次感谢!
标签: python matplotlib interpolation contour