Identify knot intervals or triangles and compute barycentric coordinates
fm_bary(mesh, loc, ...)# S3 method for fm_mesh_1d
fm_bary(mesh, loc, method = c("linear", "nearest"), restricted = FALSE, ...)
# S3 method for fm_mesh_2d
fm_bary(mesh, loc, crs = NULL, ...)
# S3 method for inla.mesh
fm_bary(mesh, ...)
# S3 method for inla.mesh.1d
fm_bary(mesh, ...)
A list with elements t
; either
vector of triangle indices (triangle meshes),
matrix of interval knot indices (1D meshes), or
matrix of lower left box indices (2D lattices),
and bary
, a matrix of barycentric coordinates.
fm_mesh_1d
or fm_mesh_2d
object
Points for which to identify the containing interval/triangle, and
corresponding barycentric coordinates. May be a vector (for 1d) or a matrix
of raw coordinates, sf
, or sp
point information (for 2d).
Arguments forwarded to sub-methods.
character; method for defining the barycentric coordinates, "linear" (default) or "nearest"
logical, used for method="linear"
.
If FALSE
(default), points outside the mesh interval will be given
barycentric weights less than 0 and greater than 1, according to linear
extrapolation. If TRUE
, the barycentric weights are clamped to the (0, 1)
interval.
Optional crs information for loc
fm_bary(fm_mesh_1d)
: Return a list with elements
t
(start and endpoint knot indices) and bary
(barycentric coordinates), both
2-column matrices.
For method = "nearest"
, t[,1]
contains the index of the nearest mesh knot,
and each row of bary
contains c(1, 0)
.
fm_bary(fm_mesh_2d)
: A list with elements t
(vector of triangle indices) and bary
(3-column matrix of barycentric coordinates). Points that were not found
give NA
entries in t
and bary
.
str(fm_bary(fmexample$mesh, fmexample$loc_sf))
str(fm_bary(fm_mesh_1d(1:4), seq(0, 5, by = 0.5)))
Run the code above in your browser using DataLab