inla.nonconvex.hull {INLA} | R Documentation |
Constructs a nonconvex boundary for a point set using morphological operations.
inla.nonconvex.hull( points, convex = -0.15, concave = convex, resolution = 40, eps = NULL, crs = NULL ) inla.nonconvex.hull.basic( points, convex = -0.15, resolution = 40, eps = NULL, crs = NULL )
points |
2D point coordinates (2-column matrix). Can alternatively be
a |
convex |
The desired extension radius. Also determines the smallest allowed convex curvature radius. Negative values are interpreted as fractions of the approximate initial set diameter. |
concave |
The desired minimal concave curvature radius. Default is
|
resolution |
The internal computation resolution. A warning will be issued when this needs to be increased for higher accuracy, with the required resolution stated. |
eps |
The polygonal curve simplification tolerance used for simplifying
the resulting boundary curve. See |
crs |
An optional |
Morphological dilation by convex
, followed by closing by
concave
, with minimum concave curvature radius concave
. If
the dilated set has no gaps of width between
2*convex*(sqrt(1+2*concave/convex) - 1)
and 2*concave, then the minimum convex curvature radius is
convex
. Special case concave=0
delegates to
inla.nonconvex.hull.basic
The implementation is based on the identity
dilation(a) & closing(b) = dilation(a+b) & erosion(b)
where all operations are with respect to disks with the specified radii.
An inla.mesh.segment()
object.
Requires nndistF
from the splancs
package.
Finn Lindgren finn.lindgren@gmail.com
if (require(splancs)) { loc <- matrix(runif(20), 10, 2) boundary <- inla.nonconvex.hull(loc, convex = 0.2) lines(boundary, add = FALSE) points(loc) }