我有一个果园的 LAS 文件,我正在尝试使用 {lidR} 库中的“segment_tree”函数来分割每棵树。我使用的算法是dalponte2016。
segmented_trees_las_silva <- lidR::segment_trees(nlas_trees, silva2016(chm,ttops, max_cr_factor = 1.2, ID = "treeID")) segmented_plot = plot(segmented_trees_las_silva, color = "treeID") add_treetops3d(segmented_plot, ttops)
函数输出是每个点都有一个 ID=n,它表示该点是否是 n 树的一部分。结果非常好,但正如您所见,我有一些点转移到不同的树上(图中用白色箭头显示),并且与不同果园行中的错误树相关联。
树分割图。红点代表树梢,黑色背景代表地面。白色代表 N/A 点
我想为算法添加一个功能,以减少这些错误并将这些点关联到同一行中的树(在本例中为果园行)。我考虑过 kNN 算法,但有时到错误质心的距离更短,这让我陷入了死胡同。
也许可以为 LAS 文件“ROW_ID”创建一个新属性,以便每个“tree_ID”必须属于相同的“ROW_ID”。
关于如何实施它的任何想法?