【问题标题】:How do I plot SRTM source Raster with cartopy?如何使用 cartopy 绘制 SRTM 源栅格?
【发布时间】:2016-04-24 17:49:25
【问题描述】:

我一直在研究 cartopy 提供的快速自动地图选项。我发现 SRTMSource 非常方便。但是,我还没有找到如何使用不同的投影(例如墨卡托)来绘制数据...

当我这样做时:

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from cartopy.io.srtm import SRTM3Source

source = SRTM3Source

plt.figure()
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_raster(source())
ax.set_extent([12, 13, 47, 48])
plt.show()()

它工作得很好,并使用 PlateCarree 投影进行绘图

但是当我尝试将轴的投影更改为墨卡托时:

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from cartopy.io.srtm import SRTM3Source

source = SRTM3Source

plt.figure()
ax = plt.axes(projection=ccrs.Mercator())
ax.add_raster(source())
ax.set_extent([12, 13, 47, 48])
plt.show()()

我收到一条错误消息:

Unsupported projection for the SRTM3 source.

那么有没有办法保持 SRTMSource 功能(自动下载)并使用任何投影绘制栅格?

我想简单地做一个 imshow 并更改投影,但由于在绘图时检索了 RasterSource 的数据,我不知道该怎么做......

plt.figure()
ax = plt.axes(projection=ccrs.Mercator())
ax.imshow(source(), transform=ccrs.Mercator())
ax.set_extent([12, 13, 47, 48])
plt.show()

返回一个类型错误。

【问题讨论】:

  • 刚刚发现标题不准确...错过了投影问题...抱歉

标签: python matplotlib gis cartopy


【解决方案1】:

我知道这是一篇旧帖子,但我正在尝试了解有关 cartopy 的更多信息,我想我现在可以回答这个问题,也许这可以帮助其他有类似问题的人。

好的,我们开始吧。首先,cartopy主页上有一个很好的解释transform和projection的区别: https://scitools.org.uk/cartopy/docs/latest/tutorials/understanding_transform.html?highlight=understanding

projection 关键字决定了绘图的外观,所以对于这里的这个问题,我们将投影改为墨卡托:

ax = plt.axes(projection=ccrs.Mercator())

你可以选择任何你喜欢的投影,但是你必须添加 transform 关键字(在这种情况下这仍然是 PlateCarree,因为 DATA 是在 PlateCarree 中提供的):

ax.set_extent([12, 13, 47, 48],transform=ccrs.PlateCarree())

所以正确的代码是:

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from cartopy.io.srtm import SRTM3Source

source = SRTM3Source

plt.figure()
ax = plt.axes(projection=ccrs.Mercator())
ax.add_raster(source())
ax.set_extent([12, 13, 47, 48], transform=ccrs.PlateCarree())
plt.show()()

我希望这是正确的,我的解释是有帮助的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2013-12-27
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多