Skip to content

Accessibility

Jip Claassens edited this page Sep 14, 2023 · 26 revisions

Accessibility is a key factor in the attractiveness of locations for Land Use Allocation. A highly accessible location is well connected to other locations that are relevant for a specified purpose or set of purposes.

Accessibility of a location can be defined as an aggregation of Attraction Potentials of destinations. Aggregation can be done by summation (1-norm if all attractions add up), or taking the maximum (+INF norm if only the best accessibility counts) or something in between. See also Minkowski distance and p-norms.

attraction potential

The attraction potential for an origin-destination relation is defined by the combination of the travel potential with the attraction of that destination.

  • $p_{ij} := f(d_{ij}) $
  • $pot_{ij} := Attraction_{j} \cdot p_{ij}$
  • $Accessibility_{i} := \sum \limits_{j} { pot_{ij}} $

where:

  • $i$ = index of origin zones
  • $j$ = index of destination zones
  • $f(d_{ij})$ = decreasing function (so that nearer or less expensive places are weighted no less than farther or more expensive places) of generalized travel costs, also known as the impedance.

travel potential

A distance decay function defines the relation between travel impedance di**j and travel potential pi**j. The distance decay function must be decreasing. Travel Potential can be calculated with the GeoDMS from travel impedance tables.

Examples of used distance decay functions are:

  • inverse: d → 1/d = d−1
  • inverse squared: d → 1/d2 = d−2
  • Power-b: d → db
  • cut-off: d → if d < dmax then 1 else 0
  • Log-logistic [d in minutes travel time]: d → 1/(1+ea + b ln d) = 1/(1+eadb) = eadb/(eadb+e0d0)
    • with a =  − 6.899 and b = 2.326 for potential to jobs and employees, see Geurs & van Eck, 2001

travel impedance

The Travel Impedance of an origin-destination relation is the cost, time or distance (or a combination thereof) of travelling. It can be specific for one travel-mode but can also represent a combination of travel-modes.

Travel Impedance can be calculated with the GeoDMS:

  • as the crow flies (Eucledian distance)
  • over a road network, using graph theory, for different road users like
    • cars
    • bicycles
    • pedestrians
    • public transport
  • through the air
  • over water

Depending on the required accessibility measure (e.g. based on distance, time, travel costs), different GeoDMS accessibility and travel impedance functions can be applied. The time of day/year can also be relevant for travel impedance and accessibility, examples:

Centrality by random walker distributions (markov modelling)

When an outgoing link of node i to node j has a probability Pij of being chosen by a random walker at node i with $\sum\limits_{j} {P_{ij}} = 1$ for each i, a random walker starting at node i with probability state vector π0 with πi0 indicating the probability of the walker being in node i at stage 0, will in stage t (i.e. after t steps) be in node j with probability (Ptπ0)j, which converges to a stationary markov distribution which is independent of the starting state for a fully connected network. This stationary distribution can be considered as a measure of centrality for a connected set of nodes.

See also: Markov chains on wikipedia or here

If a network has n nodes with an average of k outgoing links, and having distribution πit, calculating $\pi_{j,t+1} := \sum\limits_{i} {P_{ij} \cdot \pi_{it}}$ can be done easily with a simple array lookup(index), multiplication and partitioned summation in O(nk) time.

attribute<float64> link_probability   (link) := 1.0 / float64(pcount(link_F1));// P_ij
attribute<float64> node_probability_0 (node) := 1.0 / pcount(node);
attribute<float64> node_probability_1 (node) := sum(node_probabilty_0[link_F1] * link_probability, link_F2);

By applying the last line iteratively, we can calculate pit iteratively with for_each t.

...
unit<uint32> t: nrofrows = 100 
{
   attribute<string> name := 't' + string(id(t)); 
}
container iteration := for_each_nedv(t/name, 
     sum(' + MakeDefined (t/name[ID(iter)-1], 'node_probability_0') + '[link_F1] * link_probability, link_F2)'
     , node
     , float64);

external links

Home

Data sources:

Clone this wiki locally