【发布时间】:2014-01-08 23:51:04
【问题描述】:
已经收到了一个非常有用且有用的解决我的轮廓不规则数据的问题,Contours with map overlay on irregular grid in python,这里我仍然有将轮廓与底图结合的问题。为此,我知道我必须这样做:
x,y = m(lon,lat)。
我看到的所有 SO 帖子都不符合我的需求。我的问题是我在哪里(从我的各种可用参数中)得到lon, lat 在上述公式中使用的x,y?
这是我的地图对象:
m = Basemap(projection = 'merc',llcrnrlon = 21, llcrnrlat = -18, urcrnrlon = 34, urcrnrlat = -8, resolution='h')
这是等高线和网格的数据:
data = pd.read_csv('meansr.txt', delim_whitespace=True)
numcols, numrows = 300, 300
xi = np.linspace(data.Lon.min(), data.Lon.max(), numcols)
yi = np.linspace(data.Lat.min(), data.Lat.max(), numrows)
xi, yi = np.meshgrid(xi, yi)
x, y, z = data.Lon.values, data.Lat.values, data.Z.values
zi = griddata(x, y, z, xi, yi)
这里是绘图命令
plt.figure()
plt.contourf(xi, yi, zi)
plt.scatter(data.Lon, data.Lat, c=data.Z, s=100,
vmin=zi.min(), vmax=zi.max())
plt.colorbar()
plt.show()
这给了我两个并排的图,一个底图和等高线,我认为这是由于两个坐标的差异。指向等高线内表示正确的纬度和经度,而在地图上显示的x, y 非常大,大约为2000 及以上。
请帮忙。
【问题讨论】: