Accessibility and Travel Impedance functions in the GeoDms

The following GeoDMS functions/accessibility calculation techniques can be used in Accessibility calculations:


 * as the crow flies
 * dist
 * grid
 * potential, proximity
 * griddist
 * network

Within the context of the GeoDMS, a network is considered a structure defined by a set of nodes, called Node, a set of links, called Link, a Measure, two attributes that relate Links to Nodes, F1 and F2, and one attribute that relates Links to a Measure of Impedance, a non-negative number indicating travel distance, time, of cost.


 * connect
 * dijkstra functions
 * service_area
 * trace_back, routes

=New variants of dijkstra= Starting from GeoDMS 7.115 a new syntax will be introduced. See dijkstra functions for a full description in progress.

=Obsolete variants of dijkstra in GeoDMS 7.114=

The following information only relates to implementations that use the GeoDMS 7.114 options. Install GeoDMS 7.115 (or later) and continue reading at dijkstra functions for new implementations. Use the following only to refer to GeoDMS 7.114 code, for instance to consider porting it to the superior possibilities of GeoDMS 7.115.

Starting from GeoDMS 7.113, a new set of variants of dijkstra and dijkstra_od have been implemented. They allow for trip distribution, network flow assignment and the generation per OD pair of an alternative impedance measure and/or the sequence of links of the found routes. Furthermore, Origin Zones and Destination Zones can be specified as a set of startPoints or endPoints that relate to the network nodes with an optional additional Impedance per startPoint and/or endPoint.

The operation names start with
 * ds when all given startPoints have to be considered as a single Origin Zone, resulting in:
 * an attribute: DstZone->Measure with the lowest route Impedance per Destination Zone. When no destinations are specified, all Nodes are considered as separate Destination Zones.


 * dm when startPoints can relate to multiple Origin Zones, resulting in
 * a unit reflecting the set of all or all found OD-pairs (combinations of Origin and Destination Zones)
 * a sub-item Impedance: OD-pair->Measure, a Measure attribute of OD-pair with the lowest route Impedance per found OD-pair.
 * when _impcut or _dstlimit are used (and therefore not all OD-pairs are to be found):
 * a sub-item OrgZone_rel: OD-pair->OrgZone, an attribute of OD-pair that relates to the Origin Zones.
 * a sub-item DstZone_rel: OD-pair->DstZone, an attribute of OD-pair that relates to the Destination Zones.

Both require at least the following arguments:
 * \( \text{Impedance}: \text{Links} \rightarrow \text{MeasureType} \), a Measure (Float32 or Float64) attribute of Links with the Impedance per Link.
 * \( \text{F1}: \text{Links} \rightarrow \text{Nodes} \), a Node attribute of Links indicating the from Node of a Link.
 * \( \text{F2}: \text{Links} \rightarrow \text{Nodes} \), a Node attribute of Links indicating the to Node of a Link.

