Соответствие точек широты / долготы в пределах многоугольников - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь выяснить, как сопоставить координатные точки с полигонами. Координатные точки взяты из набора данных .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 .

...