Last chance! 50% off unlimited learning
Sale ends in
Compute the distance function of an object, and return it as a function.
distfun(X, …) # S3 method for ppp
distfun(X, …, k=1, undef=Inf)
# S3 method for psp
distfun(X, …)
# S3 method for owin
distfun(X, …, invert=FALSE)
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.
An integer. The distance to the k
th nearest point
will be computed.
The value that should be returned if the distance is undefined
(that is, if X
contains fewer than k
points).
If TRUE
, compute the distance transform of the
complement of X
.
A function
with arguments x,y
.
The function belongs to the class "distfun"
which has
methods for print
and summary
, and for geometric
operations like shift
.
It also belongs to the class "funxy"
which has methods
for plot
, contour
and persp
.
The “distance function” of a set of points f(x,y)
is the shortest distance from
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
.
distmap
,
summary.distfun
,
methods.distfun
,
methods.funxy
,
plot.funxy
# NOT RUN {
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)
domain(d)
summary(d)
z <- d(japanesepines)
# }
Run the code above in your browser using DataLab