Cartopy混合投影和过度绘制图像数据

时间:2017-09-30 21:29:54

标签: python cartopy

我正试图在OSM磁贴上覆盖一些卫星图像数据。

我可以单独绘制它们,但似乎不能过度绘图,我认为这取决于预测。

我加载数据并获取投影信息

ds = gdal.Open(fname)
data = ds.ReadAsArray()
gt = ds.GetGeoTransform()
proj = ds.GetProjection()

data=data.astype(np.float64)
projcs = inproj.GetAuthorityCode('PROJCS')
projection = ccrs.epsg(projcs)

投影是

_EPSGProjection(32611)

然后我设置了情节

subplot_kw = dict(projection=projection)
fig, ax = plt.subplots(figsize=(12, 6), subplot_kw=subplot_kw)

然后获取OSM磁贴,设​​置轴并添加

imagery = OSM()
ax = plt.axes(projection=imagery.crs)
ax.add_image(imagery, 14)

最后,我设置了图像数据的范围,并使用imshow

添加它
extent = (gt[0], gt[0] + ds.RasterXSize * gt[1],
          gt[3] + ds.RasterYSize * gt[5], gt[3])

img=ax.imshow(data, extent=extent, origin='upper', cmap='jet', vmin=1, vmax=1.3, alpha=0.1, transform=imagery.crs)

这根本不显示图像数据,只显示OSM图块。

我认为问题在于transform关键字,但我不知道如何修复它。

1 个答案:

答案 0 :(得分:1)

transform参数的值应该是您正在绘制的数据所表示的坐标系。它与您想要显示的投影无关。您使用OSM坐标系作为图像数据的变换,这是错误的。您应该使用通过epsg代码为图像定义的投影。