计算 R sf 中景观上点与最近线之间的欧氏距离的计算有效方法

问题描述 投票:0回答:1

我有一个大型 GPS 位置数据集 (480,476) 和一个大型道路形状文件(线;561487),我想有效计算每个点到最近道路的距离。

如果我尝试使用 st_distance(points_sf,roads_sf) 来计算距离矩阵:points_sf (1:480476) 中每个点与roads_sf (1:561487) 中每条线之间的欧几里得距离太大。因此,我根据 ID 将其分成更小的块,这样更易于管理。即使如此,它仍然花费了很长时间(> 1天)并占用了大量内存,因此我无法在计算机上运行任何其他内容或冒着崩溃的风险(即使有 64 GB RAM)。

在 R 中是否有一种计算效率更高的方法来进行此类计算?

r gis geospatial euclidean-distance
1个回答
0
投票

到目前为止,我所拥有的是使用 st_nearest_feature() 来识别到每个点的最近线,然后计算该点与其最近线之间的距离。

这是我的解决方案:

    near_rd = st_nearest_feature(points_sf, roads_sf)
    dist_rd = sapply(1:length(near_rd), function(x)
                  st_distance(points_sf[x,], roads_ms[near_rd[x],]))
© www.soinside.com 2019 - 2024. All rights reserved.