Computes the neighbourhood density function, a local version of the \(K\)-function or \(L\)-function, defined by Getis and Franklin (1987).

```
localK(X, ..., rmax = NULL, correction = "Ripley", verbose = TRUE, rvalue=NULL)
localL(X, ..., rmax = NULL, correction = "Ripley", verbose = TRUE, rvalue=NULL)
```

X

A point pattern (object of class `"ppp"`

).

…

Ignored.

rmax

Optional. Maximum desired value of the argument \(r\).

correction

String specifying the edge correction to be applied.
Options are `"none"`

, `"translate"`

, `"translation"`

,
`"Ripley"`

,
`"isotropic"`

or `"best"`

.
Only one correction may be specified.

verbose

Logical flag indicating whether to print progress reports during the calculation.

rvalue

Optional. A *single* value of the distance argument
\(r\) at which the function L or K should be computed.

If `rvalue`

is given, the result is a numeric vector
of length equal to the number of points in the point pattern.

If `rvalue`

is absent, the result is
an object of class `"fv"`

, see `fv.object`

,
which can be plotted directly using `plot.fv`

.
Essentially a data frame containing columns

the vector of values of the argument \(r\) at which the function \(K\) has been estimated

the theoretical value \(K(r) = \pi r^2\) or \(L(r)=r\) for a stationary Poisson process

The command `localL`

computes the *neighbourhood density function*,
a local version of the \(L\)-function (Besag's transformation of Ripley's
\(K\)-function) that was proposed by Getis and Franklin (1987).
The command `localK`

computes the corresponding
local analogue of the K-function.

Given a spatial point pattern `X`

, the neighbourhood density function
\(L_i(r)\) associated with the \(i\)th point
in `X`

is computed by
$$
L_i(r) = \sqrt{\frac a {(n-1) \pi} \sum_j e_{ij}}
$$
where the sum is over all points \(j \neq i\) that lie
within a distance \(r\) of the \(i\)th point,
\(a\) is the area of the observation window, \(n\) is the number
of points in `X`

, and \(e_{ij}\) is an edge correction
term (as described in `Kest`

).
The value of \(L_i(r)\) can also be interpreted as one
of the summands that contributes to the global estimate of the L
function.

By default, the function \(L_i(r)\) or
\(K_i(r)\) is computed for a range of \(r\) values
for each point \(i\). The results are stored as a function value
table (object of class `"fv"`

) with a column of the table
containing the function estimates for each point of the pattern
`X`

.

Alternatively, if the argument `rvalue`

is given, and it is a
single number, then the function will only be computed for this value
of \(r\), and the results will be returned as a numeric vector,
with one entry of the vector for each point of the pattern `X`

.

Inhomogeneous counterparts of `localK`

and `localL`

are computed by `localKinhom`

and `localLinhom`

.

Getis, A. and Franklin, J. (1987)
Second-order neighbourhood analysis of mapped point patterns.
*Ecology* **68**, 473--477.

# NOT RUN { data(ponderosa) X <- ponderosa # compute all the local L functions L <- localL(X) # plot all the local L functions against r plot(L, main="local L functions for ponderosa", legend=FALSE) # plot only the local L function for point number 7 plot(L, iso007 ~ r) # compute the values of L(r) for r = 12 metres L12 <- localL(X, rvalue=12) # Spatially interpolate the values of L12 # Compare Figure 5(b) of Getis and Franklin (1987) X12 <- X %mark% L12 Z <- Smooth(X12, sigma=5, dimyx=128) plot(Z, col=topo.colors(128), main="smoothed neighbourhood density") contour(Z, add=TRUE) points(X, pch=16, cex=0.5) # }