R: Distance Map as a Function

distfun {spatstat} | R Documentation

## 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, ..., k=1, undef=Inf)

      ## S3 method for class 'psp'
    distfun(X, ...)

      ## S3 method for class 'owin'
    distfun(X, ..., 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 `k`th nearest point will be computed.
`undef` | The value that should be returned if the distance is undefined (that is, if `X` contains fewer than `k` points).
`invert` | If `TRUE`, compute the distance transform of the complement of `X`.

### 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 R language, 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`.

### 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`.

### Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner r.turner@auckland.ac.nz and Ege Rubak rubak@math.aau.dk.

### See Also

`distmap`, `plot.funxy`

### Examples

       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)

[Package spatstat version 1.54-0 Index]