Петли Python (шейп-файл) - PullRequest
       61

Петли Python (шейп-файл)

0 голосов
/ 21 октября 2018

df1.coords - список координат.Мне нужно сравнить все точки в пределах df1.coords со всеми точками в каждом отдельном слое в моем шейп-файле.

В шейп-файле есть более 20+ слоев.Однако я не уверен, что мой цикл правильный.Учитывает ли он только последний слой моего шейп-файла или все слои?

Кроме того, этот метод довольно медленный, так как мои данные большие.Есть ли более эффективный способ?Буду признателен за любую помощь, спасибо!

import shapefile
from shapely.geometry import shape, Point

r = shapefile.Reader("C:\\filename.shp")

# get the shapes
shapes = r.shapes()

# build a shapely polygon from your shape
hold = []
for k in range(len(shapes)-1): 
    polygon = shape(shapes[k])


    for x in df1.Coords: 

        # the contains function does exactly what you want
        if polygon.contains(Point(x)):

            hold.append(x) 
...