nb2lines {spdep} | R Documentation |
Use arc-type shapefiles for import and export of weights, storing spatial entity coordinates in the arcs, and the entity indices in the data frame.
nb2lines(nb, wts, coords) listw2lines(listw, coords) df2sn(df, i="i", i_ID="i_ID", j="j", wt="wt")
nb |
a neighbour object of class nb |
wts |
list of general weights corresponding to neighbours |
coords |
matrix of region point coordinates |
listw |
a listw object of spatial weights |
df |
a data frame read from a shapefile, derived from the output of nb2lines |
i |
character name of column in df with from entity index |
i_ID |
character name of column in df with from entity region ID |
j |
character name of column in df with to entity index |
wt |
character name of column in df with weights |
The maptools package function write.linelistShape
is used to transport out the list of lines made by nb2lines
or listw2lines
, which is a simple wrapper function. The neighbour and weights objects may be retrieved by converting the specified columns of the attribute data of the Map object into a spatial.neighbour object, which is then converted into a weights list object.
nb2lines
and listw2lines
return a list of two objects, ll
is a list of lines, and df
is a data frame with the from and to indices of the neighbour links and their weights. df2sn
converts the data retrieved from reading the data from df
back into a spatial.neighbour
object.
Original idea due to Gidske Leknes Andersen, Department of Biology, University of Bergen, Norway
Roger Bivand Roger.Bivand@nhh.no
data(columbus) res <- listw2lines(nb2listw(col.gal.nb), coords) str(res$df) fn <- paste(tempdir(), "nbshape", sep="/") write.linelistShape(res$ll, res$df, file=fn) inMap <- read.shape(fn) str(inMap$att.data) diffnb(sn2listw(df2sn(inMap$att.data))$neighbours, col.gal.nb) identical(coords, unique(t(sapply(Map2lines(inMap), function(x) x[1,]))))