我是GRASS的初学者,但我希望在两个多边形之间获得成本最低的路径。更确切地说,我希望从位于一个多边形(多边形A)边缘的任何点到位于另一个多边形(多边形B)边缘的任何点获得最小的成本。
到目前为止,我使用ArcGIS的函数CostDistance
和CostPath
使用成本栅格,其中每个单元格都有成本值,第一个多边形的shapefile和第二个多边形的shapefile 。我想用GRASS做同样的事情。我认为函数r.cost
允许这样做。但我不知道如何在参数中指定GRASS中的两个多边形?
您是否有一个示例说明如何在包含r.cost
的R中使用spgrass6
和两个多边形?
非常感谢你的帮助。
答案 0 :(得分:3)
如果GRASS的使用不是强制性的并且坚持使用R就足够了,您应该检查marmap
包。小插图(vignette("marmap")
)的第2.4节标题为:
2.4使用测深数据进行最低成本路径分析
marmap包允许计算在任意数量的点之间的深度/高度范围内受约束的最低成本路径。这里的两个关键函数是trans.mat()
,用于创建类似于您提到的成本栅格的转换矩阵。然后,lc.dist()
计算最低成本距离,并允许绘制点之间的路径。
marmap vignette中提供了详细的示例。