| line2network {riverdist} | R Documentation | 
Create a River Network Object from a Shapefile
Description
Uses read_sf in package 'sf' to read a river shapefile, and establishes connectivity of segment endpoints based on spatial proximity.
Usage
line2network(
  sf = NULL,
  path = ".",
  layer = NA,
  tolerance = 100,
  reproject = NULL,
  autofix = TRUE
)
Arguments
| sf | Optional input as an sf object, if shapefile has already been read into the R environment. | 
| path | File path, default is the current working directory. | 
| layer | Name of the shapefile, without the .shp extension. | 
| tolerance | Snapping tolerance of segment endpoints to determine connectivity. Default is 100, therefore care should be exercised when working with larger units of distance, such as km. | 
| reproject | A valid projection, if the shapefile is to be re-projected. Re-projection is done using st_transform in package 'sf'. | 
| autofix | Whether to automatically apply two corrections: removal of duplicate segments, and segments with lengths shorter than the connectivity tolerance. Defaults to 'TRUE'. | 
Value
Returns an object of class "rivernetwork" containing all
spatial and topological information.  See rivernetwork-class.
Note
Since distance can only be calculated using projected coordinates, 
line2network() will generate an error if a non-projected input 
shapefile is detected.  To resolve this, the shapefile can be re-projected 
in a GIS environment, or using reproject=, shown in the second 
example below.
Author(s)
Matt Tyers, Jemma Stachelek
Examples
filepath <- system.file("extdata", package="riverdist")
Gulk_UTM5 <- line2network(path=filepath, layer="Gulk_UTM5")
plot(Gulk_UTM5)
## Reading directly from an sf object
sf <- sf::read_sf(dsn = filepath, layer = "Gulk_UTM5")
Gulk_UTM5 <- line2network(sf=sf)
plot(Gulk_UTM5)
## Re-projecting in Alaska Albers Equal Area projection:
AKalbers <- "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 
    +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs +ellps=GRS80"
    
Gulk_AKalbers <- line2network(path=filepath, layer="Gulk_UTM5", reproject=AKalbers)
plot(Gulk_AKalbers)