Abstract
This paper demonstrates the sharing of data among transportation networks using a linear referencing system. The process is demonstrated by creating a linear event system for an EMME/2 (transportation modeling software package developed by INRO consultants, Montreal Canada) network on an ArcInfo TIGER street coverage. However, the technique used can be applied to any similarly structured input network. Once converted, the linear event table can be used in conjunction with the input roads network or converted to a coverage of it's own.
Because transportation modeling networks are generally never identically matched to their true spatial form, merging data between the two systems presents numerous challenges. In addition to the general mismatch of shape between two networks, modeling networks also contain links for centroids (to represent network loading points) and sub-networks for pedestrians or fixed guide-way transit systems.
The technique demonstrated in this paper relies on the spatial relationship of two networks, an exact spatial match is not required for a merge to be successful. It requires only a reasnoable proximity between the nodes in the input coverage and the routes in the street network. Thus, the key to success in merging networks relies on the spatial accuracy of the networks.
Most transportation modeling software packages
use a "sketch" network to perform multi-modal assignments.
While often quite detailed, these networks generally do not
reflect the true shape of the street infrastructure. These packages
use nodes and links to represent networks, not bothering with
vertices to give an arc it's shape. By adding more nodes to the
modeling networks it is possible to "shape" the network
to more closely resemble it's true representation. However, this
can also add to the burden of the assignment models without producing
better results. The technique presented here overcomes these inherent problems.
Key Terms
Throughout this paper the input or merged network
will refer to the EMME/2 network from which the linear
event system will be created. The street or road network is in
reference to the TIGER file used as the base network.
Introduction
The idea behind using a linear event system to merge two transportation networks stems from a desire to be able to merge an input network with any given road network without having to modify the underlying road coverage. Additionally, and perhaps the biggest benefit is provided by eliminating maintenance on the input road coverage. Typically linear networks are merged by matching nodes, which often means updating a road coverage to insure that each node in the input network has a matching node in the street network. Using an event system the node matching requirement is eliminated.
The approach presented here takes advantage of the spatial relationship between the two networks. Geographic location is used as the primary key in merging, or relating, the databases. Using a spatially based approach allows the analyst to define or take advantage of their underlying street network; road name or any other form of ID defines routes and measures for the linear referenced database. The only caveat with regard to the data used for ID is that no two sections may overlap and contain an identical ID item. For example, using street name as a route ID would require that east and west bound directions for a divided highway be identified seperately.
Because modeling packages such as EMME/2 produce
loaded assignments for both auto and transit networks, a merged
network allows the sharing of time specific volume and/or time
data with an ArcInfo network. This is useful for many types
of accessibility analysis. Modeling networks can be enhanced
by sharing more accurate or detailed information on length, grade
and facility types available in a street coverage. Merging the
networks also provides for easier integration with validation
data such as vehicle counts.
About EMME/2
EMME/2 defines a network as a series of links
each connected by a starting and ending node. There are no vertices
to give an arc it's shape. All links are defined as one way links.
As a result, a two way street is represented by two separate arcs
sharing the same start and end nodes. The image below displays
an EMME/2 network in its graphical environment.
ArcInfo Implementation
The first step is to convert the EMME/2 network into a coverage. Both nodes and links must be converted. M2View is an ArcView extension independently developed by the author which converts EMME/2 networks into shapefiles.
The street network which will contain the EMME/2
event system must contain an ID field from which a discontinuous
route system can be built. Using the ID, a route system (based
on street names in this case) is created on top of the street network.
Nodes from the EMME/2 network are then added to the routes as
point events. The following graphic illustrates the results of
associating the EMME/2 nodes with the street route system. The
blue diamonds represent EMME/2 nodes which have been associated
with the street network as point events. The green points are
centroid connectors, which should not be events, and the black
points are EMME/2 nodes which should be events on the street coverage.
The input EMME/2 network is green and the street network (TIGER)
is red.
Using a set of nested cursors, each route is
selected and the associated point events are used to select potential
EMME/2 linear events along each route. The resulting set of selected
EMME/2 links represent the potential linear events for the selected
route. Maintaining directionality along a route is achieved by
controlling the route system measure starting position and testing
the route measures of the selected links from and to
nodes. Therefore, a two way street would have two linear events,
one for each direction of the street. Directionality is eastablished as follows:
a route is measured from 0 to N (based on length in this example)
using the lower leftmost corner of the route as a starting position.
The point events are assigned a distance measure along the
route. By testing whether the from node measure is greater
than or less than the to node measure each event can be
assigned a directionality code. In the case of an east-west arterial,
when the from node is less than the to node, the link direction
is eastbound. The following graphic shows an EMME/2 event system
with segment directionality on the street network. South and westbound
events are represented by a 1 and north and eastbound events are
represented with a code of 2. The graphic also illustrates EMME/2
events replicated on the TIGER network (green), an EMME/2 event
which was not replicated on the TIGER network (red) and the EMME/2
network (white) from which the linear event system is being created.
Cleaning it up
The two most common errors which must be rectified are:
The system is self policing in several ways.
First, the number of resulting EMME/2 point and link events is
dictated by the total arcs(links) and nodes of the EMME/2 input
coverage. Assuming all of the input EMME/2 links are represented
in the street network coverage, the resulting events table should
have the same number of records. Identifying and correcting the
errors listed above should yield a linear event table which can
be used to display traffic volumes, speeds or any other relevant
system information. The event system can also be converted into
a coverage and used for network analysis. If desired, the directionality
information contained in the separate events can be folded into
a single event or arc.
Run times
Given the general speed of ArcInfo,
the size of networks being merged, and the horsepower
merging them, this process can take some time.
To process Portland metropolitan area's regional transportation
modeling network requires about ten hours of processing; this network
contains approximately 10,000 nodes and 25,000 links(arcs).
Conclusion
The resulting event system provides a flexible
environment for data sharing which can be manipulated both graphically
and in table form. It also provides a way to share data with
reduced overhead in terms of coverage maintenance. The resulting
event databases can be related to both the TIGER street network
and the EMME/2 coverage using the ArcInfo assigned coverage#.
Additionally, the data can be related based on the from
and to nodes of the respective tables.
/************************************************************ /* m2events.aml * /* * /* AML to create an EMME2 event link event tables for * /* an input street coverage. The AML produces a street * /* route system based on fname for the input street cover. * /* The input street cover aat MUST contain the fields * /* fname and length. * /* * /* The event table produced is named emme2.eve. If the * /* file exists prior to execution it is overwritten. * /* The route system created uses the same name as the input * /* street cover. Again, if it exists, it is overwritten. * /* The event table is related to the route system, thus, * /* is immediately available. Use joinitem to add EMME2 * /* link attributes to the event table. * /* * /* * /* By: Steve Perone 12-19-96 * /************************************************************ &args streets e2links e2nodes /* /* Verify AML invoked at the arc prompt /* /* Test AML syntax &if [null %streets%] or [null %e2links%] &then &do &type Usage: m2events&return &end /* Test if INPUT coverages files exist &if not [exists %streets% -arc] &then &do &type ERROR: %streets% coverage not found! &return &end &if not [exists %e2links% -arc] &then &do &type ERROR: %e2links% coverage not found! &return &end /* Create Street Route System (use street name) /* May want to include fname/length existence test &if [exists %streets% -route.%streets%] &then dropfeatures %streets% SECTION.%streets% arcroute %streets% %streets% fname fname length LL /* Create EMME2 Events on street routes &sv FileStatus [DELETE e2pt.eve -INFO] arm %e2links% %streets% %streets% e2pt.eve node 125 &sv FileStatus [DELETE emme2.eve -INFO] tables /* Create the linear event file in tables /* Define the OUTPUT event table define emme2.eve %streets%# 4 5 b %e2links%# 8 8 I ft-id 1 1 i from 4 12 f 3 to 4 12 f 3 offset 6 6 N 2 [unquote ''] q /* EXIT TABLES ap /* ENTER ARCPLOT /* Declare cursors /* New CURSOR definitions & relates cursor routes declare %streets%.rat%streets% info ro cursor ptevents declare e2pt.eve info ro cursor links declare %e2links%.aat info ro cursor events declare emme2.eve info rw /* Index relate tables arc indexitem %streets%.rat%streets% %streets%# arc indexitem e2pt.eve %streets%# arc indexitem e2pt.eve %e2links%# /* Build the LINEAR EVENT Table cursor events open cursor routes open &sv cnt = 0 &do &while %:routes.aml$next% &sv cnt = %cnt% + 1 &type WORKING ON ROUTE %cnt% &sv rt_id = [value :routes.%streets%#] clearselect e2pt.eve info reselect e2pt.eve info %streets%# = %rt_id% /* Use the point events to select the possible EMME2 links for the select route cursor ptevents open /* Start link selection with and empty set clearselect %e2links%.aat info aselect %e2links%.aat info nselect %e2links%.aat info /* Select links from the EMME2 attribute table &do &while %:ptevents.aml$next% &sv node = [value :ptevents.%e2links%#] aselect %e2links%.aat info fnode# = %node% aselect %e2links%.aat info tnode# = %node% cursor ptevents next &end cursor ptevents close /* Select EMME2 Links composing the event /* Use the ptevents selected above to search for node-id and measure item. /* This process creates 2 events for a two way street, differenitated by /* the field ft-id. /* /* The link directionality will be correct as long the route system is built /* using the LL option. cursor links open &do &while %:links.aml$next% &sv fnode = %:links.fnode#% &sv tnode = %:links.tnode#% /* Find fnode and set it's measure clearselect e2pt.eve info reselect e2pt.eve info %streets%# = %rt_id% reselect e2pt.eve info %e2links%# = %fnode% &sv ID [extract 1 [show select e2pt.eve info]] &if %ID% = 1 &then &do cursor ptevents open &sv fmeasure = %:ptevents.measure% cursor ptevents close /* Find tnode and set it's measure clearselect e2pt.eve info reselect e2pt.eve info %streets%# = %rt_id% reselect e2pt.eve info %e2links%# = %tnode% &sv ID [extract 1 [show select e2pt.eve info]] &if %ID% = 1 &then &do cursor ptevents open &sv tmeasure = %:ptevents.measure% cursor ptevents close /* Output linear EVENT data cursor events insert &sv :events.%streets%# %rt_id% &if %fmeasure% %tmeasure% &then &do &sv :events.from %fmeasure% &sv :events.to %tmeasure% &sv :events.%e2links%# [value :links.%e2links%#] &sv :events.ft-id 1 &end &else &do &sv :events.from %tmeasure% &sv :events.to %fmeasure% &sv :events.%e2links%# [value :links.%e2links%#] &sv :events.ft-id 2 &end &end &end cursor links next &end cursor routes next &end cursor links close cursor events close cursor routes close cursor links remove cursor events remove cursor routes remove cursor ptevents remove /* Make the event data accessible arc indexitem emme2.eve %streets%# eventsource add linear emme2 emme2.eve info linear %streets%# %streets%# from to /* eventsource add point e2nodes e2pt.eve info ordered streets# streets# measure &type EMME2 Event table create for %streets% cover/route system &return