0

我无法向 cartopy 地理坐标轴添加功能。这是画廊的一个例子:

import cartopy
import matplotlib.pyplot as plt

def main():

    ax = plt.axes(projection=cartopy.crs.PlateCarree())

    ax.add_feature(cartopy.feature.LAND)
    ax.add_feature(cartopy.feature.OCEAN)
    ax.add_feature(cartopy.feature.COASTLINE)
    ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
    ax.add_feature(cartopy.feature.LAKES, alpha=0.5)
    ax.add_feature(cartopy.feature.RIVERS)

    ax.set_extent([-20, 60, -40, 40])

    plt.show()


if __name__ == '__main__':
    main()

当我在家中的笔记本电脑上运行此程序时,除了图中的空白地理轴外什么都没有(我可以判断,因为范围是正确的,我可以在图形窗口的左下角看到坐标。但是 - 如果我在工作中运行相同的示例,所有内容都按链接中的预期绘制。

我的感觉是存在某种依赖问题,但我不确定从哪里开始。绝对没有任何警告或错误。

无论是在工作中还是在我的笔记本电脑上,我都使用 Python 2.7 运行 Windows 7 x64,并从这里通过 Windows 二进制文件安装了 cartopy

如果我自己绘制轮廓图之类的东西,那么它确实会显示出来,但我认为从 naturalearthddata.com 获取数据、处理形状文件并将它们添加到轴之间存在问题。

有人对从哪里开始有任何想法吗?

4

1 回答 1

0

我以前没有收到此错误,但是当我出于某种原因从 IPython 笔记本运行代码时,我收到了此错误HTTPError: HTTP Error 404: Not Found

我最终要做的是将第 264 行更改shapereader.py为:

 _NE_URL_TEMPLATE = ('http://www.nacis.org/naturalearth/{resolution}'
                        '/{category}/ne_{resolution}_{name}.zip')

至:

_NE_URL_TEMPLATE = ('http://www.naturalearthdata.com/'
                        'http//www.naturalearthdata.com/download/{resolution}'
                        '/{category}/ne_{resolution}_{name}.zip')

过去曾在多个地方推荐过,包括这里

有人提到,cartopy 已经在最新版本中修复了这个与 naturalearth 的断开链接,但我认为该链接在我通过上述 Windows 二进制文件安装的 cartopy 版本中没有更新。我认为这个问题有据可查,但由于某种原因,直到现在我都看不到实际的错误是什么。

于 2015-01-05T16:07:58.993 回答