我试图将Aster GDEM数据用于手写但没有成功: 假设我有一个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)
,那么数据会显示但是程度不正确:
有什么建议吗?
答案 0 :(得分:2)
使用cartopy,如果您的数据位置错误,我始终首先排除的前两项内容是:
所以我做的第一件事是去NASA ASTER网站,它似乎没有太多的投影信息,但jspacesystems网站(http://www.jspacesystems.or.jp/ersdac/GDEM/E/4.html)做了。它告诉我们,我们有:
ASTER GDEM采用GeoTIFF格式,具有地理纬度/经度坐标和1弧秒(30米)高程网格过帐。它参考了WGS84 / EGM96大地水准面。
这告诉我你最好使用PlateCarree投影(请注意,这将使用错误引用的椭圆,但在此分辨率下会非常好。)
可悲的是,采购ASTER数据有点令人头疼,因此我无法对此进行测试,但只需将proj更改为PlateCarree就应该是这种情况下所需的全部内容。 (如果没有,请随时将图像发送到我的github个人资料中找到的电子邮件地址,我将查看此具体案例。)
HTH