Optional Suffixes in order of usage

 * _directed: the routes from an startPoint to an endPoint must only traverse link in a forward direction, thus from \(\text{F1}\) to \(\text{F2}\) and not vice versa. Without this suffix, both directions are allowed.


 * _On, _Oz, _Oiz, _Onz, _Oniz: specify a set of Origin Zones. For the singe origin version, ds, only _Sn, is allowed and obligatory. The characters after the O indicate additional arguments that must be provided and will be used:
 * the n indicates the use of an additional argument: \(\text{startPoint}\rightarrow\text{Node}\), a Node attribute of startPoint in order to select a subset of nodes as startPoints. Required for the ds variants. Default for the dm variants: all Nodes are startPoints.
 * the i indicates the use of an additional argument: \(\text{startPoint}\rightarrow\text{MeasureType}\), as extra Impedance attribute of startPoint, useful only when Origin Zones contain multiple startPoints or when _tg or _na have to take account for auto-interaction. Default: zero.
 * the z indicates the use of an additional argument: \(\text{startPoint}\rightarrow\text{OrgZone}\), an Origin Zone attribute of startPoint, in order to define multiple startPoints per Origin Zone. Default: all startPoints are separate zones for the dm variants and a single zone for the ds variants.


 * _Dn, _Dz, _Diz, _Dnz, _Dniz: specify a set of Destination Zones.
 * the n indicates a \(\text{endPoint} \rightarrow \text{Node} \): a Node attribute of endPoint in order to select a subset of nodes as endPoints. Default: all Nodes are endPoints
 * the i indicates a \(\text{endPoint} \rightarrow \text{MeasureType} \), an ImpedanceType attribute of endPoint, useful only when Destination Zones contain multiple endPoints.
 * the z indicates a \(\text{endPoint} \rightarrow \text{DstZone} \), a Destination Zone per endPoint, in order to define multiple endPoints per Destination Zone.


 * _impcut: a maximum route impedance will limit the route development, which requires as additional argument: \(\text{OrgZone}\rightarrow\text{Measure}\) or \(\text{void}\rightarrow\text{Measure}\), a Measure attribute of Origin Zone or void.


 * _dstlimit: a maximum amount of destinations per origin zone will limit the route development, which requires 2 additional arguments:
 * \(\text{OrgZone}\rightarrow\text{Mass}\) or \(\text{void}\rightarrow\text{Mass}\) (must have the same ValuesType as Measure), a Mass attribute of OrgZone or void that sets a maximum on the amount of Mass to be reached at the DstZones.
 * \(\text{DstZone}\rightarrow\text{Mass}\) or \(\text{void}\rightarrow\text{Mass}\) (must have the same ValuesType as Measure), a Mass attribute of DesZone or void that indicates a Mass for each DstZone, which is accumulated until the limit is reached for each SrcZone.


 * _ai: produces a sub-item attribute named AlternativeImp with the total alternativeLinkImpedance of the route of each OD-pair.  This requires an additional argument: Links->MeasureType, an alternative impedance per Link, which must have the same values type as the original impedance.

The use of any of these two options require 3 additional arguments:
 * _td: trip distribution, which produces two sub-items:
 * a MassType attribute of Origin Zone, named OrgMass, aka \(D_i\), defined as \( D_i:= \sum\limits_{j} w_j \cdot t_{ij} \cdot C_j^0 = \sum\limits_{j} w_j \cdot t_{ij}\), with \( t_{ij} := d_{ij}^{-\beta} \).
 * a MassType attribute of Destination Zone, named DstMass, aka \(C_j\), defined as \( C_j := \sum\limits_i v_i \cdot w_j \cdot t_{ij} \cdot D_i^{-1}\). Note that \( \sum\limits_j C_j = \sum\limits_i v_i \).
 * _na: network assignment, which produces a traffic flow assignment as MassType attribute of LinkSet named LinkFlow, defined as \( \text{LinkFlow}_{l} := \sum\limits_{l \in i \rightarrow j}\left[v_i \cdot w_j \cdot t_{ij} \cdot D_i^{-1}\right]\).
 * \( v_i \): OrgZone->MassType, an Trip Generation Weight attribute of the Origin Zones
 * \( w_j \): DstZone->MassType, an Trip Distribution Weight attribute of the Destination Zones
 * \( \beta \) : void->Float32, is the parameter (an attribute of void) that indicates the rate of distance decay. \( \beta = 1.0 \) indicates a \( 1/r \) decay.


 * _pls: produces a sub-item \(\text{LinkSet}: \text{OD} \rightarrow \text{Link-sequence} \), an attribute with the sequence of Links of each route.
 * _ptb: produces a sub-item \(\text{TraceBack}: \text{Node} \rightarrow \text{Node} \), an attribute with for each Node the previous Node of the tree(s) that have grown from the startPoint Node(s). This option is only available for the ds variants.