首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cartopy绘制SRTM源光栅?

如何使用cartopy绘制SRTM源光栅?
EN

Stack Overflow用户
提问于 2016-04-25 01:49:25
回答 1查看 1.1K关注 0票数 2

我一直在寻找cartopy提供的快速自动地图的选项。我发现SRTMSource非常方便。然而,我还没有找到如何使用不同的投影来绘制数据,比如墨卡托……

当我这样做的时候:

代码语言:javascript
复制
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投影进行绘图

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

代码语言:javascript
复制
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()()

我得到了一个错误,它说:

代码语言:javascript
复制
Unsupported projection for the SRTM3 source.

那么,有没有一种方法可以保持SRTMSource的功能(自动下载),并使用任何投影绘制栅格?

我想做一个简单的imshow和改变投影,但由于RasterSource的数据是在绘图时检索的,我不知道如何做…

代码语言:javascript
复制
plt.figure()
ax = plt.axes(projection=ccrs.Mercator())
ax.imshow(source(), transform=ccrs.Mercator())
ax.set_extent([12, 13, 47, 48])
plt.show()

返回一个TypeError。

EN

回答 1

Stack Overflow用户

发布于 2019-05-27 16:31:49

我知道这是一个古老的帖子,但我正在努力学习更多关于cartopy的知识,我想我现在可以回答这个问题,也许这可以帮助其他有类似问题的人。

好了,开始吧。首先,cartopy主页上对变换和投影的区别有一个很好的解释:https://scitools.org.uk/cartopy/docs/latest/tutorials/understanding_transform.html?highlight=understanding

projection关键字决定了绘图的外观,因此对于这里的问题,我们将projection更改为Mercator:

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

您可以选择您喜欢的任何投影,但您必须添加transform关键字(在本例中仍然是PlateCarree,因为数据是在PlateCarree中提供的):

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

所以正确的代码应该是:

代码语言:javascript
复制
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()()

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36826766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档