Как сгруппировать точки в многоугольник, а затем сопоставить его с областью города - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь сгруппировать точки, чтобы превратить их в многоугольник, а затем сопоставить их с городской областью. Итак, у меня есть таблица, состоящая из сеток в лат и лонг, и таблица городов, состоящая из названия города, лат и лонг. Ниже приведено изображение таблицы сеток

Grid Table

Ниже приведено изображение сетки, покрывающей карту Индии, покажите ее часть, чтобы лучше посмотрите на сетки

India Map with grids

Ниже приведено изображение таблицы города

India cities table

Результат нужной области города будет затем помещен в таблицу сетки

Этот вопрос будет продолжен -> после отображения правильного многоугольника области города (С сетками внутри область), позже это будет сопоставлено с таблицей, состоящей из местоположения пользователя (широта, длина), чтобы запрос мог выполняться быстрее, чем использование haversine для определения расстояния местоположения пользователя до ближайшего города.

Извините, что усложнил этот вопрос, мне немного любопытно, есть ли более быстрый способ запроса кода без использования функции haversine

1 Ответ

0 голосов
/ 20 января 2020

Как я понимаю ваш вопрос, вы хотите, чтобы все ваши очки были отнесены к городу, в котором они находятся. Это пространственное соединение с geo pandas ( очень хорошо объяснено в geo pandas do c):

merged = gpd.sjoin(grid_points, cities, how='left', op='within')

это будет соединение Атрибуты полигонов городов к точкам.

Это действительно будет намного быстрее, чем вычисление расстояний один к одному, потому что Geo Pandas обеспечивает быстрые пространственные объединения с скомпилированной библиотекой RTree C.

Если вы хотите приписать ближайший город к точке, которая на самом деле не находится в пределах одного (например, точки в пустой зоне вашего экрана печати), тогда это может быть более сложным, и вы можете взглянуть на scipy's cKDTree , который даст вам ближайшие точки. Это можно использовать с репрезентативными точками городских полигонов, которые вы можете получить из стройных.

...