poly2nb {spdep}R Documentation

Construct neighbours list from polygon list

Description

The function builds a neighbours list based on regions with contiguous boundaries, that is sharing one or more boundary point. The current function is interpreted and may run slowly for many regions or detailed boundaries.

Usage

poly2nb(pl, bb, row.names = NULL, snap=sqrt(.Machine$double.eps), queen=TRUE)

Arguments

pl list of polygons of class polylist
bb matrix of polygon bounding boxes - columns are LL(x), LL(y), UR(x), UR(y) - if this argument is omitted and the polygon list is freshly generated from "maptools" functions, the bounding boxed will be retreived internally from polygon attributes.
row.names character vector of region ids to be added to the neighbours list as attribute region.id, default seq(1, nrow(x)); if polys has a region.id attribute, it is copied to the neighbours list.
snap boundary points less than snap distance apart are considered to indicate contiguity
queen if TRUE, a single shared boundary point meets the contiguity condition, if FALSE, more than one shared point is required

Value

A neighbours list with class nb

Author(s)

Roger Bivand Roger.Bivand@nhh.no

See Also

summary.nb, plotpolys

Examples

data(columbus)
xx <- poly2nb(polys, bbs)
dxx <- diffnb(xx, col.gal.nb)
library(maptools)
plotpolys(polys, bbs, border="grey")
plot(col.gal.nb, coords, add=TRUE)
plot(dxx, coords, add=TRUE, col="red")
title(main="Differences (red) in Columbus GAL weights (black)\nand polygon generated queen weights")
xxx <- poly2nb(polys, bbs, queen=FALSE)
dxxx <- diffnb(xxx, col.gal.nb)
plotpolys(polys, bbs, border = "grey")
plot(col.gal.nb, coords, add = TRUE)
plot(dxxx, coords, add = TRUE, col = "red")
title(main="Differences (red) in Columbus GAL weights (black)\nand polygon generated rook weights")
cards <- card(xx)
maxconts <- which(cards == max(cards))
if(length(maxconts) > 1) maxconts <- maxconts[1]
fg <- rep("grey", length(polys))
fg[maxconts] <- "red"
fg[xx[[maxconts]]] <- "green"
plotpolys(polys, bbs, col=fg)
title(main="Region with largest number of contiguities")

[Package Contents]