nnclean(X, k, ...) ## S3 method for class 'ppp':
nnclean(X, k, ...,
edge.correct = FALSE, wrap = 0.1,
convergence = 0.001, plothist = FALSE,
verbose = TRUE, maxit = 50)
## S3 method for class 'pp3':
nnclean(X, k, ...,
convergence = 0.001, plothist = FALSE,
verbose = TRUE, maxit = 50)
"ppp"
) or a three-dimensional point pattern
(object of class "pp3"
).k=1
means nearest neighbour,
k=2
means second nearest, etc.hist.default
to control
the appearance of the histogram, if plothist=TRUE
.edge.correct=TRUE
).
A fraction of window width and window height.X
,
obtained by attaching marks to the points of X
.The object also has attributes, as described under Details.
For each point in the pattern, the distance to the $k$th nearest neighbour is computed. Then the E-M algorithm is used to fit a mixture distribution to the $k$th nearest neighbour distances. The mixture components represent the feature and the clutter. The mixture model can be used to classify each point as belong to one or other component.
The function nnclean
is generic, with methods for
two-dimensional point patterns (class "ppp"
)
and three-dimensional point patterns (class "pp3"
)
currently implemented.
The result is a point pattern (2D or 3D) with two additional
columns of marks:
[object Object],[object Object]
The object also has extra information stored in attributes:
"theta"
contains the fitted parameters
of the mixture model, "info"
contains
information about the fitting procedure, and "hist"
contains
the histogram structure returned from hist.default
if plothist = TRUE
.
nndist
,
split.ppp
,
cut.ppp
data(shapley)
X <- nnclean(shapley, k=17)
plot(X, which.marks=1, chars=c(".", "+"), cols=1:2)
plot(X, which.marks=2, cols=function(x)hsv(0.2+0.8*(1-x),1,1))
Y <- split(X, un=TRUE)
plot(Y, chars="+", cex=0.5)
marks(X) <- marks(X)$prob
plot(cut(X, breaks=3), chars=c(".", "+", "+"), cols=1:3)
Run the code above in your browser using DataLab