我有一个关于R中的空间聚合的问题。我的数据集具有一些彼此接近的纬度/经度坐标,而另一些不接近。我想为彼此接近的纬度/经度坐标创建一个点。
我不确定如何做到这一点。我是否将纬度/经度坐标列为组,并找到平均值,使一个点代表每个组?因为我对这类东西几乎没有经验。我希望你们中的任何人可能有一些有用的指导/可能的解决方案。
Time Received Speed Latitude Longitude
1.47917E+12 1.5 38.9295887 -77.2478945
1.47917E+12 1 38.9295048 -77.247922
1.47917E+12 3 38.9294865 -77.2479055
1.47917E+12 5 38.9294865 -77.2479055
1.47917E+12 2 38.9294771 -77.2478712
1.47917E+12 2 38.9294772 -77.2478712
1.47917E+12 1.5 38.9294771 -77.2477417
1.47917E+12 1.5 38.9294771 -77.2477417
例如,如果我可以将下面的纬度/经度坐标作为一个点:
38.9294771 -77.2478712
38.9294772 -77.2478712
38.9294771 -77.2477417
38.9294771 -77.2477417
例如,将如下所示,而不影响时间和速度值:
38.9294771 -77.24774117
2条答案
按热度按时间zi8p0yeb1#
你可以使用下面给出的函数(我在round_any equivalent for dplyr?中找到的)将你的坐标四舍五入到任何想要的精度,在下面的例子中我使用0.1。
然后使用
dplyr::group_by()
按四舍五入的坐标进行分组,并根据需要聚合时间和速度值。f87krz0w2#
请访问http://turfjs.org/docs/#center
使用turf模块对纬度/经度坐标进行聚类。例如,您可以使用turf.clustersDbscan()函数将附近的点分组到聚类中。此函数接受以下参数: