Итак, у меня есть гео pandas фрейм данных ~ 10000 строк, как это. Каждая точка находится внутри многоугольника (я в этом убедился).
point name field_id geometry
POINT(-0.1618445 51.5103873) polygon1 1 POLYGON ((-0.1642799 51.5113756, -0.1639581 51.5089851, -0.1593661 51.5096729, -0.1606536 51.5115358, -0.1642799 51.5113756))
Я хочу добавить новый столбец с именем distance_to_nearest_edge
. Каково расстояние от point
до ближайшей границы многоугольника.
Есть стройная функция, которая вычисляет то, что я хочу:
from shapely import wkt
poly = wkt.loads('POLYGON ((-0.1642799 51.5113756, -0.1639581 51.5089851, -0.1593661 51.5096729, -0.1606536 51.5115358, -0.1642799 51.5113756))')
pt = wkt.loads('POINT(-0.1618445 51.5103873)')
dist = poly.boundary.distance(pt)
---
dist = 0.0010736436340879488
Но я изо всех сил пытаюсь применить это до 10 тыс. строк.
Я пытался создать функцию, но продолжаю получать ошибки ("'Polygon' object has no attribute 'encode'", 'occurred at index 0')
Например:
def fxy(x, y):
poly = wkt.loads(x)
pt = wkt.loads(y)
return poly.exterior.distance(pt)
Ценить любую помощь!