Convert a dodgr
graph into an equivalent sf::sfc
object.
Source: R/graph-conversion.R
dodgr_to_sfc.Rd
Convert a dodgr
graph into a list
composed of
two objects: dat
, a data.frame
; and
geometry
, an sfc
object from the (sf) package.
Works by aggregating edges into LINESTRING
objects representing longest sequences between all junction nodes. The
resultant objects will generally contain more LINESTRING
objects than
the original sf object, because the former will be bisected at every
junction point.
Value
A list containing (1) A data.frame
of data associated with the
sf
geometries; and (ii) A Simple Features Collection (sfc
) list of
LINESTRING
objects.
Note
The output of this function corresponds to the edges obtained from
dodgr_contract_graph
. This function does not require the sf package
to be installed; the corresponding function that creates a full sf
object - dodgr_to_sf does requires sf to be installed.
See also
Other conversion:
dodgr_deduplicate_graph()
,
dodgr_to_igraph()
,
dodgr_to_sf()
,
dodgr_to_tidygraph()
,
igraph_to_dodgr()
Examples
hw <- weight_streetnet (hampi)
nrow (hw)
#> [1] 6813
xy <- dodgr_to_sfc (hw)
dim (hw) # 5.845 edges
#> [1] 6813 16
length (xy$geometry) # more linestrings aggregated from those edges
#> [1] 744
nrow (hampi) # than the 191 linestrings in original sf object
#> [1] 236
dim (xy$dat) # same number of rows as there are geometries
#> [1] 744 16
# The dodgr_to_sf function then just implements this final conversion:
# sf::st_sf (xy$dat, geometry = xy$geometry, crs = 4326)