Функция геопанда оверлей () не работает в QGIS - PullRequest
4 голосов
/ 12 октября 2019

Мне нужно найти пересечение GeoDataFrame с самим собой через геопанды в QGIS. Код отлично работает в среде Anaconda, но не работает в питоне QGIS.

Шейп-файл доступен по ссылке ниже: https://drive.google.com/file/d/1DQqg7Cf6AokyadkmOE8Y6k41tqDMXdmS/view?usp=drivesdk

Ниже приведен код:

df1 = gpd.GeoDataFrame.from_file("C:\\QGIS_ShapeFile1\\qgis\\laneGroup.shp")
intersection_gdf = overlay(df1, df1, how='intersection')

В QGIS возникает следующая ошибка:

An error has occurred while executing Python code: 

AttributeError: 'NoneType' object has no attribute 'intersection' 
Traceback (most recent call last):
         File"C:/Users/sn43673/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ad_qgis\shapefile_validator.py", line 318, in errorInShapeFile
    intersection_gdf = overlay(df1, df2, how='intersection')File "C:\PROGRA~1\QGIS3~1.6\apps\Python37\lib\site-packages\geopandas\tools\overlay.py", line 391, in overlay
  File "C:\PROGRA~1\QGIS3~1.6\apps\Python37\lib\site-packages\geopandas\tools\overlay.py", line 216, in _overlay_intersection
    for k in j:
  File "C:\PROGRA~1\QGIS3~1.6\apps\Python37\lib\site-packages\pandas\core\series.py", line 4042, in apply
    mapped = lib.map_infer(values, f, convert=convert_dtype)
  File "pandas\_libs\lib.pyx", line 2228, in pandas._libs.lib.map_infer
  File "C:\PROGRA~1\QGIS3~1.6\apps\Python37\lib\site-packages\geopandas\tools\overlay.py", line 216, in 
    for k in j:
AttributeError: 'NoneType' object has no attribute 'intersection'

1 Ответ

3 голосов
/ 15 октября 2019

Я недавно столкнулся с этой ошибкой. Это было связано с проблемой DLL в пакете RTree. Попробуйте заменить файл libspatialindex.dll.

...