Могу ли я пространственно присоединиться к столбцу, отличному от геометрии в Python Geopandas? - PullRequest
0 голосов
/ 17 января 2019

В GeoDataFrame у меня есть столбец с геометрией многоугольников (Polygon объектов), а другой столбец с Point объектами, представляющими центроид многоугольников. Теперь я хочу иметь возможность пространственно присоединиться, например, к центроидному столбцу вместо выполнения

.
test = gpd.sjoin(M, Gsq, op="within")

Я мог бы сделать что-то вроде

test = gpd.sjoin(M["centroid"], Gsq, op="within")

Пока что sjoin работает, если я перезаписываю полное поле геометрии центроидом, но это слишком уродливо. Итак, каким образом я могу присоединиться к данному столбцу?

1 Ответ

0 голосов
/ 17 января 2019

В соответствии с официальной документацией команды geopandas.sjoin невозможно выбрать другой столбец в качестве геометрии для операции.

Однако вы можете иметь два столбца с данными геометрии в вашем геодатафрейме (например, geometry_pg для геометрии многоугольника и geometry_pt для геометрии точки центроида. Затем вы можете установить "активную" геометрию геоданных в один или другой столбец. Таким образом, вы можете выполнить пространственное соединение, не отбрасывая никаких данных. Легко определить, какая геометрия активна в любой момент. Чтобы узнать, как это сделать, просто проверьте официальную документацию geodataframe, это понятно и имеет простой пример.

Надеюсь, это поможет.

...