inla.over_sp_mesh {INLA}R Documentation

Check which mesh triangles are inside a polygon

Description

Wrapper for the sp::over() method to find triangle centroids or vertices inside sp polygon objects. [Deprecated] since 23.06.06 in favour of inlabru::fm_contains() when inlabru version ⁠>= 2.7.0.9011⁠ is installed, and since 23.08.02 in favour of fmesher::fm_contains() when fmesher.

Usage

inla.over_sp_mesh(x, y, type = c("centroid", "vertex"), ignore.CRS = FALSE)

Arguments

x

geometry (typically a sp::SpatialPolygons() object) for the queries

y

an inla.mesh() object

type

the query type; either 'centroid' (default, for triangle centroids), or 'vertex' (for mesh vertices)

ignore.CRS

logical; whether to ignore the coordinate system information in x and y (default FALSE)

Value

A vector of triangle indices (when type is 'centroid') or vertex indices (when type is 'vertex')

Author(s)

Haakon Bakka, bakka@r-inla.org, and Finn Lindgren finn.lindgren@gmail.com

Examples

if (require("sp", quietly = TRUE)) {
    # Create a polygon and a mesh
    obj <- sp::SpatialPolygons(
        list(sp::Polygons(
            list(sp::Polygon(rbind(
                c(0, 0),
                c(50, 0),
                c(50, 50),
                c(0, 50)
            ))),
            ID = 1
        )),
        proj4string = fmesher::fm_CRS("longlat_globe")
    )
    mesh <- inla.mesh.create(globe = 2, crs = fmesher::fm_CRS("sphere"))

    ## 3 vertices found in the polygon
    inla.over_sp_mesh(obj, mesh, type = "vertex")

    ## 3 triangles found in the polygon
    inla.over_sp_mesh(obj, mesh)

    ## Multiple transformations can lead to slightly different results due to edge cases
    ## 4 triangles found in the polygon
    inla.over_sp_mesh(
        obj,
        fmesher::fm_transform(mesh, crs = fmesher::fm_crs("mollweide_norm"))
    )
}

[Package INLA version 25.06.13 Index]