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
| Parameter | Description | Default |
|---|---|---|
| Street network line layer | A line layer in a projected metre-based CRS | (required) |
| Origins layer | Point or polygon layer of demand origins. Polygon centroids are used. | (required) |
| Origin weight field | Numeric column giving each origin’s weight, for example population | (required) |
| Destinations layer | Point or polygon layer of destinations. Polygon centroids are used. | (required) |
| Destination weight field | Numeric column giving each destination’s attractiveness weight | (required) |
| Distance thresholds | Comma-separated distances in metres | 800 |
| Max snap distance | Maximum 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 only | Route each origin’s full weight to its single nearest reachable destination instead of allocating across all of them | False |
| Boundary polygon | Optional polygon layer. Segments inside the boundary are written to the output. | (none) |
| Decay expression | Advanced. 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) |
| Participation | Advanced. 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 thresholds | Advanced. Comma-separated minutes; overrides distances when set. Converted to metres using the walking speed. | (none) |
| Walking speed | Advanced. 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.