Function is fully vectorized to calculate accept vectors of central points and vectors defining multiple isodistances.
Usage
dodgr_isodists(
graph,
from = NULL,
dlim = NULL,
concavity = 0,
length_threshold = 0,
contract = TRUE,
heap = "BHeap"
)
Arguments
- graph
data.frame
or equivalent object representing the network graph. Fordodgr
street networks, this may be a network derived from either sf or silicate ("sc") data, generated with weight_streetnet.- from
Vector or matrix of points from which isodistances are to be calculated.
- dlim
Vector of desired limits of isodistances in metres.
- concavity
A value between 0 and 1, with 0 giving (generally smoother but less detailed) convex iso-contours and 1 giving highly concave (and generally more detailed) contours.
- length_threshold
The minimal length of a segment of the iso-contour to be made more convex according to the 'concavity` parameter.. Low values will produce highly detailed hulls which may cause problems; if in doubt, or if odd results appear, increase this value.
- contract
If
TRUE
, calculate isodists only to vertices in the contract graph, in other words, only to junction vertices.- heap
Type of heap to use in priority queue. Options include Fibonacci Heap (default;
FHeap
), Binary Heap (BHeap
), Trinomial Heap (TriHeap
), Extended Trinomial Heap (TriHeapExt
, and 2-3 Heap (Heap23
).
Value
A single data.frame
of isodistances as points sorted anticlockwise
around each origin (from
) point, with columns denoting the from
points
and dlim
value(s). The isodistance contours are given as id
values and
associated coordinates of the series of points from each from
point at the
specified isodistances.
Note
Isodists are calculated by default using parallel computation with the
maximal number of available cores or threads. This number can be reduced by
specifying a value via
RcppParallel::setThreadOptions (numThreads = <desired_number>)
.
See also
Other distances:
dodgr_distances()
,
dodgr_dists()
,
dodgr_dists_categorical()
,
dodgr_dists_nearest()
,
dodgr_flows_aggregate()
,
dodgr_flows_disperse()
,
dodgr_flows_si()
,
dodgr_isochrones()
,
dodgr_isoverts()
,
dodgr_paths()
,
dodgr_times()
Examples
graph <- weight_streetnet (hampi)
from <- sample (graph$from_id, size = 100)
dlim <- c (1, 2, 5, 10, 20) * 100
d <- dodgr_isodists (graph, from = from, dlim)