Compute the nearest neighbour function of a point pattern on a linear network.
# S3 method for lpp
nnfun(X, ..., k=1, value=c("index", "mark"))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.
A point pattern on a linear network
(object of class "lpp").
Integer. The algorithm finds the kth nearest neighbour in
X from any spatial location.
String (partially matched) specifying whether to return the
index of the neighbour (value="index", the default)
or the mark value of the neighbour (value="mark").
Other arguments are ignored.
Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner rolfturner@posteo.net and Ege Rubak rubak@math.aau.dk
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.
linfun,
methods.linfun.
To compute the distance to the nearest neighbour, see
distfun.lpp.
X <- runiflpp(3, simplenet)
f <- nnfun(X)
f
plot(f)
plot(nnfun(chicago, value="m"))
Run the code above in your browser using DataLab