Interface between sp and bnd format | R Documentation |
Convert geographical information objects of class "SpatialPolygons" (or specializations) from R-package sp to objects of class "bnd" from R-package BayesX and vice versa.
sp2bnd(spObject, regionNames, height2width, epsilon)
bnd2sp(bndObject)
spObject |
object of class "SpatialPolygons" (or specializations) |
regionNames |
character vector of region names (parallel to the Polygons list in spObject), defaults to the IDs |
height2width |
ratio of total height to width, defaults to the bounding box values |
epsilon |
how much can two polygons differ (in maximum squared Euclidean distance) and still match each other?, defaults to machine precision |
bndObject |
object of class "bnd" |
Equivalent object in the other format.
Daniel Sabanes Bove
nb2gra
, gra2nb
for conversion
between the neighborhood structure formats and
read.bnd
, write.bnd
for the interface to
the BayesX files.
## Not run: ## bnd to sp:
germany <- read.bnd(system.file("examples/germany2001.bnd", package="BayesX"))
spGermany <- bnd2sp(germany)
## plot the result together with the neighborhood graph
library(sp)
plot(spGermany)
library(spdep)
nbGermany <- poly2nb(spGermany)
plot(nbGermany, coords=coordinates(spGermany), add=TRUE)
## example with one region inside another
spExample <- spGermany[c("7211", "7235"), ]
plot(spExample)
plot(poly2nb(spExample), coords=coordinates(spExample), add=TRUE)
## now back from sp to bnd:
bndGermany <- sp2bnd(spGermany)
drawmap(map=bndGermany)
## compare names and number of polygons
stopifnot(identical(names(bndGermany),
names(germany)),
identical(length(bndGermany),
length(germany)))
## compare contains-relations
surrounding <- attr(bndGermany, "surrounding")
whichInner <- which(sapply(surrounding, length) > 0L)
bndContainsData <- data.frame(inner=names(bndGermany)[whichInner],
outer=unlist(surrounding))
surrounding <- attr(germany, "surrounding")
whichInner <- which(sapply(surrounding, length) > 0L)
originalContainsData <- data.frame(inner=names(germany)[whichInner],
outer=unlist(surrounding))
stopifnot(all(bndContainsData[order(bndContainsData$inner), ] ==
originalContainsData[order(originalContainsData$inner), ]))
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.