Cartopy:无法为地​​理轴添加功能(无错误或警告)

时间:2014-12-29 21:50:20

标签: python plot rendering cartopy

我无法为cartopy geo轴添加功能。以下是gallery

中的示例
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,并通过来自here

的Windows二进制文件安装了cartopy

如果我自己绘制的东西就像一个等高线图,那么它确实会出现,但我认为从naturalearthddata.com获取数据,处理形状文件并将它们添加到轴之间会出现问题。

有没有人对从这个开始的地方有什么想法?

1 个答案:

答案 0 :(得分:0)

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

我最不得不做的是改变shapereader.py中的第264行:

 _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')

过去在多个地方推荐的内容包括here

有人提到,在最新版本中,cartopy已经将这个断开的链接修复为naturalearth,但我认为链接没有在我通过提到的windows二进制文件安装的cartopy版本中更新。我认为这个问题已经有了很好的记录,但由于某些原因,我无法看到到目前为止的实际错误。