R: Use vector files for import and export of weights

nb2lines {spdep} | R Documentation

## Use vector files for import and export of weights

### Description

Use vector files for import and export of weights, storing spatial entity coordinates in the arcs, and the entity indices in the data frame.

### Usage

    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")

### Arguments

`nb` | a neighbour object of class `nb`
`wts` | list of general weights corresponding to neighbours
`coords` | matrix of region point coordinates, a `Spatial` object (points or polygons), or an `sfc` object (points or polygons)
`proj4string` | default NULL; if `coords` is a Spatial or sf object, this value will be used, otherwise the value will be converted appropriately
`as_sf` | output object in `Spatial` or `sf` format, default FALSE, set to TRUE if coords is an `sfc` object and FALSE if a `Spatial` object
`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

### Details

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.

### Value

`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.

### Note

Original idea due to Gidske Leknes Andersen, Department of Biology, University of Bergen, Norway

### Author(s)

Roger Bivand Roger.Bivand@nhh.no

### See Also

`sn2listw`

### Examples

    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)

[Package spdep version 1.2-2 Index]