| as_sfnetwork | R Documentation |
Convert a given object into an object of class sfnetwork.
as_sfnetwork(x, ...)
## Default S3 method:
as_sfnetwork(x, ...)
## S3 method for class 'sf'
as_sfnetwork(x, ...)
## S3 method for class 'sfc'
as_sfnetwork(x, ...)
## S3 method for class 'dodgr_streetnet'
as_sfnetwork(x, ...)
## S3 method for class 'linnet'
as_sfnetwork(x, ...)
## S3 method for class 'psp'
as_sfnetwork(x, ...)
## S3 method for class 'sfNetwork'
as_sfnetwork(x, ...)
## S3 method for class 'tbl_graph'
as_sfnetwork(x, ...)
x |
Object to be converted into a |
... |
Additional arguments passed on to other functions. |
An object of class sfnetwork.
as_sfnetwork(default): By default, the provided object is first converted
into a tbl_graph using
as_tbl_graph. Further conversion into an
sfnetwork will work as long as the nodes can be converted to
an sf object through st_as_sf. Arguments
to st_as_sf can be provided as additional arguments and
will be forwarded to st_as_sf through the
sfnetwork construction function.
as_sfnetwork(sf): Convert spatial features of class
sf directly into a sfnetwork.
Supported geometry types are either LINESTRING or POINT. In
the first case, the lines become the edges in the network, and nodes are
placed at their boundaries. Additional arguments are forwarded to
create_from_spatial_lines. In the latter case, the points
become the nodes in the network, and are connected by edges according to a
specified method. Additional arguments are forwarded to
create_from_spatial_points.
as_sfnetwork(sfc): Convert spatial geometries of class
sfc directly into a sfnetwork.
Supported geometry types are either LINESTRING or POINT. In
the first case, the lines become the edges in the network, and nodes are
placed at their boundaries. Additional arguments are forwarded to
create_from_spatial_lines. In the latter case, the points
become the nodes in the network, and are connected by edges according to a
specified method. Additional arguments are forwarded to
create_from_spatial_points.
as_sfnetwork(dodgr_streetnet): Convert a directed graph of class
dodgr_streetnet directly into a
sfnetwork. Additional arguments are forwarded to
dodgr_to_sfnetwork. This requires the
dodgr package to be installed.
as_sfnetwork(linnet): Convert spatial linear networks of class
linnet directly into a
sfnetwork. Additional arguments are forwarded to
create_from_spatial_lines. This requires the
spatstat.geom package
to be installed.
as_sfnetwork(psp): Convert spatial line segments of class
psp directly into a sfnetwork.
The lines become the edges in the network, and nodes are placed at their
boundary points. Additional arguments are forwarded to
create_from_spatial_lines.
as_sfnetwork(sfNetwork): Convert spatial networks of class
sfNetwork from the stplanr package directly into a
sfnetwork. This will extract the edges as an
sf object and re-create the network structure. Additional
arguments are forwarded to create_from_spatial_lines.The
directness of the original network is preserved unless specified otherwise
through the directed argument.
as_sfnetwork(tbl_graph): Convert graph objects of class
tbl_graph directly into a sfnetwork.
This will work if at least the nodes can be converted to an
sf object through st_as_sf. Arguments
to st_as_sf can be provided as additional arguments and
will be forwarded to st_as_sf through the
sfnetwork construction function. The directness of the original
graph is preserved unless specified otherwise through the directed
argument.
# From an sf object with LINESTRING geometries.
library(sf, quietly = TRUE)
oldpar = par(no.readonly = TRUE)
par(mar = c(1,1,1,1), mfrow = c(1,2))
as_sfnetwork(roxel)
plot(st_geometry(roxel))
plot(as_sfnetwork(roxel))
# From an sf object with POINT geometries.
# For more examples see ?create_from_spatial_points.
as_sfnetwork(mozart)
plot(st_geometry(mozart))
plot(as_sfnetwork(mozart))
par(oldpar)
# From a dodgr_streetnet object.
if (require(dodgr, quietly = TRUE) & require(geodist, quietly = TRUE)) {
as_sfnetwork(dodgr::weight_streetnet(hampi))
}
# From a linnet object.
if (require(spatstat.geom, quietly = TRUE)) {
as_sfnetwork(simplenet)
}
# From a psp object.
if (require(spatstat.geom, quietly = TRUE)) {
set.seed(42)
test_psp = psp(runif(10), runif(10), runif(10), runif(10), window=owin())
as_sfnetwork(test_psp)
}
# From a tbl_graph with coordinate columns.
library(tidygraph, quietly = TRUE)
nodes = data.frame(lat = c(7, 7, 8), lon = c(51, 52, 52))
edges = data.frame(from = c(1, 1, 3), to = c(2, 3, 2))
tbl_net = tbl_graph(nodes, edges)
as_sfnetwork(tbl_net, coords = c("lon", "lat"), crs = 4326)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.