The link and node subset selection mechanisms have undergone a complete overhaul in Release 2.0. Before, link selection was always based on selecting a subset of link types by means of the question
Enter: Link types (from,to) =1,7 =11,17 =In the above example, all links having a link type between 1 and 7 or between 11 and 17 are selected. Similarly, selection of a subset of nodes was always based on node numbers.
These somewhat rigid mechanisms have now been replaced using a much more general approach that gives the user access to any link or node attribute to base the subset selection upon. To keep the system as compatible as possible with the previous version, it still defaults to link type (resp. node number) selection, if used in the same way as before. E.g., answering to the new link selection question as above
Enter: Selected link types or attributes (from,to) =1,7 =11,17 =still yields the same link subset as a result. However, it is now also possible to prepend attribute keywords to the value range, to complement the value range and to use different logical operations to alter the current subset as a function of the specified value range. Before getting into details, lets look at a more elaborate example, taken from the Winnipeg data base:
Enter: Selected link types or attributes (from,to) = i=1,165 = or j=1,165 = and mode=c = and volau=1000,999999 =The first line defines the selected set to be all links starting at a centroid (node numbers 1 to 165), i.e. access links. On the second line, all egress links are added. On the third line, only links allowing mode "c" are retained. The current link set now corresponds to the set of car connector links. On the fourth line, finally, only those links are retained that have an auto volume of 1000 or more. Thus, we have selected all high volume auto connector links.
The general format of an input line to the link/node selection question is
[logop] [complop] [keyword] X1 [, X2 [,X3 [, X4 ]]]
or
[specop]
where logop is one of the logical operators "or
", "and
" and "xor
", or
alternatively their short forms "|", "
&
" and "^
".
The default operator is "or
". complop, if present is "not
" or its
short form "!
".
The following table gives the keywords to be used for the different node
and link attributes.
Keyword(s) | Attribute | Node | Link | Comments |
i= | I-node | yes | yes | default for nodes |
j= | J-node | no | yes | |
lanes= lan= | number of lanes | no | yes | |
length= len= | link length | no | yes | |
modes= mod= | link modes | no | yes | mode letter string |
timau= tau= | Auto time on link | no | yes | after assignment |
type= typ= | link type | no | yes | default for links |
ui1= | I-node user data 1 | yes | yes | |
ui2= | I-node user data 2 | yes | yes | |
ui3= | I-node user data 3 | yes | yes | |
uj1= | J-node user data 1 | no | yes | |
uj2= | J-node user data 2 | no | yes | |
uj3= | J-node user data 3 | no | yes | |
ul1= | link user data 1 | no | yes | |
ul2= | link user data 2 | no | yes | |
ul3= | link user data 3 | no | yes | |
vdf= | volume delay fct. | no | yes | |
volad= vad= | Add. volume on link | no | yes | after assignment |
volau= vau= | Auto volume on link | no | yes | after assignment |
volax= vax= | Aux. volume on link | no | yes | after assignment |
xi= | X-coord. of I-node | yes | yes | |
xj= | X-coord. of J-node | no | yes | |
yi= | Y-coord. of I-node | yes | yes | |
yj= | Y-coord. of J-node | no | yes |
The value range is specified by 1, 2, 3 or 4 values. If only one value (X1) is given, the attribute value must be equal to X1 in order to qualify. If two values (X1, X2) are given, the value of the attribute must be greater equal X1 and less equal X2 in order to qualify. If three values are given (X1, X2, X3), the attribute value must be equal to X1, X1+X3, X1+2*X3, X1+3*X3, ... but not exceed X2. Finally, if a fourth non-zero value (X4) is given, the attribute value is first divided by X4 and truncated to an integer value. The resulting value is then tested against X1, X2 and X3 in the same manner as described above.
There are also three special operators [specop] that can be used instead of an attribute range:
Note that the link / node selection dialog is not case sensitive (you can use "LENGTH=", "Length=" or "length="), except for mode letters.
While the new link selection has been implemented throughout the system, there are still some modules using the old node selection mechanism.
This new link/node selection is, by itself, a powerful tool to query the data base. Consider the following real case example. In this application, all centroid connectors have (or should have!) link types 1 (access) or 6 (egress) and volume-delay function 14. We suspect that, due to coding errors, there may be connector links that do not adhere to these conventions and we would like to find them. Note that in this application, centroid numbers are in the range 1000 to 9999 and regular nodes 1 to 999. We call module 2.14 to print the links selected by
Enter: Selected link types or attributes (from,to) = i=1000,9999 = or j=1000,9999 = ? Current set contains 437 links, selected by 1: i=1000,9999 2: or j=1000,9999 Continue link selection = and not type=1 = and not type=6 = ? Current set contains 3 links, selected by 1: i=1000,9999 2: or j=1000,9999 3: and not type=1 4: and not type=6 Continue link selection =and proceed to list the so found erroneous links.