One of the main features of Release 7 is certainly the possibility to access turn attributes in the network calculator. After having added access to all transit attributes in Release 5, with this new development, the powerful tools available in module 2.41 are now available for all network elements and any combination of network attributes can be used in the calculations.
One major prerequisite for this development was a complete internal restructuring of the intersection table. Up to now, all turn related input data was stored sequentially in the intersection definition table. Only when performing an auto assignment, was the actual turn table constructed. Thus, the entire turn table was just a temporary structure, available only as long as the scenario contained a valid auto assignment.
Even though, from a user's point on view the functionality of module 2.31 is still the same (using the same input file structure and the same dialog, except for the dialog changes implied by the new possibility to display turn attributes as proportional bandwidth plots similar to those generated in module 6.14), the module has been completely rewritten to replace the intersection definition table by a permanent turn table structure. This restructuring has the following advantages for the user:
turn table entries
'' allows. Any attempt
to exceed this limit immediately results in an error condition, so that
consistency checks are no longer needed by the user to ensure that the
auto assignment will not stop with a turn table overflow error.When a data bank is used for the first time with Release 7, the old intersection definition table is automatically converted to the new permanent turn table structure (see the Release Notes for details).
Let us now turn our attention to the implementation of accessing turn data in the network calculator module 2.41. It can be summarized as follows:
P: turn attributes
M: outgoing link attributes
K: k-node attributes
See below for details of these new attribute types.
The attribute keywords for the new turn attributes are as follows:
Keyword: | Attribute: | Comments: |
ptimau | auto turning times | after auto assignment only |
pvolau | auto volumes on turns | after auto assignment only |
pvolad | additional volumes on turns | after auto assignment only |
tpf | turn penalty function index | integer between -1 and mfunc |
up1 up2 up3 | turn user data items | |
@ xxxxx | extra turn attributes | as defined in module 2.42 |
tmpp1 ...tmpp9 | temporary turn attributes | lost when leaving 2.41 |
The keywords for the new attribute type M for the outgoing link are formed
by appending the suffix ``m
'' to the standard link keywords, i.e.
lanm
, lenm
, timaum
, typem
, ul
xm
,
vdfm
, voladm
, volaum
and volaxm
.
Similarly, the
keywords for the K-node attributes are formed by substituting the ``i
''
of the standard node keywords by the letter ``k
'', i.e.
k
, fialik
, inboak
, uk
x,
xk
and yk
.
The following diagram shows the new attribute type hierarchy graph. Note that it is identical to the one used in Release 6, except for the insertion of the new attribute types P, M and K.
As can be seen from the above diagram, the turn attributes P define a new level just above the links and below the transit segments. From the point of view of a turn P, the incoming link corresponds to the standard link L and the outgoing link is accessed via the new link attribute type M. At the node level, in terms of the old turn nomenclature, J is the ``at-node'' (intersection node), I the ``from-node'', and the new node attribute type K defines the ``to-node'' of turn P.
In the hierarchy diagram, it is interesting to note that the turn level P is also connected to the transit segments. In fact, the transit segment S and the corresponding next segment N logically span a turn. This way, it becomes possible to use turn attributes in segment expressions (e.g. to copy auto turn delays to the corresponding bus travel times), or to aggregate transit segment data to the turn level (e.g. to compute turning volumes for transit vehicles or passengers). Also, since the new attribute types M and K are directly usable from segment expressions, they form a natural extension of accessing the attributes related to the next segment N, giving access to all link and node attributes which correspond to segment N.
We conclude this topic by mentioning just some of the many possible applications of this new development:
180*atan(put((xk-xj)*(yj-yi)-(yk-yj)*(xj-xi))/put((xk-xj)*(xj-xi) +(yk-yj) *(yj-yi)))/3.1415926 +360*((get(1)>0)-.5)*(get(2)<0)