【发布时间】:2014-01-23 06:13:02
【问题描述】:
对不起,我不得不继续回到网格不规则间隔数据的问题。对于如何将数据网格化到常规网格的问题,我似乎没有看到任何明确的回答,而对我来说,软件文档对那些已经知道的人来说是件好事。 我有 29 个点的 x、y、z 数据,标题为“Lon Lat Z”。用这些数据绘制轮廓是我所做的:
-
读入数据后,制作一个 300 x 300 点的规则网格,用于插值
numcols, numrows = 300, 300 xi = np.linspace(data.Lon.min(), data.Lon.max(), numcols) yi = np.linspace(data.Lat.min(), data.Lat.max(), numcols) xi, yi = np.meshgrid(xi, yi)此时打印 xi 和打印 yi 根据我的数据给出 x 和 y,插值超过 300x300 点。
-
在上面创建的网格上插入数据
x, y, z = data.Lon.values, data.Lat.values, data.Z.values zi = griddata(x, y, z, xi, yi)此时如果我这样做
print zi我会得到[[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
...,
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]
[-- -- -- ..., -- -- --]]
我期待看到插值 z 的值。我还有一个定义为由轮廓覆盖的地图对象。绘图功能为我提供了单独的数字,用于底图和等高线,以及正确的等高线值。 我的问题是为什么我得到轮廓的空白值以及它们是如何正确绘制的? 为了完整起见,这是我的绘图功能
fig=plt.figure(figsize=(8,4.5))
im = plt.contourf(xi, yi, zi)
plt.show()
出现两个图(并排的底图和等高线)
请帮忙。
【问题讨论】:
-
明显的错字:在 xi 和 yi 中,你使用 numcols,不应该是 numrows 和 numcols 吗?另一件事:你能更好地缩进你的帖子吗?因为在某个时刻你说“1”。但是没有“2”。 ?
-
感谢@usethedeathstar 指出拼写错误。 1. 正在读取数据并创建网格 2. 在那里,正在插值
标签: python numpy matplotlib matplotlib-basemap