Я пытаюсь выяснить, как сопоставить координатные точки с полигонами. Координатные точки взяты из набора данных .csv о лесных пожарах, и каждая точка соответствует пожару. Я пытаюсь объединить это с шейп-файлом с информацией о растительности и других характеристиках. Шейп-файл содержит полигоны, тогда как .csv содержит только один столбец для широты и один для долготы.
В конце я хотел бы использовать этот набор данных для прогнозирования серьезности пожара, используя нейронные сети.
До сих пор я пытался:
- Преобразование .csv в Geo Pandas DataFrame и sjoin оба набора данных используют следующий код:
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
from geopandas.tools import sjoin
point = df_fires #GeoDataFrame
poly = data #shapefile with the polygons
pointInPolys = sjoin(point, poly, how='left')
Однако это не работает из-за размера df_fires DataFrame (~ 10 м строк).
- Использование простого l oop:
for i in range(len(data)):
for j in range(len(df_fires)):
df_fires['geometry'].values[j].within(data['geometry'].values[i])
Однако у меня возникла та же проблема, т. Е. Набор данных слишком велик.
Не знаю хотите сопоставить с точными координатами, но с тем, содержится ли каждая отдельная точка широты / долготы в каждом многоугольнике.
df_fires.csv выглядит примерно так: this и nativevegetationareas.shp выглядит примерно так: this .