Вычислить попарные расстояния между двумя слоями: gDistance (byid = TRUE), но попарно? - PullRequest
0 голосов
/ 07 октября 2019

В R у меня есть многоугольный слой A и точечный слой B. Оба имеют одинаковое количество признаков, существует взаимно-однозначное соответствие (спаривание): каждый многоугольник слоя A имеет соответствующую точку в слое B инаоборот. Как вычислить попарные расстояния между этими парами объектов?

Я пытался использовать

gDistance(A, B, byid = TRUE)

, но это вычислит всю матрицу NxN, что приводит к огромным накладным расходам(Я бы использовал только диагональ этой матрицы).

1 Ответ

0 голосов
/ 07 октября 2019

К сожалению, кажется, что rgeos и gDistance не могут это сделать ... Поэтому я нашел решение, используя библиотеку sf:

require(sf)
g1 <- st_as_sf(A)
g2 <- st_as_sf(B)
dist <- st_distance(g1, g2, by_element=TRUE)

Это создаст парные расстояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...