Compute the nearest neighbour function of a point pattern on a linear network.
# S3 method for lpp
nnfun(X, ..., k=1)
A point pattern on a linear network
(object of class "lpp"
).
Integer. The algorithm finds the k
th nearest neighbour in
X
from any spatial location.
Other arguments are ignored.
A function
in the R language, with arguments x,y
and optional
arguments seg,tp
.
It also belongs to the class "linfun"
which has methods
for plot
, print
etc.
The (geodesic) nearest neighbour function of a
point pattern X
on a linear network L
tells us which point of X
is closest to
any given location.
If X
is a point pattern on a linear network L
,
the nearest neighbour function of X
is the mathematical function \(f\) defined for any
location \(s\) on the network by f(s) = i
, where
X[i]
is the closest point of X
to the location s
measured by the shortest path. In other words the value of f(s)
is the identifier or serial number of the closest point of X
.
The command nnfun.lpp
is a method for the generic command
nnfun
for the class "lpp"
of point patterns on a linear network.
If X
is a point pattern on a linear network,
f <- nnfun(X)
returns a function
in the R language, with arguments x,y, …
, that represents the
nearest neighbour function of X
. Evaluating the function f
in the form v <- f(x,y)
, where x
and y
are any numeric vectors of equal length containing coordinates of
spatial locations, yields a vector of identifiers or serial numbers of
the data points closest to these spatial locations.
More efficiently f
can take the arguments
x, y, seg, tp
where seg
and tp
are the local
coordinates on the network.
The result of f <- nnfun(X)
also belongs to the class
"linfun"
.
It can be printed and plotted immediately as shown in the Examples.
It can be converted to a pixel image
using as.linim
.
To compute the distance to the nearest neighbour, see
distfun.lpp
.
# NOT RUN {
data(letterR)
X <- runiflpp(3, simplenet)
f <- nnfun(X)
f
plot(f)
# }
Run the code above in your browser using DataLab