用python绘制geotiff,并使用quiver打印覆盖

用python绘制geotiff,并使用quiver打印覆盖,python,matplotlib,plot,gdal,netcdf,Python,Matplotlib,Plot,Gdal,Netcdf,我要求了解在geotiff图像上叠加速度的颤动图。我一直在使用gdal处理geotiff和netcdf4库的速度数据 到目前为止,我已经使用imshow()绘制了geotiff,并放大了我的研究区域。在extent参数中,x和y是域的东向和北向的numpy数组。下面是我的代码,以及我的图片 # plot study area fig, ax = plt.subplots(figsize=(8, 8)) fig = plt.imshow(data[:3,:,:].transpose((1, 2,

我要求了解在geotiff图像上叠加速度的颤动图。我一直在使用gdal处理geotiff和netcdf4库的速度数据

到目前为止,我已经使用imshow()绘制了geotiff,并放大了我的研究区域。在extent参数中,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文件中提取。下面是quiver代码,以及指向quiver图的链接

plt.figure(figsize=(12, 12))
plt.quiver(ee,nn,test_u,test_v, scale=75)
plt.show()

我想把速度大小叠加在我的geotiff的顶部。下面是我尝试执行此操作的代码。我相信我的imshow图和quiver图的单位排列不正确

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和相关库的工作有些陌生。谢谢。

您需要使用
范围
,并将其设置为您拥有的实际单位。这里,您似乎只需将
x
中的数据乘以1000即可

extent = [x[1000]*1000,x[2000]*1000,y[750]*1000,y[2000]*1000]
但是,只有您才能确定坐标
ee
nn
与图像像素的关系