Author: Stephen M. Perone

Integrating Transportation Modeling Networks Using Dynamic Segmentation


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.

Sample EMME/2 Network

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.

EMME2 events on an input street network

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.

EMME2 event system on a TIGER network

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.


The AML
/************************************************************
/* 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


4-18-97
Prepared for the Seventeenth Annual Esri User Conference
San Diego, California
July 8-11, 1997

Stephen M. Perone
Senior Transportation Planner, METRO
600 NE Grand Ave.
Portland, OR 97232-2736
TEL: 503-797-1771
FAX: 503-797-1794
EMAIL: perones@metro.dst.or.us
            perone@pcez.com
WEB:   www.pcez.com/~perone/