底图导致 python 中止

Basemap causes python to abort

我需要将一些数据点映射到地图上。我下载了 python 的底图模块来执行此操作。每次尝试制作地图时,我都会收到以下错误消息。我为此使用的代码如下。我该如何解决这个问题?

我用的geos版本是3.4.2,我用的basemap版本是1.0.7。 python 我使用的版本是2.7。我使用的gdal版本是1.11.2.

错误信息:

Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 285.
aborted

代码:

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plot

def main():
    map = Basemap(projection = 'cyl', llcrnrlon= -100, llcrnrlat = -18, urcrnrlon =-80, urcrnrlat = 31)
    map.drawcoastlines(linewidth = .01)
    map.drawmapboundary(fill_color='aqua')
    plot.show()
main()

这个错误让我抓狂。还有很多其他的 SE 问题和网站也有类似的问题:1, 2, 3,但他们都建议导入 mpl_toolkits.Basemap before shapely.geometry。问题是,这是 导致 我自己和 @K.Shores 问题的导入顺序。如果我颠倒导入顺序(先整齐地排列),我就不会遇到问题。

我想我找到了解决此问题的更令人满意的方法 here。显然,Homebrew GEOS 库与与预编译的 shapely wheel 捆绑在一起的库之间存在冲突。因此,要解决此问题,请执行以下操作:

$ pip uninstall shapely
$ pip install --no-use-wheel shapely