如何从不同的点模式中删除相同的点

how to remove same points from different point patterns

我在网络上有两个观察点模式:obs1obs2。这些点被观察并记入现场测量书。其中一些点(比如 s)总是在同一位置找到。即 sobs1obs2 都是通用的。在我计算强度或任何其他过程之前,我想从点模式中排除这个集合 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)