【发布时间】:2019-10-13 15:13:50
【问题描述】:
我有很多数据点。其实点太多了。没有一个点是重叠的,但有些点彼此非常接近。我希望获得更少的积分,但不移动任何位置。
我希望得到尽可能多的点,但只有与任何其他点至少相距约 5.7 公里的点。 (如果有一点重叠也没关系——0.5km的误差是可以接受的)
我尝试write an algorithm in R 来完成此操作,但有很多意想不到的结果。我有一些覆盖地球的大约 300,000 个点的数据。我还有其他几百万的数据。当我执行算法时,我可以按国家/地区对数据进行分段,这可以将这些数字减少到 20,000 到 100,000 范围内。如果点的位置无关紧要,那么我可能只是制作一个插值栅格并将其称为好,但对于这个问题,我需要保持特定位置不变。
我尝试的另一件事是制作一个 0.028 度的规则网格并运行 NNJoin 以查找最近的数据点。这比我的 R 代码工作得更好,但结果有点有趣,你可以想象。
我的另一个想法是缓冲点,计算有多少点与缓冲层相交。我还在研究这个
是否有已经建立的方法来得出这个结果?如果有可以做到这一点的包或库,我很乐意使用 PostGIS、QGIS、Python、R。
tl;dr 我如何减少密集的点簇,但使用减少的点集保持覆盖范围?
【问题讨论】:
-
lidR包具有一些降低点密度的功能,例如homogenize(),它将保持覆盖范围并暗示点的距离,但您无法准确设置距离。 -
有趣...我如何在没有 Z 坐标的情况下使用这个库?