Demand Betweenness (OD Flow)

Accessible via Processing > Cityseer > Demand Betweenness (OD Flow). Computes demand-weighted flow betweenness from a spatial interaction model. Trips are allocated from weighted origins (for example population) to weighted destinations (for example shops or amenities) with distance decay, then routed along shortest network paths so that intermediate streets accumulate the flow passing through them. Each origin’s full weight is conserved and distributed across its reachable destinations.

Input Parameters

ParameterDescriptionDefault
Street network line layerA line layer in a projected metre-based CRS(required)
Origins layerPoint or polygon layer of demand origins. Polygon centroids are used.(required)
Origin weight fieldNumeric column giving each origin’s weight, for example population(required)
Destinations layerPoint or polygon layer of destinations. Polygon centroids are used.(required)
Destination weight fieldNumeric column giving each destination’s attractiveness weight(required)
Distance thresholdsComma-separated distances in metres800
Max snap distanceMaximum distance (metres) for assigning origins and destinations to the network (nearest street, with the assignment offset included in routed distances). Points beyond this are dropped.100
Closest destination onlyRoute each origin’s full weight to its single nearest reachable destination instead of allocating across all of themFalse
Boundary polygonOptional polygon layer. Segments inside the boundary are written to the output.(none)
Decay expressionAdvanced. Distance-decay for the allocation, using c (metric distance) and p (progress = c / threshold). For a classic gravity model on absolute distance use for example exp(-0.002 * c).exp(-4 * p)
ParticipationAdvanced. Share of people at a typical location who make a trip. 1 = everyone travels (conserved flows); below 1 a stay-home option enters the choice set. Walking mode shares suggest 0.15-0.3.1.0
Shortest-path tolerance %Advanced. Spreads flow across near-shortest routes. 0 = exact shortest paths only. Keep below 2%.0.0
Time thresholdsAdvanced. Comma-separated minutes; overrides distances when set. Converted to metres using the walking speed.(none)
Walking speedAdvanced. Metres per second, used to convert minutes to distances.1.33

Output

The output is a line layer with the original street segments and a flow column per distance threshold:

cc_demand_<distance>

A segment’s value is the total participating origin weight routed through it (at full participation, the total origin weight), so values are comparable across runs that use the same origin weights and participation setting.

Model

For each origin, the allocated flow to each reachable destination is proportional to the destination’s weight multiplied by the decay function of the network distance, normalised over the reachable offer plus an optional stay-home alternative. This is a singly (origin-)constrained spatial interaction model with a participation (outside) option: the decay expression shapes destination choice, while the participation share governs how much travel occurs at all, falling where accessibility is low. At full participation the classic gravity model is recovered with an exponential decay on absolute distance. See the Origin-Destination Flows guide for background and worked examples in Python.