Distances on dual-weighted directed graphs using priority-queue shortest paths. Weighted directed graphs have weights from A to B which may differ from those from B to A. Dual-weighted directed graphs have two sets of such weights. A canonical example is a street network to be used for routing in which routes are calculated by weighting distances according to the type of way and mode of transport, yet lengths of routes must be calculated from direct distances.
The Main Function
dodgr_dists()
: Calculate pair-wise distances between specified pairs of points in a graph.
Functions to Obtain Graphs
dodgr_streetnet()
: Extract a street network in Simple Features (sf
) form.weight_streetnet()
: Convert ansf
-formatted street network to adodgr
graph through applying specified weights to all edges.
Functions to Modify Graphs
dodgr_components()
: Number all graph edges according to their presence in distinct connected components.dodgr_contract_graph()
: Contract a graph by removing redundant edges.
Miscellaneous Functions
dodgr_sample()
: Randomly sample a graph, returning a single connected component of a defined number of vertices.dodgr_vertices()
: Extract all vertices of a graph.compare_heaps()
: Compare the performance of different priority queue heap structures for a given type of graph.
Author
Maintainer: Mark Padgham mark.padgham@email.com
Authors:
Andreas Petutschnig
David Cooley
Other contributors:
Robin Lovelace [contributor]
Andrew Smith [contributor]
Malcolm Morgan [contributor]
Shane Saunders (Original author of included code for priority heaps) [copyright holder]
Stanislaw Adaszewski (author of include concaveman-cpp code) [copyright holder]