Рассчитать минимальное расстояние между несколькими полигонами с помощью R - PullRequest
0 голосов
/ 19 декабря 2018

Я все еще немного новичок в R и пакете sf ...

У меня есть два набора данных о многоугольниках, которые я пытаюсь проанализировать.Мой первый набор полигонов (огней) содержит сотни периметров лесного пожара.Второй набор (города) содержит сотни границ городских районов.

Для каждого пожара я хотел бы рассчитать расстояние до ближайшего города (от края полигона огня до края полигона ближайшего города) и добавить его какполе для каждого пожара.

До сих пор я в основном использовал пакет sf для пространственных данных.В своих поисках я могу найти только методы минимального расстояния для полигонов до точек, от точек до точек, от линий до точек и т. Д., Но не могу найти примеры от полигона до полигона.Любая помощь, чтобы отправить меня в правильном направлении, будет высоко ценится!Спасибо.

1 Ответ

0 голосов
/ 20 декабря 2018

@ TimSalabim Спасибо, что отправили меня в правильном направлении.Я смог выполнить то, что я хотел.Возможно, не самое элегантное решение, но оно сработало.

# create an index of the nearest feature
index <- st_nearest_feature(x = poly1, y = poly2)

# slice based on the index
poly2 <- poly2 %>% slice(index)

# calculate distance between polygons
poly_dist <- st_distance(x = poly1, y= poly2, by_element = TRUE)

# add the distance calculations to the fire polygons
poly1$distance <- poly_dist
...