Как использовать функцию r.cost, чтобы получить путь с наименьшей стоимостью между двумя полигонами?
Я новичок в GRASS, но я хотел бы получить путь наименьшей стоимости между двумя полигонами. Точнее, я хотел бы получить наименьшую стоимость из любой точки, расположенной на краю одного многоугольника (многоугольник A), в любую точку, расположенную на краю другого многоугольника (многоугольник B).
До сих пор я использовал функцию CostDistance
а также CostPath
ArcGIS с использованием растра стоимости, где каждая ячейка имеет значение стоимости, шейп-файл для первого многоугольника и шейп-файл для второго многоугольника. Я хотел бы сделать то же самое с GRASS. Я думаю, что функция r.cost
позволяет сделать это. Но я не знаю, как указать в параметрах два полигона в GRASS?
У вас есть пример того, как использовать r.cost
с двумя полигонами в R с пакетом spgrass6
?
Большое спасибо за вашу помощь.
1 ответ
Если использование GRASS не является обязательным и достаточно придерживаться R, вам следует проверить marmap
пакет. Раздел 2.4 виньетки (vignette("marmap")
) имеет право:
2.4 Использование батиметрических данных для анализа пути с наименьшей стоимостью
Пакет marmap позволяет вычислять путь с наименьшей стоимостью, ограниченный в диапазоне глубины / высоты между любым количеством точек. Две ключевые функции здесь trans.mat()
создать матрицу перехода, аналогичную упомянутой вами стоимости-растру. Затем, lc.dist()
вычисляет расстояние с наименьшей стоимостью и позволяет построить путь между точками.
Подробные примеры приведены в виньетке marmap.