K-th Nearest Point Map
Given a point pattern, this function constructs pixel images giving the distance from each pixel to its k-th nearest neighbour in the point pattern, and the index of the k-th nearest neighbour.
nnmap(X, k = 1, what = c("dist", "which"),
..., W = as.owin(X),
is.sorted.X = FALSE, sortby = c("range", "var", "x", "y"))X |
Point pattern (object of class |
k |
Integer, or integer vector. The algorithm will find the
|
what |
Character string specifying what information should be returned.
Either the nearest neighbour distance ( |
... |
Arguments passed to |
W |
Window (object of class |
is.sorted.X |
Logical value attesting whether the point pattern |
sortby |
Determines which coordinate to use to sort the point pattern. See Details. |
Given a point pattern X, this function constructs two pixel images:
a distance map giving, for each pixel,
the distance to the nearest point of X;
a nearest neighbour map giving, for each pixel,
the identifier of the nearest point of X.
If the argument k is specified, then the k-th nearest
neighbours will be found.
If what="dist" then only the distance map is returned.
If what="which" then only the nearest neighbour map
is returned.
The argument k may be an integer or an integer vector.
If it is a single integer, then the k-th nearest neighbours
are computed. If it is a vector, then the k[i]-th nearest
neighbours are computed for each entry k[i]. For example, setting
k=1:3 will compute the nearest, second-nearest and
third-nearest neighbours.
A pixel image, or a list of pixel images.
By default (if what=c("dist", "which")), the result is
a list with two components dist and which
containing the distance map and the nearest neighbour map.
If what="dist" then the result is a real-valued pixel image
containing the distance map.
If what="which" then the result is an integer-valued pixel image
containing the nearest neighbour map.
If k is a vector of several integers, then the result is
similar except that each pixel image is replaced by a list of
pixel images, one for each entry of k.
Read this section if you care about the speed of computation.
For efficiency, the algorithm sorts the point pattern X
into increasing order of the x coordinate
or increasing order of the the y coordinate.
Sorting is only an intermediate step;
it does not affect the output, which is always given in the same
order as the original data.
By default (if sortby="range"),
the sorting will occur on the coordinate that has the larger range of
values (according to the frame of the enclosing window of X).
If sortby = "var"), sorting will occur on the coordinate that
has the greater variance (in the pattern X).
Setting sortby="x" or sortby = "y" will specify that
sorting should occur on the x or y coordinate, respectively.
If the point pattern X is already
sorted, then the argument is.sorted.X
should be set to TRUE, and sortby should be set
equal to "x" or "y" to indicate which coordinate
is sorted.
Ties are possible: there may be two data points
which lie exactly the same distance away from a particular pixel.
This affects the results from nnmap(what="which").
The handling of ties is not well-defined: it is not consistent
between different computers and different installations of R.
If there are ties, then different calls to nnmap(what="which")
may give inconsistent results. For example, you may get a different answer
from nnmap(what="which",k=1)
and nnmap(what="which", k=1:2)[[1]].
Adrian Baddeley Adrian.Baddeley@curtin.edu.au
, Rolf Turner r.turner@auckland.ac.nz , and Jens Oehlschlaegel
plot(nnmap(cells, 2, what="which"))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.