# nnfun.lpp

##### Nearest Neighbour Map on Linear Network

Compute the nearest neighbour function of a point pattern on a linear network.

##### Usage

```
# S3 method for lpp
nnfun(X, ..., k=1, value=c("index", "mark"))
```

##### Arguments

- X
A point pattern on a linear network (object of class

`"lpp"`

).- k
Integer. The algorithm finds the

`k`

th nearest neighbour in`X`

from any spatial location.- value
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.

##### Details

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`

.

##### Value

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.

##### See Also

To compute the *distance* to the nearest neighbour, see
`distfun.lpp`

.

##### Examples

```
# NOT RUN {
X <- runiflpp(3, simplenet)
f <- nnfun(X)
f
plot(f)
plot(nnfun(chicago, value="m"))
# }
```

*Documentation reproduced from package spatstat, version 1.64-1, License: GPL (>= 2)*