【发布时间】:2010-12-03 20:58:21
【问题描述】:
我有一个类似于下图的栅格值(白色是高值,黑色背景值为零)。
我正在尝试编写某种路径跟踪代码,从其中一行的末尾开始并跟踪到另一端,通过可能的最高值(即,选择的像素越白在这条线上更好)但仍然到达另一端。
我已经为此苦苦挣扎了一段时间,似乎无法得到任何我尝试工作的东西。所以我想知道,是否已经针对此类问题开发了通用算法?我做了很多搜索,但大多数路径算法似乎都设计用于矢量/网络,而不是像这样的栅格网格。
有什么想法吗?
【问题讨论】:
-
这是一个经典的成本距离问题,已经为栅格数据开发了很多次。例如,在 R 中,您可以使用 gdistance 包。
-
谢谢@RobertH - 这看起来像一个有用的包。我仍在苦苦挣扎的一点是,当我不一定知道线条的起点和终点在哪里时如何做到这一点:也就是说,我也必须识别线条的终点!如果您对此有任何想法,请告诉我。
-
可能是这样,假设白色是大于 250 的值:
r <- raster('file'); start <- which(r[1,] > 250); end <- ncell(r) -ncol(cell) + which(r[nrow(r), ] > 250)从开始到结束,您可以计算坐标,如xyFromCell(r, start)