Use vector files for import and export of weights
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")
nb |
a neighbour object of class |
wts |
list of general weights corresponding to neighbours |
coords |
matrix of region point coordinates, a |
proj4string |
default NULL; if |
as_sf |
output object in |
listw |
a |
df |
a data frame read from a shapefile, derived from the output of |
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 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.
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.
Original idea due to Gidske Leknes Andersen, Department of Biology, University of Bergen, Norway
Roger Bivand Roger.Bivand@nhh.no
columbus <- st_read(system.file("shapes/columbus.shp", 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.