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

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

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.

Value

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

Author

(of this wrapper) Sebastian Meyer

See also

poly2nb in package spdep

Examples

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))
}