Как использовать функцию 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.

Другие вопросы по тегам