与 cartopy 一起使用时,上下颠倒映射

Posted

技术标签:

【中文标题】与 cartopy 一起使用时,上下颠倒映射【英文标题】:Contextily map upside down when used with cartopy 【发布时间】:2020-08-27 11:01:26 【问题描述】:

将contextily 底图添加到以cartopy 投影的轴时,地图会上下颠倒。这是一个最小的例子:

import matplotlib.pyplot as plt
import cartopy
import contextily

# contextily & cartopy
fig, ax = plt.subplots()
ax = plt.axes(projection=cartopy.crs.Mercator())
ax.add_feature(cartopy.feature.COASTLINE)
ax.set_extent([-11,37,35,70])
contextily.add_basemap(ax)

以下代码生成正确的地图,但是没有 cartopy 特征:

# contextily
fig, ax = plt.subplots()
ax.set_xlim(-1163881, 4068715)
ax.set_ylim( 4118821,11118821)
contextily.add_basemap(ax)

cartopy 坐标系似乎存在一些投影问题。如何在地图上添加合适的底图?

【问题讨论】:

【参考方案1】:

我也遇到了这个问题...不知道如何根据上下文来解决这个问题,但找到了使用内置 cartopy 方法 ax.add_wmts() 访问和绘制底图切片的解决方案。

url = 'http://map1c.vis.earthdata.nasa.gov/wmts-geo/wmts.cgi'
layer_name = 'BlueMarble_ShadedRelief_Bathymetry'

ax.add_wmts(url, layer_name, alpha = 0.9)

可以在here 找到其他层。只需要换掉layer_name

【讨论】:

谢谢,这是一个很好的解决方案,因为它还允许下载环境变量的实际卫星数据产品。请注意,它仅适用于owslib 0.19.2 或更高版本。【参考方案2】:

确保您拥有最新版本的 contextily (1.0.0) 和 cartopy (0.18.0),对我来说它工作正常:

使用您的确切代码,带有 cartopy 和上下文:

使用

>>> contextily.__version__                                                                                                                                                                                     
'1.0.0'

>>> cartopy.__version__                                                                                                                                                                                        
'0.18.0'

【讨论】:

以上是关于与 cartopy 一起使用时,上下颠倒映射的主要内容,如果未能解决你的问题,请参考以下文章

将会话变量与对象一起使用

TypeError:在cartopy中使用时字符串索引必须是整数,但正常打印工作正常

相对于地理轴(cartopy)正确放置颜色条

在 Matplotlib/Cartopy 中制作颜色条图例

Flutter 让 iPhone 上下颠倒

将 WCF 与负载平衡 (AWS) 一起使用时,安全上下文令牌无效