如何从不同的点模式中删除相同的点
how to remove same points from different point patterns
我在网络上有两个观察点模式:obs1
和 obs2
。这些点被观察并记入现场测量书。其中一些点(比如 s
)总是在同一位置找到。即 s
对 obs1
和 obs2
都是通用的。在我计算强度或任何其他过程之前,我想从点模式中排除这个集合 s
。
有没有办法(command/function)比较两个点过程并去除它们之间的共同点?
我现在能想到的最好的事情就是计算最近的邻居
跨越如下两种模式。
人工数据集,其中 X 的点 2 和 3 对应于点 1 和
Y 的 2 个:
library(spatstat)
X <- unmark(chicago)[1:3]
Y <- unmark(chicago)[2:5]
plot(X, chars = 24, cols = "blue")
plot(Y, cex = 1.5, cols = "red", add = TRUE)
交叉距离:
d <- nncross(X, Y, what = c("dist", "which"))
在 Y 中具有非常近邻的点的 X 中的 ID:
whichX <- which(d$dist <= .Machine$double.eps)
Y中对应点:
whichY <- d$which[whichX]
结果图:
Xnew <- X[-whichX]
Ynew <- Y[-whichY]
plot(Xnew, chars = 24, cols = "blue")
plot(Ynew, cex = 1.5, cols = "red", add = TRUE)
我在网络上有两个观察点模式:obs1
和 obs2
。这些点被观察并记入现场测量书。其中一些点(比如 s
)总是在同一位置找到。即 s
对 obs1
和 obs2
都是通用的。在我计算强度或任何其他过程之前,我想从点模式中排除这个集合 s
。
有没有办法(command/function)比较两个点过程并去除它们之间的共同点?
我现在能想到的最好的事情就是计算最近的邻居 跨越如下两种模式。
人工数据集,其中 X 的点 2 和 3 对应于点 1 和 Y 的 2 个:
library(spatstat)
X <- unmark(chicago)[1:3]
Y <- unmark(chicago)[2:5]
plot(X, chars = 24, cols = "blue")
plot(Y, cex = 1.5, cols = "red", add = TRUE)
交叉距离:
d <- nncross(X, Y, what = c("dist", "which"))
在 Y 中具有非常近邻的点的 X 中的 ID:
whichX <- which(d$dist <= .Machine$double.eps)
Y中对应点:
whichY <- d$which[whichX]
结果图:
Xnew <- X[-whichX]
Ynew <- Y[-whichY]
plot(Xnew, chars = 24, cols = "blue")
plot(Ynew, cex = 1.5, cols = "red", add = TRUE)