У меня следующая проблема: у меня есть список изогнутых точек и список изогнутых многоугольников.
Теперь я хочу проверить, в каком полигоне находится данная точка.
На данный момент я использую следующий код, который кажется не очень умным:
# polygons_df is a pandas dataframe that contains the geometry of the polygons and the usage of the polygons (landuses in this case, e.g. residential)
# point_df is a pandas dataframe that contains the geometry of the points and the usage of the point (landuses in this case, e.g. residential)
# polylist is my list of shapely polygons
# pointlist is my list of shapely points
from shapely.geometry import Point, Polygon
import pandas as pd
import geopandas as gpd
i = 0
while i < len(polygons_df.index):
j = 0
while j < len(point_df.index):
if polylist[i].contains(point):
point.at[j, 'tags.landuse'] = polygons_df.iloc[i]['tags.landuse']
else:
pass
j += 1
i += 1
Могу ли я как-нибудь ускорить это? У меня более 100.000 точек и более 10.000 полигонов, и эти циклы занимают время. Спасибо!