fm_bary: Compute barycentric coordinates

View source: R/bary.R

fm_baryR Documentation

Compute barycentric coordinates

Description

Identify knot intervals or triangles and compute barycentric coordinates

Usage

fm_bary(mesh, loc, ...)

## S3 method for class 'fm_mesh_1d'
fm_bary(mesh, loc, method = c("linear", "nearest"), restricted = FALSE, ...)

## S3 method for class 'fm_mesh_2d'
fm_bary(mesh, loc, crs = NULL, ...)

## S3 method for class 'inla.mesh'
fm_bary(mesh, ...)

## S3 method for class 'inla.mesh.1d'
fm_bary(mesh, ...)

Arguments

mesh

fm_mesh_1d or fm_mesh_2d object

loc

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.

method

character; method for defining the barycentric coordinates, "linear" (default) or "nearest"

restricted

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.

crs

Optional crs information for loc

Value

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.

Methods (by class)

  • 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.

Examples

str(fm_bary(fmexample$mesh, fmexample$loc_sf))
str(fm_bary(fm_mesh_1d(1:4), seq(0, 5, by = 0.5)))

fmesher documentation built on July 1, 2024, 5:07 p.m.