Найти все пересекающиеся полигоны в файле формы - PullRequest
3 голосов
/ 10 октября 2019

Я пытаюсь найти все полигоны в шейп-файле с помощью алгоритма извлечения QGIS по местоположению, и он дает мне отличные результаты, но занимает слишком много времени, около 25 часов. Теперь я хочу, чтобы это делали другие библиотеки, такие как геопанды или другие библиотеки, если это возможно. Кто-нибудь может подсказать, какая библиотека может помочь?

Вот что я делаю в геопандах:

import itertools

import geopandas as gpd

gi = gpd.GeoDataFrame.from_file("D:\Shape_file_uploader\qgis\laneGroup.shp")

geoms = gi['geometry'].tolist()

intersection_iter = gpd.GeoDataFrame(gpd.GeoSeries([poly[0].intersection(poly[1]) for poly in  itertools.combinations(geoms, 2)

1 Ответ

0 голосов
/ 10 октября 2019

Я сделал это некоторое время назад, и если я правильно помню, я использовал метод наложения геопанд. Итак, псевдо-код для обработки этого ...

from geopandas import GeoDataFrame, overlay

first_shape_gdf = GeoDataFrame.from_file('D:\Shape_file_uploader\qgis\laneGroup.shp')
second_shape_gdf = GeoDataFrame.from_file('another.shp')

intersection_gdf = overlay(first_shape_gdf, second_shape_gdf, how='intersection')

Посмотрите на Операции над множествами с оверлеем

...