nnmark: Mark of Nearest Neighbour

nnmarkR Documentation

Mark of Nearest Neighbour

Description

Given a marked point pattern dataset X this function computes, for each desired location y, the mark attached to the nearest neighbour of y in X. The desired locations y can be either a pixel grid or the point pattern X itself.

Usage

nnmark(X, ..., k = 1, at=c("pixels", "points"),
                 ties=c("first", "mean", "min", "max"),
                 distinct=FALSE)

Arguments

X

A marked point pattern (object of class "ppp").

...

Arguments passed to as.mask to determine the pixel resolution.

k

Single integer. The kth nearest data point will be used.

at

String specifying whether to compute the values at a grid of pixel locations (at="pixels") or only at the points of X (at="points").

ties

Character string (partially matched) indicating how to handle the case of ties, where there are two or more data points at the same location. See Details.

distinct

Logical value specifying how to define nearest neighbours if there are two or more data points at the same location. Applies only when at="points". See Details.

Details

Given a marked point pattern dataset X this function computes, for each desired location y, the mark attached to the point of X that is nearest to y. The desired locations y can be either a pixel grid or the point pattern X itself.

The argument X must be a marked point pattern (object of class "ppp", see ppp.object). The marks are allowed to be a vector or a data frame.

  • If at="points", then for each point in X, the algorithm finds the nearest other point in X, and extracts the mark attached to it. The result is a vector or data frame containing the marks of the neighbours of each point.

  • If at="pixels" (the default), then for each pixel in a rectangular grid, the algorithm finds the nearest point in X, and extracts the mark attached to it. The result is an image or a list of images containing the marks of the neighbours of each pixel. The pixel resolution is controlled by the arguments ... passed to as.mask.

If the argument k is given, then the k-th nearest neighbour will be used.

The arguments ties and distinct specify how to handle the case where two or more data points are at the same spatial location.

  • ties determines how to pool the mark values. If ties="first" (the default), the mark value for this location is taken to be the mark of the data point that is listed first in sequence in the dataset X. If ties="mean", ties="max" or ties="min", the mark value for this location is taken to be the mean, maximum or minimum (respectively) of the mark values of all the data points at this location (after converting the mark values to numerical values).

  • distinct determines how to define nearest neighbours, when at="points". If distinct=TRUE, the nearest neighbour of a data point must be another data point lying a nonzero distance away from it. If distinct=FALSE (the default), then two data points occupying the exact same spatial location can be nearest neighbours.

Value

If X has a single column of marks:

  • If at="pixels" (the default), the result is a pixel image (object of class "im"). The value at each pixel is the mark attached to the nearest point of X.

  • If at="points", the result is a vector or factor of length equal to the number of points in X. Entries are the mark values of the nearest neighbours of each point of X.

If X has a data frame of marks:

  • If at="pixels" (the default), the result is a named list of pixel images (object of class "im"). There is one image for each column of marks. This list also belongs to the class "solist", for which there is a plot method.

  • If at="points", the result is a data frame with one row for each point of X, Entries are the mark values of the nearest neighbours of each point of X.

Author(s)

\spatstatAuthors

.

See Also

Smooth.ppp, marktable, nnwhich

Examples

  plot(nnmark(ants))
  v <- nnmark(ants, at="points")
  v[1:10]
  plot(nnmark(finpines))
  vf <- nnmark(finpines, at="points")
  vf[1:5,]

spatstat/spatstat.geom documentation built on June 14, 2025, 5:50 a.m.