如何使用函数r.cost来获得两个多边形之间的最低成本路径?

时间:2014-09-01 21:32:51

标签: r grass

我是GRASS的初学者,但我希望在两个多边形之间获得成本最低的路径。更确切地说,我希望从位于一个多边形(多边形A)边缘的任何点到位于另一个多边形(多边形B)边缘的任何点获得最小的成本。

到目前为止,我使用ArcGIS的函数CostDistanceCostPath使用成本栅格,其中每个单元格都有成本值,第一个多边形的shapefile和第二个多边形的shapefile 。我想用GRASS做同样的事情。我认为函数r.cost允许这样做。但我不知道如何在参数中指定GRASS中的两个多边形?

您是否有一个示例说明如何在包含r.cost的R中使用spgrass6和两个多边形?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

如果GRASS的使用不是强制性的并且坚持使用R就足够了,您应该检查marmap包。小插图(vignette("marmap"))的第2.4节标题为:

  

2.4使用测深数据进行最低成本路径分析

marmap包允许计算在任意数量的点之间的深度/高度范围内受约束的最低成本路径。这里的两个关键函数是trans.mat(),用于创建类似于您提到的成本栅格的转换矩阵。然后,lc.dist()计算最低成本距离,并允许绘制点之间的路径。

marmap vignette中提供了详细的示例。