У меня есть шейп-файл точек и шейп-файл многоугольников. Я хочу найти наивысшую точку в каждом многоугольнике. Я сделал пересечение, чтобы узнать, какие точки принадлежат каждому многоугольнику:
import geopandas as gpd
from geopandas.tools import sjoin
point = gpd.GeoDataFrame.from_file(pointSHP)
print("POINT", point)
poly = gpd.GeoDataFrame.from_file(polygonSHP)
print("POLY", poly)
points_within_poly = gpd.sjoin(point, poly, how="inner", op='intersects')
print(points_within_poly.head(10))
Теперь я хотел бы выбрать наивысшую точку для каждого index_right. Я думаю, что это вопрос сортировки по значению Z в столбце геометрии, но у меня возникают проблемы с этим. Я не знаю, как извлечь координату Z из геометрии с помощью геопанд. Наконец, я хотел бы выполнить пространственное соединение и указать значение Z до ближайшей точки (другой шейп-файл).
Спасибо
z
из 3D-точки в вашем случае, просто используйтеpoint.geometry[0].z
для первого элемента во фрейме геоданных. - person swatchai   schedule 10.07.2020