我要求深入了解在地理图像上叠加速度的箭袋图。我一直在使用gdal来处理geotiff,并使用netcdf4库来处理速度数据。
到目前为止,我已经使用imshow()来绘制geotiff,放大我的学习区域。在范围参数中,x和y是域的东边和北边的numpy数组。下面是我的代码,以及我得到的数字的图片。
# plot study area
fig, ax = plt.subplots(figsize=(8, 8))
fig = plt.imshow(data[:3,:,:].transpose((1, 2, 0)), extent =
[x[1000],x[2000],y[750],y[2000]])
在模型域中,我将电流的速度大小作为箭袋图,其中ee
和nn
是东向和北向速度的坐标。从netCDF文件中提取速度和坐标数据。下面是箭头代码和箭头图的链接。
plt.figure(figsize=(12, 12))
plt.quiver(ee,nn,test_u,test_v, scale=75)
plt.show()
我想在我的geotiff中叠加速度幅度。下面是我尝试执行此操作的代码。我相信我的单位的imshow人物和我的箭袋的单位都没有正确排列。
plt.figure(figsize=(12, 12))
plt.imshow(data[:3,750:2000,1000:2000].transpose((1, 2, 0)),
extent = [x[1000],x[2000],y[750],y[2000]])
plt.quiver(ee,nn,test_u,test_v, scale=75)
plt.show()
有关如何通过此打嗝的任何提示,我们表示赞赏。如何设置我的imshow单位,使像素与地理坐标匹配,如何使其与箭头图的单位相匹配。我在python和numpy,gdal以及相关库中工作有点新鲜。谢谢。
答案 0 :(得分:2)
您需要使用extent
并将其设置为您拥有的实际单位。在这里,您似乎只需要将x
中的数据乘以1000。
extent = [x[1000]*1000,x[2000]*1000,y[750]*1000,y[2000]*1000]
但是,只有您可以确定坐标ee
和nn
与图像像素的关系。