
Use vector files 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=NULL, as_sf=FALSE)
listw2lines(listw, coords, proj4string=NULL, as_sf=FALSE)
df2sn(df, i="i", i_ID="i_ID", j="j", wt="wt")
nb2lines
and listw2lines
return a SpatialLinesDataFrame object or an sf object; the data frame contains 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.
a neighbour object of class nb
list of general weights corresponding to neighbours
matrix of region point coordinates, a Spatial
object (points or polygons), or an sfc
object (points or polygons)
default NULL; if coords
is a Spatial or sf object, this value will be used, otherwise the value will be converted appropriately
output object in Spatial
or sf
format, default FALSE, set to TRUE if coords is an sfc
object and FALSE if a Spatial
object
a listw
object of spatial weights
a data frame read from a shapefile, derived from the output of nb2lines
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
Roger Bivand Roger.Bivand@nhh.no
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.
sn2listw
columbus <- st_read(system.file("shapes/columbus.gpkg", package="spData")[1], quiet=TRUE)
col.gal.nb <- read.gal(system.file("weights/columbus.gal", package="spData")[1])
res <- listw2lines(nb2listw(col.gal.nb), st_geometry(columbus))
summary(res)
tf <- paste0(tempfile(), ".gpkg")
st_write(res, dsn=tf, driver="GPKG")
inMap <- st_read(tf)
summary(inMap)
diffnb(sn2listw(df2sn(as.data.frame(inMap)))$neighbours, col.gal.nb)
res1 <- listw2lines(nb2listw(col.gal.nb), as(columbus, "Spatial"))
summary(res1)
Run the code above in your browser using DataLab