как удалить одинаковые точки из разных точечных шаблонов

У меня есть два наблюдаемых точечных шаблона в сети: obs1 и obs2. Эти точки наблюдаются и заносятся в журнал полевых измерений. Некоторые из них (скажем, s) всегда находятся в одном и том же месте. То есть s является общим для obs1 и obs2. Я хочу исключить этот набор s из точечного рисунка, прежде чем рассчитывать интенсивность или любой другой процесс.

Есть ли способ (команда / функция) сравнить два точечных процесса и удалить общие точки между ними?


person BKS    schedule 20.07.2017    source источник


Ответы (1)



Лучшее, что я могу сейчас придумать, - это вычислить ближайших соседей по двум шаблонам, как показано ниже.

Искусственный набор данных, где точки 2 и 3 из X соответствуют точкам 1 и 2 из Y:

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"))

Id в X точек с очень близким соседом в Y:

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)

person Ege Rubak    schedule 20.07.2017