2017-07-20 1 views
0

Ich habe zwei beobachtete Punktmuster in einem Netzwerk: obs1 und obs2. Diese Punkte werden beobachtet und im Feldmessbuch vermerkt. Einige Punkte darunter (zB s) befinden sich immer am selben Ort. Das ist s ist sowohl für obs1 und obs2 gemeinsam. Ich möchte diese Menge s aus dem Punktmuster ausschließen, bevor ich die Intensität oder irgendeinen anderen Prozess berechne.So entfernen Sie die gleichen Punkte von verschiedenen Punktmustern

Gibt es einen Weg (Befehl/Funktion), um zwei Punkte Prozesse zu vergleichen und die gemeinsamen Punkte zwischen ihnen zu entfernen?

Antwort

0


Das Beste, was ich von jetzt denken kann, ist wie unten nächsten Nachbarn über die beiden Muster zu berechnen.

Artificial Datensatzes, wo die Punkte 2 und 3 von X, um Punkte entsprechen 1 und 2 von 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) 

Querabstände:

d <- nncross(X, Y, what = c("dist", "which")) 

Id in X der Punkte mit sehr nahem Nachbar in Y:

whichX <- which(d$dist <= .Machine$double.eps) 

entsprechende Punkte in Y:

whichY <- d$which[whichX] 

resultierende Diagramm:

Xnew <- X[-whichX] 
Ynew <- Y[-whichY] 
plot(Xnew, chars = 24, cols = "blue") 
plot(Ynew, cex = 1.5, cols = "red", add = TRUE) 

Verwandte Themen