Use arc-type shapefiles for import and export of weights
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, proj4string=CRS(as.character(NA))) listw2lines(listw, coords, proj4string=CRS(as.character(NA))) df2sn(df, i="i", i_ID="i_ID", j="j", wt="wt")
- a neighbour object of class
- list of general weights corresponding to neighbours
- matrix of region point coordinates
- Object of class CRS; holding a valid proj4 string
listwobject of spatial weights
- a data frame read from a shapefile, derived from the output of
- character name of column in df with from entity index
- character name of column in df with from entity region ID
- character name of column in df with to entity index
- character name of column in df with weights
The maptools package function
writeSpatialShape is used to transport out the list of lines made by
listw2lines, which is a simple wrapper function. The neighbour and weights objects may be retrieved by converting the specified columns of the data slot of the SpatialLinesDataFrame object into a spatial.neighbour object, which is then converted into a weights list object.
listw2linesreturn a SpatialLinesDataFrame object; its data slot contains a data frame with the from and to indices of the neighbour links and their weights.
df2snconverts the data retrieved from reading the data from
dfback into a
Original idea due to Gidske Leknes Andersen, Department of Biology, University of Bergen, Norway
require(maptools) example(columbus) coords <- coordinates(columbus) res <- listw2lines(nb2listw(col.gal.nb), coords) summary(res) fn <- paste(tempdir(), "nbshape", sep="/") writeLinesShape(res, fn=fn) inMap <- readShapeLines(fn) summary(inMap) diffnb(sn2listw(df2sn(as(inMap, "data.frame")))$neighbours, col.gal.nb)