gpt4 book ai didi

r - 对于一个数据集中的每个点,计算到第二个数据集中最近点的距离

转载 作者:行者123 更新时间:2023-12-04 11:08:31 25 4
gpt4 key购买 nike

试图找到,对于 SpatialPointsDataFrame 中的每个点,一秒内到最近点的距离 SpatialPointsDataFrame (相当于 ArcGIS 中用于两个 SpatialPointDataFrames 的“最近”工具)。
我可以通过使用 gDistance 计算所有成对距离来完成朴素的实现。并服用 min ( like answer 1 here ),但我有一些庞大的数据集,并且正在寻找更有效的方法。
例如,这里有一个 trick with knearneigh for points in same dataset .
交叉发布于 r-sig-geo

最佳答案

搜索树 包提供了一种解决方案。引用其文档,它“提供了 QuadTree 数据结构的实现 [它] 用于在二维中实现快速 k-最近邻 [...] 查找。”

以下是如何使用它快速查找 SpatialPoints 中的每个点。对象 b , 一秒内最近的两个点 SpatialPoints对象

library(sp)
library(SearchTrees)

## Example data
set.seed(1)
A <- SpatialPoints(cbind(x=rnorm(100), y=rnorm(100)))
B <- SpatialPoints(cbind(x=c(-1, 0, 1), y=c(1, 0, -1)))

## Find indices of the two nearest points in A to each of the points in B
tree <- createTree(coordinates(A))
inds <- knnLookup(tree, newdat=coordinates(B), k=2)

## Show that it worked
plot(A, pch=1, cex=1.2)
points(B, col=c("blue", "red", "green"), pch=17, cex=1.5)
## Plot two nearest neigbors
points(A[inds[1,],], pch=16, col=adjustcolor("blue", alpha=0.7))
points(A[inds[2,],], pch=16, col=adjustcolor("red", alpha=0.7))
points(A[inds[3,],], pch=16, col=adjustcolor("green", alpha=0.7))

enter image description here

关于r - 对于一个数据集中的每个点,计算到第二个数据集中最近点的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com