Я искал свою проблему и нашел этот вопрос , который отличается от моей проблемы.
У меня есть два фрейма геоданных, один из которых содержит местоположения домов как points
(~ 700 баллов), а другой содержит suburbs names
и их polygon
(~ 2973 полигонов). Я хочу связать каждую точку с полигоном, чтобы назначить каждый дом правильному пригороду.
образец моего гео-фрейма данных
ploygon
import geopandas as gpd
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
#creating geo series
polys = gpd.GeoSeries({
'6672': Polygon([(142.92288, -37.97886,), (141.74552, -35.07202), (141.74748, -35.06367)]),
'6372': Polygon([(148.66850, -37.40622), (148.66883, -37.40609), (148.66920, -37.40605)]),
})
#creating geo dataframe
polysgdf = gpd.GeoDataFrame(geometry=gpd.GeoSeries(polys))
polysgdf
, который выдает следующее (мой исходный гео-фрейм данных также содержит столбец suburb
, который содержит название пригорода, но яне удалось добавить его в мой образец, вы можете видеть только идентификатор пригорода ниже)
geometry
6672 POLYGON ((142.92288 -37.97886, 141.74552 -35.07202, 141.74748 -35.06367, 142.92288 -37.97886))
6372 POLYGON ((148.66850 -37.40622, 148.66883 -37.40609, 148.66920 -37.40605, 148.66850 -37.40622))
образец точек гео-данных
точек
points=[Point(145.103,-37.792), Point(145.09720, -37.86400),
Point(145.02190, -37.85450)]
pointsDF = gpd.GeoDataFrame(geometry=points,
index=['house1_ID', 'house2_ID', 'house3_ID'])
pointsDF
Какиепроизводит следующее
geometry
house1_ID POINT (145.10300 -37.79200)
house2_ID POINT (145.09720 -37.86400)
house3_ID POINT (145.02190 -37.85450)
Я бы хотел, чтобы конечным результатом был pointsDF
гео-фрейм данных с каждым домом, назначенным соответствующему пригороду. В результате сопоставления точек и многоугольников.
Пример:
suburbID subrubName house_ID
6672 south apple house1_ID
6372 water garden house2_ID
Я новичок в GeoPandas, я попытался объяснить свой вопрос как можно яснее. Я рад уточнить любой момент. Спасибо.