Learn R Programming

surveillance (version 1.20.3)

poly2adjmat: Derive Adjacency Structure of "SpatialPolygons"

Description

Wrapping around functionality of the spdep package, this function computes the symmetric, binary (0/1), adjacency matrix from a "SpatialPolygons" object. It essentially applies nb2mat(poly2nb(SpP, ...), style="B", zero.policy=zero.policy).

Usage

poly2adjmat(SpP, ..., zero.policy = TRUE)

Value

a symmetric numeric indicator matrix of size length(SpP)^2 representing polygon adjacencies.

Arguments

SpP

an object inheriting from "SpatialPolygons".

...

arguments passed to poly2nb. Its snap argument might be particularly useful to handle maps with sliver polygons.

zero.policy

logical indicating if islands are allowed, see nb2mat.

Author

(of this wrapper) Sebastian Meyer

See Also

poly2nb in package spdep

Examples

Run this code
if (requireNamespace("spdep")) {
    ## generate adjacency matrix for districts of Bayern and Baden-Wuerttemberg
    data("fluBYBW")
    adjmat <- poly2adjmat(fluBYBW@map)

    ## same as already stored in the neighbourhood slot (in different order)
    stopifnot(all.equal(adjmat,
                        neighbourhood(fluBYBW)[rownames(adjmat),colnames(adjmat)]))

    ## a visual check of the district-specific number of neighbours
    plot(fluBYBW@map)
    text(coordinates(fluBYBW@map), labels=rowSums(adjmat==1), font=2, col=2)

    ## the neighbourhood graph can be plotted with spdep
    plot(spdep::mat2listw(adjmat), coordinates(fluBYBW@map))
}

Run the code above in your browser using DataLab