spatstat (version 1.45-2)

distfun: Distance Map as a Function

Description

Compute the distance function of an object, and return it as a function.

Usage

distfun(X, ...)

## S3 method for class 'ppp': distfun(X, \dots, k=1)

## S3 method for class 'psp': distfun(X, \dots)

## S3 method for class 'owin': distfun(X, \dots, invert=FALSE)

Arguments

X
Any suitable dataset representing a two-dimensional object, such as a point pattern (object of class "ppp"), a window (object of class "owin") or a line segment pattern (object of class "psp").
...
Extra arguments are ignored.
k
An integer. The distance to the kth nearest point will be computed.
invert
If TRUE, compute the distance transform of the complement of X.

Value

  • A function with arguments x,y. The function also belongs to the class "distfun" which has a method for print. It also belongs to the class "funxy" which has methods for plot, contour and persp.

Details

The distance function of a set of points $A$ is the mathematical function $f$ such that, for any two-dimensional spatial location $(x,y)$, the function value f(x,y) is the shortest distance from $(x,y)$ to $A$.

The command f <- distfun(X) returns a function in the Rlanguage, with arguments x,y, that represents the distance 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 the values of the distance function at these locations. Alternatively x can be a point pattern (object of class "ppp" or "lpp") of locations at which the distance function should be computed (and then y should be missing).

This should be contrasted with the related command distmap which computes the distance function of X on a grid of locations, and returns the distance values in the form of a pixel image.

The result of f <- distfun(X) also belongs to the class "funxy" and to the special class "distfun". It can be printed and plotted immediately as shown in the Examples. A distfun object can be converted to a pixel image using as.im.

See Also

distmap, plot.funxy

Examples

Run this code
data(letterR)
   f <- distfun(letterR)
   f
   plot(f)
   f(0.2, 0.3)

   plot(distfun(letterR, invert=TRUE), eps=0.1)

   d <- distfun(cells)
   d2 <- distfun(cells, k=2)
   d(0.5, 0.5)
   d2(0.5, 0.5)

   z <- d(japanesepines)

Run the code above in your browser using DataCamp Workspace