3

我正在尝试将 Aster GDEM 数据与 cartopy 一起使用,但没有成功:假设我有一个我知道地理范围的 numpy 数组。我应该能够将它绘制为一个图层,比如来自 cartopy.io.img_tiles 的 GoogleTile。

示例代码:

proj = ccrs.Mercator()
extent = [32, 33, 29, 30]
data = np.random.rand(10,10)

fig = plt.figure(figsize=(4,4))
ax = fig.add_subplot(111, projection=proj)
ax.set_extent(extent)
ax.imshow(data, extent=extent, origin='upper',
      transform=proj, alpha=0.5)

gg_tiles = GoogleTiles()
ax.add_image(gg_tiles, 10, alpha=0.5)

ax.coastlines('10m')
ax.set_title('data with Google Tile')
gl = ax.gridlines(draw_labels=True)
gl.xlabels_top = None

产生:

在此处输入图像描述

数据不显示!

如果我发表评论ax.set_extent(extent),则显示数据但范围错误:

在此处输入图像描述

有什么建议么?

4

1 回答 1

2

使用 cartopy,如果您的数据位于错误的位置,我总是首先排除的前两件事是:

  • “我有正确的投影吗?”
  • “我是否将 lons/lats 与投影米(又名东/北)混淆了?”

所以我做的第一件事就是去了 NASA ASTER 站点,该站点似乎没有太多的投影信息,而是 jspacesystems 站点(http://www.jspacesystems.or.jp/ersdac/GDEM/E/4。 html ) 做到了。它告诉我们,我们有:

ASTER GDEM 采用 GeoTIFF 格式,具有地理纬度/经度坐标和 1 角秒 (30 m) 高程发布网格。它参考 WGS84/EGM96 大地水准面。

这向我建议您最好使用 PlateCarree 投影(注意,这将使用错误引用的椭圆,但在此分辨率下会非常好)。

可悲的是,获取 ASTER 数据有点让人头疼,所以我无法对此进行测试,但在这种情况下,只需将 proj 更改为 PlateCarree 就可以了。(如果没有,请随时将图像发送到我的 github 个人资料中的电子邮件地址,我会看看这个具体案例)。

高温高压

于 2014-05-28T13:10:19.363 回答