I



[pic]

2002 Travel Demand Model

Technical Model Documentation

[pic]

Prepared By:

May 2008

Table of Contents

|INTRODUCTION…………………………………………………………... |Page 5 |

|Study Area…………………………………………………………………... |Page 5 |

|NETWORK AND ZONE SYSTEM DEVELOPMENT……………………. |Page 8 |

|Highway Network and Attributes………………………………………........ |Page 8 |

|Traffic Analysis Zone System………………………………………………. |Page 15 |

|Population and Households…………………………………………………. |Page 18 |

|Employment…………………………………………………………………. |Page 21 |

|BASE YEAR (2002) MODEL DEVELOPMENT…………………………. |Page 25 |

|Internal Trip Generation…………………………………………………….. |Page 26 |

|Student Trip Reduction…………………………………………………….... |Page 28 |

|External Trip Generation……………………………………………………. |Page 31 |

|Trip Distribution…………………………………………………………….. |Page 34 |

|Traffic Assignment………………………………………………………….. |Page 38 |

|Model Validation and Results……………………………………………….. |Page 38 |

|Percent Error by Functional Classification………………………….. |Page 40 |

|Coefficient of Determination………………………………………... |Page 41 |

|Root Mean Square Error…………………………………………….. |Page 42 |

|FUTURE YEAR (2035) MODEL DEVELOPMENT……………………… |Page 44 |

|Future Highway Network…………………………………………………… |Page 45 |

|Future Year Socioeconomic Data…………………………………………… |Page 45 |

|APPENDIX A: MANUAL MODEL RUN PROCEDURES……………….. |Page 48 |

|APPENDIX B: RUNNING THE SCRIPT…………………………………. |Page 65 |

|APPENDIX C: GISDK SCRIPT…………………………………………… |Page 79 |

| | |

List of Figures

|Figure 1: Model Study Area …………………………………………….……………... |Page 7 |

|Figure 2: Base Model Highway Network………………………………………………. |Page 11 |

|Figure 3: Federal Functional Classification ….…………..……………………………. |Page 12 |

|Figure 4: Traffic Analysis Zones.………………………………………………………. |Page 17 |

|Figure 5: 2000 Population………………………………………………………………. |Page 19 |

|Figure 6: 2000 Households…..…………………………………………………………. |Page 20 |

|Figure 7: 2002 Total Employment …...…….………………………………...………… |Page 22 |

|Figure 8: 2002 Retail Employment …………………..………………………………… |Page 23 |

|Figure 9: 2002 Other Employment …………………..………………………………… |Page 24 |

|Figure 10: Student Reduction……….…………………..……………………………… |Page 30 |

|Figure 11: External Travel Diagram ………………………………………………….. |Page 31 |

|Figure 12: External Station Locations.………...……………………………………….. |Page 32 |

|Figure 13: Trip Length Distribution...………………………………………………….. |Page 36 |

|Figure 14: Base Model Count and Flow Map…………....……………………………... |Page 43 |

|Figure 15: Base Model Flow and Count Map…………....……………………………... |Page 44 |

|Figure 16: Committed and Planned Roadways ………………………………………... |Page 46 |

|Figure 17: Capacity Improvements…………..………………………………………... |Page 47 |

List of Tables

|Table 1: Highway Network Attributes (Metadata).…………………………………….. |Page 8 |

|Table 2: Node Attributes.……………………………………………………………….. |Page 13 |

|Table 3: Daily Directional Capacities.………………………………………………….. |Page 14 |

|Table 4: TAZ Attributes…..…………………………………………………………….. |Page 15 |

|Table 5: Model Development Activities.……………………………………………….. |Page 25 |

|Table 6: Quick Response Trip Production Rates……………………………………….. |Page 27 |

|Table 7: Quick Response Trip Attraction Rates………………………………………... |Page 27 |

|Table 8: Production-to-Attraction Ratio………………………………………………... |Page 27 |

|Table 9: External Trip Analysis Procedure …...………………………………………... |Page 33 |

|Table 10: Gamma Function Coefficients……………………………………………….. |Page 35 |

|Table 11: Calibration/Validation Adjustments …………………………………............ |Page 39 |

|Table 12: Percent Error by Functional Classification…………………………………... |Page 41 |

|Table 13: Percent RMSE by Functional Classification………………………………… |Page 42 |

I. INTRODUCTION

The Iowa Department of Transportation, in coordination with the Johnson County Council of Governments Metropolitan Planning Organization (JCCOG MPO), designed and developed a travel demand model for long range transportation planning. Travel Demand Models are used in simulating existing travel characteristics, forecasting future travel patterns and allowing for system-wide analysis of alternative transportation improvements. This model will be used as a major tool for the long-range transportation plan and provide input for future transportation planning activities in the JCCOG planning area.

In 2006, the Iowa DOT and JCCOG initiated an update to have a robust model by developing a more refined highway network and disaggregate zone structure for detailed corridor analysis. The JCCOG was in the process of expanding their planning area boundary and the Iowa DOT wanted the model to have consistency with this amended boundary to ensure a sound working model. This update includes existing and refined data from the previous model and will provide JCCOG staff the opportunity to forecast future travel demands.

The following technical memorandum documents the inputs and outputs of the JCCOG model update as well as the calibration and validation effort taken to develop the model. The validation process was conducted to ensure that the JCCOG model would meet accepted standards and practice as recommended by the Federal Highway Administration (FHWA) and the Travel Model Improvement Program (TMIP).

Study Area

The JCCOG model study area is comprised of several communities, major highway corridors, the University of Iowa and a wide range of business and industry. An illustration of the model study area is documented in Figure 1 on page 7.

Iowa City, with a population of 62,220 persons as reported by the 2000 Census, is the largest community in Johnson County followed by Coralville (15,123), North Liberty (5,367), University Heights (987) and Tiffin (975)[1]. Iowa City is home to the University of Iowa where over 28,000 students, including undergraduate, graduate and professional students, studied in 2000.[2] Johnson County, including Iowa City and Coralville, contain over 77,000 persons and over 47,000 jobs in 2000. The study area for the traffic model attempts to capture the movements of persons living and traveling in & out of Johnson County. The study area is traversed by three major roadways, I-80 (a major transcontinental east-west U.S. Interstate corridor), I-380 (a north-south spur segment of the Interstate System) and U.S. Highway 218 (an important north-south link in the U.S. Highway system).

II. NETWORK AND ZONE SYSTEM DEVELOPMENT

A. Highway Network and Attributes

The first step in the model development process involves establishing the desired level of system detail to be covered by the model. The highway network consists of all state-maintained facilities as well as the majority of local routes in Johnson County, including many county roads and city streets. The highway network attributes for the model include roadway federal functional class, number of lanes (or capacity), traffic counts, posted speed as well as many other fields (see Table 1 below). Streets within the JCCOG study area are functionally classified as interstate, arterial, collector, or local as defined by the Federal Highway Administration (see Figure 3 on page 12). All streets classified as collector and above, as well as selected local streets which serve a significant portion of metro traffic, were included in the highway network.

Table 1 - Highway Network Attributes

|Field Name |Description |

|ID |Unique Identifier (TransCAD Default) |

|Length |Length (Miles) |

|Dir |Link Direction |

|MSLINK |Unique Identifier |

|Street Name |Name of the street |

|GIMSAADT |Annual Average Daily Traffic Counts 1999 |

|Count_2002 |2002 Traffic Counts |

|Count_Method |Traffic Count Methodology (Manual or Recorder) |

|Count 2006 |2006 Traffic Counts |

|NumLanes |Number of Lanes |

|Link Type |Link type identifier (0 = connector, 1 = network, 2=external) |

|Facility Code |Side Friction Facility Code (See Table 4, p. 10) |

|AB_Facility Code |Directional Side Friction |

|BA_Facility Code |Directional Side Friction |

|AB_Capacity |Directional capacity |

|BA_Capacity |Directional capacity |

|Total Capacity |2002 Total capacity (both directions) |

|FFC |Federal Functional Classification |

|Speed |Posted speed |

|TravTime |Travel time (in minutes) on a particular link. |

| |Time = Distance/Speed * 60 |

|FutureRoads |Proposed roads in the JCCOG are assigned an identifier |

| |0 = Existing; 2006=Built after year of base model;1= Committed and 2 = planned |

|CapImprove |Capacity Improvement Identifier. 0=Existing, 1= committed, and 2= planned |

|Turn Penalty |Placeholder |

|Observed VMT |(Traffic Count * Link Length) |

|Model VMT |(Model Traffic * Link Length) |

|Totflow |Output model flow |

|% diff |Model Flow to Traffic Count Percent Difference (Base Model) |

| |Absolute((totflow-Count_2002)/Count_2002)*100 |

|RMSE ID |Identifies links that can be included for RMSE calculation. |

| |0=False and 1=True |

|Alpha |BPR Coefficient Value |

|Beta |BPR Coefficient Value |

|Freeway |Identifies freeway segments that have a different alpha and beta coefficient in the |

| |BPR equation. 0=False and 1=True |

Table 1 - Highway Network Attributes…Continued

For purposes in assigning traffic to the highway network, the transportation system must be defined in terms of a set of network links, network nodes, centroids and centroid connectors. Network links and network nodes generally represent the street network as it exists in reality. Network nodes are simply points that define the end points of network links. They are often symbolic of an intersection, a corporate or study area boundary, or a point at which a road makes an abrupt change in direction. Node attributes are described in further detail in Table 2 on page 13. Links are the “lines” (or vectors) which connect these nodes to one another. In highway planning, they almost always represent actual street segments. Every link occurring between two nodes in the network is unique and unless otherwise specified, represents bi-directional movement. These links are coded with uniquely identifying attributes, such as node connections, average speed along the link (in miles per hour), length (in miles), capacity, and directional status (one-way or two-way).

Finally, the network also consists of a set of centroids and centroid connectors. Centroids and centroid connectors are a representation of the local street system and are the points at which traffic is generated and the means by which traffic gets onto and off of the network. They are located at the population and/or employment “center” of each TAZ. External stations represent points at which traffic enters and/or leaves the study area. Centroids are the simulated “hubs” of activity within each zone and are meant to represent the point at which each zone’s traffic is generated. In order for each zone’s generated traffic to obtain access to the network, centroid connectors must be designated. These connectors have similar attributes as links; however they are identified by a constant low speed (15 mph in this model) and high capacity (99999 in this model). The parameters are used to ensure the connectors are not constrained by capacity and connector speeds are loaded consistently to the network. Connectors then provide a simulated “access route” for traffic generated at each activity hub (each zonal centroid) to travel on the existing street network. Figure 2 on the following page depicts the overall JCCOG model network with centroid connectors.

Table 2 - Node Attributes

|Field Name |Description |

|ID |Unique Identifier (TransCAD default) |

|Longitude |Node Longitude |

|Latitude |Node Latitude |

|node ID |Node type identifier (2 external, 1 centroids and 0 other network nodes) |

|TAZ tag |TAZ number where a particular node exists |

|HBWP |Balanced home based work trip productions |

|HBWA |Balanced home based work trip attractions |

|HBNWP |Balanced home based non-work trip productions |

|HBNWA |Balanced home based non-work trip attractions |

|NHBP |Balanced non-home based trip productions |

|NHBA |Balanced non-home based trip attractions |

Highway Network Capacity Definition

A systematic approach to assign roadway capacity as utilized to ensure consistency throughout the model. Factors that determine roadway capacity include the number of lanes, the type of side friction (or development surrounding the facility), and the presence of turn lanes. Level of Service (scoring A-F) is a measure of traffic congestion. Level of Service D is considered acceptable for an urban area. Designing for levels higher than LOS D are likely too expensive given infrastructure and right-of-way costs. LOS D is used in this model to indentify when conditions are becoming unacceptable, and warrant closer observation. These capacity values were derived from the 2000 Highway Capacity Manual and can be found in the lookup table on the following page.

Table 3: Daily Directional Capacities

|DAILY DIRECTIONAL CAPACITIES AT LEVEL OF SERVICE D |

|(Assumes "random arrivals" for traffic signal progression for two lane arterials, |

|and "favorable progression" for arterials with four or more lanes.) |

|  |  |Access Condition (side friction) |  |  |  |  |

|Number |  |Minimal |Light | |Moderate |Heavy |  |

|of Lanes |Turn Lanes, Etc. |  |  |(Residential) |(Mixed Zoning) |  |  |

|  |  |Facility |  |Facility |  |Facility |  |

|Lanes |  |Facility |  |One-way |  |

| | |Code | |Capacity | |

|Note: 2000 Daily Directional Capacities at Level of Service D. | | | | | |

Source: Des Moines Area MPO

B. Traffic Analysis Zone System

Following completion of the JCCOG model highway network, the traffic analysis zones (TAZ) were developed. TAZs are geographic areas that help to organize data used in the model. TAZs group sets of aggregated or disaggregated socioeconomic data (employment and population). They are based on political boundaries and physical barriers (such as freeways, rivers and railroads) and have homogenous land use characteristics. US Census Block Geography was the primary data source used to aggregate data into TAZs. Digital aerial photography was used as an aid to correct geographic alignment of the US Census geography (to the aerials) and verify clusters of development in determining the location of centroids. Table 4, below, documents the attribute data of the TAZs where Figure 4, on page 14, depicts the JCCOG model TAZs.

Table 4 – TAZ Attributes

|Field Name |Description |

|ID |Unique Identifier (TransCAD Default) |

|Area |Area (Square Miles) |

|TAZ |TAZ number (Unique) – 231 Total TAZs |

|POP100N |2000 Population |

|HU100N |2000 Housing Units |

|Average household size |2000 average household size |

|Occ DU |2000 Occupied Dwelling Units |

|Gp Qrts |2000 Group Quarters |

|ODU + GQ |2000 Occupied Dwelling Units plus Group Quarters |

|GQDU |2000 Group Quarters Dwelling Units |

|Total DU |2000 Total Dwelling Units |

|DormPop |University of Iowa Dormitory Population (courtesy of Uni. of Iowa) |

|Retail Empl |2002 Retail Employment (data obtained from Iowa Workforce Development) |

|All Other Empl |2002 Other Employment (Includes University Other Employment and IWD’s Other Empl) |

|Total Empl |2002 Total Employment (Retail + All Other) |

|walk_bus |Zones distinguished by walk zones or bus zones |

|StuPop |2006 University of Iowa Student Population |

|StuPopReduced% |Student Reduction |

|Bus |Zone from where only bus can be taken to the University |

Table 4 – Zonal Attributes, continued

|HBWP |Pre-Balanced Adjusted trip productions |

|HBWA |Pre-Balanced Adjusted trip attractions |

|HBNWP |Pre-Balanced Adjusted trip productions |

|HBNWA |Pre-Balanced Adjusted trip attractions |

|NHBP |Pre-Balanced Adjusted trip productions |

|NHBA |Pre-Balanced Adjusted trip attractions |

|HBWP_Adjusted |Adjustment factor calculated by model script |

|HBNWP/NHBP AdjustBus |Adjustment factor calculated by model script |

|HBNWP/NHBP AdjustWalk |Adjustment factor calculated by model script |

|2035 DU |Forecast Dwelling Units |

|2035 Ret Empl |Forecast Retail Employment |

|2035 Other Empl |Forecast Other Employment |

C. Population and Households

Population and employment data play an important role in the travel model process and greatly impact the number of trips that are generated within a TAZ. Employment and dwelling unit information from the US Census Bureau is used as a direct input into determining the number of trips from and to a TAZ. Population and household data were obtained from a 2000 Census Block shapefile, 2000 Census Block data (Microsoft Excel file) from the State Library of Iowa, and student group quarter information from the University of Iowa. These sources had comprehensive data including number of households, dwelling units and population. University of Iowa student population information was used to improve the US Census group quarters information and to aid in adjusting and accounting for the students use of alternative modes (bus and bicycle).

Prior to the aggregation of Census Blocks to TAZs, the number of dwelling units for each block needed to be included with the rest of the Census Block data. To accomplish this, the 2000 Census Block excel file was utilized to link several fields together (i.e. County FIPS, Place FIPS, Census Tract, Block Group & Block) to form the Block Link ID. This field was then joined to the previously downloaded 2000 Census Blocks shapefile via the Block Link ID. In 2000, there were 62,220 people in Johnson County living in 25,202 households, with an average of 2.5 people per household. The map depicting the population and the households by TAZ can be seen in Figure 5 (on the following page) and Figure 6 (on page 20).

D. Employment

Iowa Workforce Development and the University of Iowa are the primary sources of employment data used in the Johnson County Travel Demand Model. The employment data was obtained in Microsoft Excel format and was geocoded in TransCAD via latitude and longitude to establish the location of each business within the study area. While improvements are continually being made by Iowa Workforce Development to provide complete and accurate business locations, manual searches through phone books and the Internet were used in order to find all business locations within the study area.

The North American Industry Classification System (NAICS) codes were used to determine the type of employment (Retail or Other). Separating employment by type is critical in the trip generation step because the inherent trip-making characteristics to these establishments vary and differ depending on the trip purpose (see Trip Attraction Equations on page 27). The NAICS is a six-digit code system used to classify national industries and economic activity in Canada, Mexico and the United States.[3] Individual businesses were aggregated by employment type to the TAZs. The original University of Iowa and Iowa Workforce Development employment data was used to verify that the employment data was assigned and distributed properly to the TAZs. A total of 67,062 employees were identified for Johnson County. Of these, 14,086 were identified as retail employees while 52,977 were identified as non-retail or other employees. Maps depicting the Total, Retail and Non-Retail/Other Employment can be seen in Figures 7, 8, and 9 on the following three pages.

III. BASE YEAR (2002) MODEL DEVELOPMENT

The following chapter discusses the application of model inputs in developing a base year travel demand model. The overall goal of this process is to develop a calibrated and validated model that can replicate traffic counts in the JCCOG planning area. The JCCOG travel demand model incorporates a three-step approach including: trip generation, trip distribution, and traffic assignment.

A structured and systematic approach was used to develop the JCCOG base model. These tasks are identified in Table 5 below. Further explanation is provided on the following pages in regards to how exactly the following tasks were accomplished.

Table 5: Model Development Activities

|Task |Description |

|1 |Perform Trip Generation for internal-to-internal (I-I) trips using TransCAD’s Quick Response Method |

|2 |Calculate external-to-internal (E-I) trips based on the NCHRP 365 Methodology |

|3 |Combine I-I Trips with E-I Productions & Attractions |

|4 |Run Gravity Model Evaluation using Gamma Function (based on NCHRP 365, |

| |p.41 and TransCAD’s TDM Manual TC4.8, p.86) |

|5 |Calculate external-to-external (E-E) trips based on NCHRP 365 Methodology |

|6 |Combine Gravity Model Matrices (HBW, HBNW, and NHB) & E-E Matrices to get the Total Origin-Destination (O-D) Trip Matrix|

|7 |Assign the Total O-D trip matrix to network |

|8 |Calibrate model components to attain a validated model (See Table 11 p. 39) |

|9 |Assign Calibrated Matrix to Network for Base Year Volumes |

A. Internal Trip Generation

Trip generation is the process by which the total number of trips are estimated in the metropolitan area during a given time period. It involves the application of regression equations and cross classification trip rates to model the number of trips for each purpose. The trip generators used in this model consist of equations that estimate both productions and attractions to each zone in the study area, dependent upon various socioeconomic variables. This process is used as a base for subsequent steps in the modeling process; therefore it is imperative the trip generation equations are statistically accurate and reasonable. Otherwise, the potential for error early on in the travel modeling process will only further exacerbate and propagate subsequent modeling steps and worsen the reasonableness and confidence of the overall travel demand model.

For the JCCOG travel model, the Quick Response method was used to determine the initial person trips per TAZ. This methodology utilizes regression equations that include: population, total dwelling units, and retail/service & non-retail employment to determine the number of productions and attractions between all TAZs.

Three Internal Trip Purposes were used in the model and include:

1. Home Base Work (HBW) – This trip type describes trips going between the place of residence and to work in both directions.

2. Home Base Non-Work (HBNW) – This trip type describes home-based social-recreational, personal business or any other location that is not a work destination and includes the trips made from these locations back to the place of residence.

3. Non-home Base Work Trips (NHB) – This trip type describes those trips that end at work but begin at any location other than the place of residence. Examples of this trip type would be going to a restaurant during the noon hour in the middle of a work day.

Within trip generation, there are various sub models that are utilized to determine productions and attractions. Unlike origin (trip beginning) and destination (trip end), which indicate a true beginning and ending of a trip, productions include trips that end at home and attractions include trips that end at any location other than the place of residence. Production models are determined using the characteristics of households (such as population) where attractions rely on employment characteristics (retail vs. non-retail) to determine where and how people will be traveling within the study area.

The following tables summarize the trip rates used in generating trips for the JCCOG travel model. The trip rates are from NCHRP 187 and were supplemented by the Des Moines NHTS Add-On Survey data.

Trip Productions

Table 6 – Quick Response Trip Production Rates

|Data |HBW |HBNW |NHB |

|Per Household |1.6 |6.2 |2.3 |

|Percent of un-adjusted Total Trips |16% |61% |23% |

Trip Production Equations:

Productions = (Number of Households)*(Trip Rate)*(Observed proportion of trips)

Trip Attractions

Table 7 – Quick Response Trip Attraction Rates

|Data |HBW |HBNW |NHB |

|Retail Employment |1.70 |10.00 |2.00 |

|Non-Retail Employment |1.70 |0.50 |2.50 |

|Dwelling Units |0.00 |1.00 |0.50 |

|Percent of un-adjusted Total Trips |22% |41% |37% |

Trip Attraction Equations:

HBW Attractions = 1.7*(Retail Employment) + 1.7*(Non-Retail Employment)

HBNW Attractions = 10.0*(Retail Employment) + 0.5*(Non-Retail Employment) + 1.0*(Dwelling Units)

NHB Attractions = 2.0*(Retail Employment) + 2.5*(Non-Retail Employment) + 0.5*(Dwelling Units)

Total Productions-to-Attractions Ratio

Table 8 – Productions to Attractions Ratio

|Productions |Attractions |% Diff |

|445,507 |507,910 |-12% |

After productions and attractions in each zone have been calculated, the sums of attractions and productions for all the zones must be balanced. In the case of the JCCOG travel model, each trip purpose was balanced to the production side. This is considered reasonable and accepted practice given greater confidence of the household and population information. The balancing procedure was completed in TransCAD and adjusts the attraction field to match the production field by creating a factor (based on the total-sum difference between productions and attractions by trip type) to either increase or decrease the initial trips. In the JCCOG Traffic Model, this process takes place after the reduction of the college student’s vehicular travel is made.

B. Student Trip Reduction

The University of Iowa is located at the center of the JCCOG Travel Model Study Area in the community of Iowa City. The undergraduate and graduate enrollment at the University for the 2002-2003 academic year was greater than 25,000. [4] Query analysis was conducted for TAZs that have a large student population, close proximity to the university and high propensity to travel via an alternative mode. Consequently, through this analysis it was determined that approximately 15,000 students live within walking, biking, or transit distance to the campus. University or student trips are not typical and have a tendency to use automobile travel less frequently causing a reduction of automobile use on the street network. The original unbalanced productions and attractions were generated in TransCAD using the Quick Response Method. These unbalanced trips are then reduced based on the percentage of student population per zone, near the University of Iowa Campus. The script calculates all factors, conducts trip generation, applies the factors to the unbalanced productions & attractions, and balances the productions and attractions within the TAZ layer. Finally, the balanced and adjusted trips are sent from the TAZ layer to the node layer (centroids) for use in subsequent model steps. The process to reduce unbalanced productions and attractions is automatically conducted in TransCAD using a script procedure (see Appendix B – page 61).

The student trip reduction treatment will be completed for those zones that have close proximity to the campus where it is perceived that the vast majority students either walk, bike, or take the bus. In the HBWP reduction process all of the walk or bus zones are treated the same. The adjustment process for the HBWP's includes the reduction of zonal trips based on the exclusion of the student population for the zone. This is achieved by creating a factor (student pop/total pop = ....) that can be used to reduce the total trips. (Example: (TAZ 8) total pop = 344 student pop = 7/344= 0.02035) The example shows that very few HBWP's will need to be reduced for student population in the zone (TAZ 8). This student population percentage is then used in a simple formula (1-0.02035= 0.97965) to create the reduction factor. This factor is then multiplied by the zonal HBWPs (235) to compute the reduced trips. (Example: 235*0.97965 = 230)

The reduction processes for the HBNWP's and NHBP's trips are slightly different than the process that was used for the HBW trip reductions. There are two reduction rates for these types of trips, one for walk/bus and one for bus only. The bus only zones are designated by being out of perceived walking distance but inside the perceived transit use area and close to the campus. The walk/bus formula is [1-(.9*student pop)/total pop] and a bus only example is [1-(.65*student pop)/total pop]. The output of the formula is used to reduce the student related vehicle trips and to create the final production and attraction trip table.

Figure 10, on the following page, depicts the TAZs that have the adjustment methodology as discussed above. In total, 74 zones in and around the U of I and downtown Iowa City area were adjusted. The 39 zones, in blue, are likely to include students that will make a trip by either walking or taking the bus where the other 35 zones, in orange, assume that a portion of the student trips will be made via bus only.

C. External Trip Generation

Once internal trips have been generated and validated, internal-to-external (I-E or E-I) and external-to-external (E-E) trips are calculated using historic traffic counts and the methodology outlined in NCHRP 365. A trip is categorized as an I-E or E-I trip as long as one trip end begins or ends in the study area. Conversely, E-E trips simply travel through the study area and have a trip beginning and end outside the study area. Figure 10 below illustrates each of these concepts.

Figure 11: External Travel Diagram

Trips for the external stations are not generated in the same fashion as for the internal zones. The lack of socio-economic data that can represent external travel requires the use of a different methodology. As a result, the External-External (EE) and Internal-External (IE-EI) trips are developed using procedures described in Chapter 5, External Travel Estimation, Travel Estimation Techniques for Urban Planning, NCHRP Report 365, Transportation Board, 1998. A series of equations are used to determine the amount of local and through travel as well as the distribution of those trips.

The point at which the roadway crosses the study area boundary is identified as an External Station. External stations act as the origin or destination for all external trips. Figure 12, on the following page, illustrates the location of all external stations of the JCCOG model.

The following steps summarize the process that was used to estimate external travel for the JCCOG model update. A Microsoft Excel spreadsheet was used to conduct the procedures that are documented in the NCHRP Report 365.

Table 9: External Trip Analysis Procedure

|Number |Procedure |

|1 |First, AADT counts (by vehicle class) at the external stations were obtained from the 2002 Iowa DOT Traffic Book. |

| |Unadjusted Iowa DOT counts[5] were also obtained and included in the highway network to visualize the count location|

| |and traffic volume. Because the Iowa DOT Traffic Book contains only state and federally classified roads, |

| |additional data sources needed to be used. These additional sources include the Iowa DOT MPO cordon counts, commonly|

| |referred to as the "Urban Trans" program. Depending on the location of the MPO, these counts are conducted on a four|

| |year period. The "smoothed AADT" or estimated traffic from the Iowa DOT base record was also used because of new |

| |routes that may not have been counted in the Urban Trans program. |

|2 |Next, the percent through (external-external or EE) trips were estimated at each station. This step was completed by|

| |utilizing the D.G. Modlin equation for estimating through trips in small urban areas.[6] The equation uses the |

| |following attributes of each external station roadway including: functional classification, AADT, percentage of |

| |heavy trucks, percentage of vans and pick ups, and the study area population. |

|3 |Then, the Fratar Balancing method was used to distribute through trips and to create an EE origin-destination matrix|

| |(in MS Excel). |

|4 |The EE trips were then subtracted from the cordon AADT counts to determine the remaining external-internal (EI) |

| |trips. |

|5 |Trip purpose and residence location information was applied to establish productions and attractions at the external|

| |stations. The Census Journey-to-Work (JTW) data was referenced to calibrate the HBW trip portion of the |

| |External-Internal Productions and Attractions. The percentage of each trip type for creating productions and |

| |attractions was altered to better reflect local traffic patterns. |

|6 |Finally, the EE trip table (in O-D format) and the EI Productions and Attractions were exported from Excel to |

| |TransCAD. |

D. Trip Distribution

Trip Distribution is the process in which the estimated number of trips is distributed throughout the study area zones by developing a trip matrix which displays the number of trips going from each origin TAZ to each destination TAZ. The application used to determine trip distribution within the JCCOG model is known as the Gravity Model. In its simplest form, the Gravity Model utilizes the number of productions and attractions in each zone and the distance between each zone to determine the attractiveness of travel to a particular destination. The shorter the distance a person has to travel and the more draw (attractiveness) a business or destination has the more likely the trip will be made to that location verse a destination with less attraction and a longer distance. In TransCAD, this procedure is performed by the development of the shortest path matrix, which is the minimum or shortest time path between each centroid. Below is a detailed explanation of the Gravity Model Application:

Three main components are needed to distribute trips throughout the zone system using the Gravity Model. They include: 1) productions and attractions for each zone, 2) friction factors, and 3) a shortest path (or impedance) matrix.

Travel time factors, also referred to as friction factors; describe the frequency of internal trips of varying lengths and types and basically provide realism to the process. Friction factor data provides the gravity model with a measure of inter-zonal impedances. More specifically, it allows the model to distribute trips according to distance decay theory which allows the model to distribute trips as a function of distance and time if multiple destinations have similar attractiveness. It places limits on the number of trips of each type and of varying lengths that can occur. For the JCCOG MPO model, friction factors were developed using a gamma function to estimate the friction. The equation for the gamma function is:

[pic]

Table 10. Gamma Function Coefficients for Friction Factors

|Trip Purpose |Beta |Gamma |

|Home Based Work |0.03 |0.01 |

|Home Based Non Work |0.03 |0.01 |

|Non Home Based |0.03 |0.01 |

Performance checks are completed to ensure that the distribution model is working correctly and both the average trip length and the trip length distribution are reasonable. The distribution curve of trip length frequency shows the percent of trips within each time period. Figure 10, below, shows three frequency distribution curves, one each for HBW, HBNW, and NHB trips. The average trip length (minutes) in the JCCOG base model is approximately ten (10) minutes.

[pic]

Figure 13 - Trip Length Distribution

The shortest path travel time matrix is used as the impedance between TAZs and external stations. The matrix is comprised of the shortest path travel times between origin and destinations (represented by the centroids). It can be thought of as the quickest way to get from one location to another. The link travel time is the calculated time (link length and posted speed limit) between each pair of centroids, including all of the external stations. The time impedance of each external station is set to 99999 so that no EI trips will be incorrectly distributed in this process. This is to eliminate the EI productions from linking up with EI attractions within the same zone or station. These types of trips are called intrazonal trips.

The JCCOG Travel Model incorporates the distribution of the external-internal (E-I) and internal-external trips that were created in the external analysis process. Each external station has productions and attractions that are generated in vehicle trip format. The E-I person trips require adjustment to vehicle trips by auto occupancy factors. This adjustment is necessary to ensure the internal trips of the model are not only replicating real world traffic but also modeling vehicular traffic. The adjustment of person trips to vehicle trips is made possible with an auto occupancy factor for each trip purpose. The conversion is used to simplify the distribution process and is conducted after the Gravity Model application and prior to the Productions and Attractions (PA) to Origin and Destination (OD) or commonly referred to as the PA to OD transformation process.

The trip production process is setup so that all productions happen from the home zone. In reality we know that throughout the day trip productions happen from non-home zones as well. To account for this the PA to OD procedure takes the production and attraction trip table and creates an instance or copy. This copy is then transposed (a mirror copy) and added back to the original table. This newly created table is then divided by two to determine origin to destination based trips. This process is simply handled inside the TransCAD software environment and adjusts the trips to be in vehicle trip format by lowering the trips to accommodate for automobile passengers (HBW 1.1, HBNW 1.85, and NHB 1.68). Once the trips are in the OD format they can be combined with the External to External (EE) trip table that was created in OD format.

Following trip distribution, the gravity model trip tables in OD format (HBW, HBNW, and NHB) are combined with the E-E trip table. The result is a complete Origin-Destination (O-D) trip table (or matrix) with approximately 320,000 trips. The O-D trip matrix is now ready to be assigned to the highway network.

E. Traffic Assignment

The primary input for trip assignment is the Origin-Destination (O-D) matrix from the gravity model. Flows for each O-D pair are assigned onto the network using the Stochastic User Equilibrium (SUE) method. “SUE is a generalization of the User Equilibrium (UE) method that assumes travelers do not have perfect information concerning the network attributes and/or they perceive travel costs in different ways. SUE assignments produce more realistic results than the deterministic UE model, because SUE permits use of less attractive as well as the most-attractive routes.”[7] Trips for each O-D pair are then assigned to the links in the minimum path between zones and then summed for each link. The assigned trip volume is then compared to the capacity of the link to see if it is congested. If a link has a high traffic volume, the travel time is adjusted to result in a longer travel time on that link due to increase travel flow. Changes in travel time mean that the shortest path may change. Therefore, the whole process is repeated several times (or iterated) until a state of equilibrium is reached between travel demand and travel supply. Trips on congested links will be shifted to non-congested links until this equilibrium, condition occurs. “SUE is computed in TransCAD using the Method of Successive Averages (MSA), which is known to be a convergent method. Due the nature of this method, a large number of iterations should be used.” 4 The result is that no trips travel time can be reduced by taking an alternative path.

F. Model Validation and Results

Calibration and validation testing was conducted for the JCCOG model through various published and widely accepted guidelines to ensure overall model integrity. These guidelines come from various Travel Model Improvement Program (TMIP) and FHWA publications including the Calibration and Adjustment of Systems Planning Models - December 1990 and the Model Validation and Reasonableness Checking Manual - February 1997. Calibration is an iterative process that requires updating or adjusting the model data, model parameters, model coefficients, street network, or loading locations all based on successive model runs. Validation is conducted to gain confidence in the ability of the model to reproduce network flows that provide the closest match to the observed traffic counts.

Many validation checks are utilized throughout the entire model process and in each respective step of the process. Most often, emphasis is given to validation testing conducted after traffic assignment, such as a comparison of base year model flow to counts. The goal of this validation check is to determine if the network settings and model parameters are producing volumes within accepted ranges for those links that have an actual count. There are approximately 550 links that have a manual or recorder count. The traffic counts were provided by the Iowa Department of Transportation’s count program that counts each quadrant of the state on a four year cycle.

The GISDK User Interface that was created to run the JCCOG model includes script to calculate model statistics such as: percent difference between count and flow and vehicle-miles of travel (VMT). The adjustments made during the calibration/validation process are summarized in Table 11.

Table 11 – Calibration/Validation Adjustments

|Number |Adjustment |RMSE |

|1 |Several network changes based on real discrepancies between the street system and the model network. |41.36% |

| |(Example: bridge link has no physical connection with underlying road). | |

|2 |Various speed adjustments were made to routes in the model network including local roads, arterials and|35.43% |

| |the interstate. | |

|3 |The location of many centroid connectors was changed to better replicate the loading onto the network. |32.65% |

|4 |Auto occupancy rates changed from national averages to the Des Moines NHTS Add-On Survey auto occupancy|32.88% |

| |rates to better replicate local traffic patterns. | |

|5 |TAZs were split to facilitate better loading onto the network. (Separated Coral Ridge Mall and nearby |26.12% |

| |residential sector to accommodate heterogeneous land uses and improve loadings to the interstate.) | |

|6 |Adjusted the average daily person trips per household from 14.1 trips per household (NCHRP 187) to |24.76% |

| |10.13 trips per household based on the 2001 Des Moines NHTS Add-On survey. | |

|7 |The locations of many centroids were altered to provide better assignment outputs and more closely |25.02% |

| |match the ground counts. (Example: A zone is loading all its trips to the network on shortest of its | |

| |three centroid connectors. The network is edited to make the lengths of the three connectors similar to| |

| |distribute those trips in an appropriate manner) | |

|8 |Adjusting the Bureau of Public Roads Volume Delay Curve Coefficients on the network was tested and |21.08% |

| |proved to be very important when estimating freeway travel in the JCCOG model. The final adjustment | |

| |altered the Alpha and Beta Coefficients on the freeway network links to achieve the best fit for the | |

| |validation of the model to the ground counts. The different BPR parameters are included as attributes | |

| |of the model network and are as follows; all of the non-freeway network links are coded at the default | |

| |value which is Alpha 0.15 and Beta at 4.00. The freeway links are coded with Alpha being 0.85 and Beta| |

| |is coded at 5.5. | |

|9 |Updated the model network to include the Herbert Hoover Hwy Interchange on Interstate 80. Also updated |19.44 |

| |and verified link speeds and capacities of various routes within the network, including: | |

| |Riverside Dr | |

| |Iowa 1 | |

| |Mormon Trek Blvd | |

| |All gravel roads in the model study area | |

a. Percent Error by Functional Classification

The percent error of the traffic assignment indicates the level of accuracy that the travel demand model has to the ground counts. The percent error is the actual difference between the assignment and the ground counts divided by the ground counts.

Table 12, below, identifies the percent error by functional classification and in total for the JCCOG model.

Table 12 - Percent Error by Functional Classification

|Functional |Number of Counts |Sum of Counts |Sum of Flow |Percent Error |Percent Error |

|Classification | | | | |Target* |

|Interstate |179 |3,266,274 |3,416,178 |4.59 |7% |

|Major Arterial |111 |1,605,344 |1,593,240 |-0.75 |10% |

|Minor Arterial |106 |1,025,420 |878,901 |-14.29 |15% |

|Collector |71 |281,640 |205,123 |-27.17 |25% |

|Local |33 |103,215 |86,425 |-16.27 |25% |

|Entire Network |500 |6,262,584 |6,179,867 |-1.62 |5% |

|* "Calibration and Adjustment of Systems Planning Models" December 1990, FHWA |

b. Coefficient of Determination

Overall model accuracy can also be reviewed by looking at the Coefficient of Determination or the R2 (see formula below). The R2 statistic shows the “goodness of fit” and identifies how well the regression line represents the assignment data. A minimum R2 of .88 or higher is recommended and desirable where a value of 1.00 indicates the regression line perfectly fits the data. The JCCOG model achieved a R2 of 0.92 and demonstrates a high correlation with the observed traffic counts.

c. Root Mean Square Error

The percent RMSE is another measure of how well a travel demand model is assigning traffic onto the network. The RMSE measures the deviation between the model flows and the counted traffic volumes. The formula is given as:

[pic]

A low percent RMSE indicates a small deviation between the model output and the observed traffic and subsequently better model results to use in the Long Range Planning Process. It is typical that the lower volume roadways have greater RMSE and that higher volume roadways have lower RMSE percentage values. The percent RMSE by facility type is given in Table 13, below.

Table 13 - Percent RMSE by Functional Classification

|Functional |Number of |Sum of Counts |Sum of Flow |% RMSE |% RMSE Target |

|Classification |Counts | | | | |

|Interstate |179 |3,266,274 |3,416,178 |10.41% |15% |

|Major Arterial |111 |1,605,344 |1,593,240 |22.25% |30% |

|Minor Arterial |106 |1,025,420 |878,901 |28.45% |45% |

|Collector |71 |281,640 |205,123 |52.37% |100% |

|Local |33 |103,215 |86,425 |49.62% |100% |

|Entire Network |500 |6,262,584 |6,179,867 |19.44% |30% |

The results of the validated model are presented by flow maps in Figure 14 and 15 on the following pages.

IV. FUTURE YEAR (2035) MODEL DEVELOPMENT

A. Future Highway Network

For the JCCOG 2035 Forecast Model, two future highway networks were created. An Existing plus Committed (E+C) network was created to include projects that are in the base model as well as already built and/or committed projects. Committed projects are those that have been committed for construction within five years and are documented in the MPO Transportation Improvement Program (TIP). The Existing plus Committed plus Planned (E+C+P) network is similar to the E+C but also includes planned projects as identified in the long-range plan. Figure 15 and 16, on the following pages show the differences of each network. Ultimately, the forecast highway networks required changes to capacity, new links (to represent committed and/or planned roads), as well as the addition of centroid connectors with the assumption that planned development would bring new access to these areas.

External station growth rates were determined by extrapolating historic ground counts to determine a forecasted external station volume. Similar to the Base Model, the NCHRP 365 methodology was used to determine traffic distribution amongst the external stations.

B. Future Year Socioeconomic Data

JCCOG staff provided assistance and local expertise in determining future development within the model study area. Coordination and assistance from local communities was important in determining expected growth and planned development with the MPO study area. Once all forecasted socioeconomic (Employment & Dwelling Unit) data was determined, this information was then distributed by TAZ.

APPENDIX A: Manual Model Run Procedures

Introduction

The following is a detailed step by step process that details a typical travel demand model run using the TransCad software package. These steps were written with the assumption the user has at least a fundamental understanding of the traffic modeling process and basic familiarity with the software package TransCad. This particular process assumes the Trip Generation process has been completed and trip Productions and Attractions are available in the JCCOG Traffic Analysis Zones layer file. This process also assumes that an external analysis has also been completed, determining the appropriate number of External/External (EE) and External/Internal (EI/IE) trips.

Module 1

Highway Network Settings

a. Calculate Travel Time

b. Build Highway Network

c. Highway Network Settings.

Module 2

Trip Distribution

a. Shortest Path Matrix

b. Intrazonal Impedances (Travel Time)

c. Update Shortest Path Matrix External Station Travel Time/Costs

d. Gravity Model Application

e. PA to OD Transformation

f. Combine OD & EE Matrices

g. Quicksum Matrices

Module 3

Traffic Assignment

Step 1: Calculate Travel Time (Standard Geographic File)

i. Begin by opening the JCCOG highway network (JCCOG2000Network.dbd) by going to File>Open. Change the file type to Geographic File, locate the appropriate directory with the aforementioned network file and then click Open.

ii. Calculate roadway travel time by opening the dataview of the JCCOG2000Network.dbd. With the dataview window open, scroll to the field ‘TravTime’. Right click the TravTime field heading and choose Fill… and then select the Formula radio button. Select or write out the formula as shown below.

Click OK twice. Travel time of all highway links is now calculated.

Step 2: Build Highway Network (Binary Network File)

A. First, select the existing routes to be included in the model run by going to Selection>Select by Condition. Enter the following condition (query) and type ‘Existing’ in the set name drop down menu. Because we have a line layer with both existing and future roads, this query selects only the existing roads to be included in this binary network file and used in this particular model run.

B. Now, create a TransCAD .NET file by selecting Network/Paths>Create from the dropdown menu. This is the binary network file that runs in the background. Select ‘existing’ selection set of links (as conducted in Step 2A) as well as the following attributes from other link fields window:

a. Dir

b. Capacity

c. AB_Capacity / BA_Capacity

d. Total Capacity

e. Speed

f. Travel Time

! Select multiple fields by holding the

control button.

Click OK when finished and save the file

in the model work directory. Name the

file .

Step 3: Highway Network Settings

A. Once the .NET file has been created, additional setting updates may be required.

! Before updating the network, and similarly to Step 2A, create a selection set of the centroids and set the name to C + E (Centroids & Externals). Your query and set name should resemble the following figure below…

B. Access the settings window by selecting Networks/Paths>Settings. In the Network Settings window verify the correct network file is in use. This should be the network file you are working with.

C. Under the General tab click the radio button Create from selection set. This ensures the model only uses centroid connectors at the beginning and ending of each trip and prevents centroid connectors from being used as possible through route links.

D. Under Penalties click the Turn radio button to open the turn penalty look-up table.

a. Open the Turn Penalty table by going to the bottom of the Network Settings dialog box (under the Turn Penalties tab) and located the file: JCCOG2000TURNS.BIN.

b. An additional global left turn penalty is included and a u-turn movements are prohibited from the model run process.

Step 4: Shortest Path Matrix

1. Shortest Path Matrix - With the network .bin file open, create a shortest path matrix for all zone pairs. Select Networks/Paths>Multiple Paths. Minimize Travel Time from Centroids to Centroids.

2. Click OK and save the file as SPMAT.mtx.

Step 5: Build Intrazonal Impedances

A. Notice the shortest path matrix has null values for the diagonals or travel time within each zone. To fill these values select Planning>Planning Utilities> Intrazonal Travel Times. The shortest path/nearest neighbor method is used. Example is shown below.

Step 6: Update Shortest Path Matrix (SPMAT.mtx) External Station Travel Time/Costs

Due to the nature of the model, illogical trips can be assigned from and to the external stations themselves. This is a function of the distance being so small and attractive that I-E and E-I trips never leave the external station. Consequently, steps are taken to increase the travel time or costs at the external stations.

i. First, open the ee SPMAT.mtx file. This is a 28 cell x 28 cell matrix that comprises all external station nodes.

ii. Next, combine the ee SPMAT.mtx (Ext SPMAT) to the SPMAT.mtx (cgrav.mtx) by selecting Matrix>Combine from the pull-down menu.

iii. Select the Ext SPMAT file and the cgrav matrix file to combine.

iv. Click OK and save the file as Final SPMAT.mtx.

v. Lastly, with the Final SPMAT.mtx open, the Ext SPMAT matrix core and the cgrav matrix core will need to be summed.

vi. Sum both matrix cores by going to Matrix>Quicksum to sum all matrices. Union Combine is the name of the final matrix core within the matrix file.

Step 7: Gravity Model Application

A. Running the Gravity Application - Once the Productions and Attractions are balanced and the shortest path matrix is available, the Gravity Application can be run. Choose Planning>Trip Distribution>Gravity Application. In the Gravity Application window you will need to specify the correct Productions and Attractions for each trip type. All trip purposes should be Doubly Constrained. See example below for typical Gravity Application setup.

B. Next click the Friction Factors tab.

C. After clicking the Friction Factors tab set up your friction factors as needed. While a friction Factor table is not used, the Impedance Matrix has been updated (as conducted in Step 10) and should be changed for each trip purpose as noted below (circled in yellow). The example below illustrates the use of the Gamma Function. Before moving on, click the Settings button to save your trip purpose settings. The next time the Gravity Application is run just choose the saved settings by again clicking on the Settings button and assigning the appropriate settings file. This way you don’t have to re-type all the settings information.

D. Click OK

E. After clicking OK TransCAD will begin to compute and create the trip tables for each purpose. Name the matrix CGRAV.mtx. If no warnings occur (other than zeros) you will have the trip matrix created for each purpose. If errors occur you will need to address and correct them. Illustrated below is the HBW trip table. Tables also exist for each of your other trip purposes.

Step 8: PA to OD Transformation

1. After the P & A tables are created you can convert them into OD pairs by utilizing the PA to OD tool under the planning drop down menu. Select Planning>P-A to O-D.

a. The input P-A matrix file should be labeled CGRAV.

b. Uncheck Report each hour separately.

c. For each trip table check the box next to the Matrix Index (HBW, HBNW, NHB).

d. Check the box under Veh (or Vehicle) and input the average auto occupancy rate of each trip purpose.

e. Click OK and save the file as PA2OD.mtx.

Step 9: External to External Trip Matrix (Combine Matrices)

Once the Origin-Destination trip matrices are created the External to External flows need to be added.

Open the ee matrix.mtx if it isn’t already. Combine the EE Matrix to the PA2OD.mtx by going selecting Matrix>Combine from the pull-down menu.

Select the EE Matrix file and the PA to OD file to combine.

1. Click OK and ame the file ODEE.mtx.

! Note: Remember that the EE Matrix is created outside of TransCAD. See the JCCOG technical model documentation for further info.

Step 10: Matrix Quick Sum

1. The Matrix Combine step will initially return a matrix core with all null values until all matrices are summed.

2. Select Matrix>Quicksum to sum all matrices. Union Combine is the name of the quicksum results.

Step 11: Traffic Assignment

1. After the final OD table is created consisting of both internal and external trips, the traffic assignment can be run.

a. With the network layer set as the working layer select Planning>Traffic Assignment.

b. The recommended method to use is the Stochastic User Equilibrium.

c. The Matrix file is Union Combine QuickSum.

i. The QuickSum matrix is a combination of each trip purpose matrix. The Gravity Application creates a separate trip matrix for each trip purpose. By using the QuickSum tool, a new matrix is created that is the sum of all the trip purpose matrices.

d. The time field is TravTime and capacity field is [AB_Capacity / BA_Capacity].

e. Important!

i. TransCAD assumes the capacity used is a directional or one-way capacity. It joins the one-way capacities together. The syntax looks like: [AB_Capacity / BA_Capacity].

f. Under Globals the Convergence should be set to 0.01. Use the default number of iterations. The volume delay coefficients can be changed for various functional classes or globally. The Alpha 0.15 and Beta 4.0 are based on the Bureau of Public Roads (BPR) curve.

i. Because the coefficients for the BPR delay function are not global and have been set differently for freeways and all other highways and streets, the drop down field next to Alpha and Beta need to be selected from the binary table of the Highways/Streets layer.

The result will be an output flow table from TransCAD. This table will include newly calculated data such as:

a. Link flow (AADT)

i. Total

ii. Bi-directional

b. Volume to Capacity (VOC)

c. Congested Travel Time

i. Total

ii. Bi-directional

d. Vehicle Miles of Travel (VMT)

e. Vehicle Hours of Travel (VHT)

APPENDIX B: RUNNING THE SCRIPT

A GISDK program is created using the batch mode tools and can execute the model procedures in less time; the process is very simple and ensures consistency because it does not require additional user intervention. The following are the steps to run the GISDK program and the batch code to run the Johnson County model.

Step 1 – Overview of GISDK Macros and Model Input Files

The JCCOG batch macro, as discussed below, is able to run the base year model given various assumptions used in developing the model. Of the many benefits that come from automating the model process is the ability to do calibration/validation work quickly, addition or removal of a network link, or update in travel time of a link within the model network. Consequently, the macro for JCCOG has been developed to allow the user to achieve such results. The following is a list, in order, of what the batch conducts during a run:

1. Compute Travel Time

2. Build the Binary Highway Network

3. Highway Network Settings

4. Create the Shortest Path Matrix

5. Compute Intra-zonal Travel Times

6. Run the Gravity Model

7. Create the OD Matrix

8. Combine the OD and EE matrices

9. ‘QuickSum’ the Total OD matrices

10. Run Traffic Assignment

11. Fill the ‘Model_VMT’ field within the Geographic Highway Network (from the ‘TOT_V_Dist_T’ field from the assignment link flow table or ASN_LinkFlow.bin)

The JCCOG model run process, as executed in GISDK, is shown in a flow chart diagram on the following page. The green box represents the starting point and requirement that all model files necessary to run the model are contained within the same directory. This requirement will vary based on a models’ inputs and parameters and will impact the use of the script for the base and forecast models.

The key below is a detailed explanation of outlining what is occurring when the program is executed:

- Predetermined location of all model input files. This is also the location where all model output files will be saved after the program has been executed.

- These steps in the model run process require user interaction and are executed when any respective button is clicked in the UI (user interface)

- This is the foundation of the GISDK program and is where the model process is executed through a batch macro. (Refer to ‘How-To’ create GISDK Script using the Batch Editor Tool, to see how script can be generated using the Batch Editor Tool.)

- Model output files from TransCAD that will be placed in the directory

defined by the user prior to running the model.

JCCOG Base Model Procedures in GISDK

Model Input Files

In order to correctly run the macro, it is important that the following files are included in the same directory when running the model:

1. ALL files relating to the JCCOG Geographic Highway Network (JCCOG2000Network.DBD)

2. All files relating to the JCCOG TAZ file (JCCOG TAZ 2002.DBD)

3. Turn penalty table (JCCOG2000turns.bin)

4. External Station-Intra-zonal Trip Currency Matrix (ee SPMAT.mtx)

5. External Station Matrix (ee matrix.mtx)

Step 2 – Load and Compile the Resource File

Begin by opening a new and blank TransCAD session. Then go to Tools>Add-Ins…

[pic]

Once the ‘Add-Ins’ prompt is open (shown below), Highlight GIS Developer’s Kit and click OK.

[pic]

With the GISDK Toolbox open, click the first icon (Compile). When asked to open the Resource file, search for the JCCOG2000Model-FINAL.rsc on your PC or network, highlight and click Open. (Note – hopefully you noticed a TransCAD working and a prompt flash across the screen. This was the compiling process of the GISDK script.)

[pic]

[pic]

After the compiling process, click the second icon (Test). A dialog-box will open up.

[pic]

Step 3 – Setup the User Interface (UI) & Running the Model

Select the radio-button for ‘Dialog Box’ and type ‘Base Model’ under Name and click OK.

[pic]

The following prompt will open and is where you run the model. You must first specify the path of the geographic network by clicking on the button the right of the ‘Specify Model Folder’ text.

[pic]

Browse to the desired folder with the corresponding model files. Highlight the folder and click OK.

[pic]

Once the folder has been chosen the user needs to click on the Calc P’s & A’s button, then if the batch code has been successfully completed, there will be a message informing you that the batch was successfully completed followed by a batch log report file.

[pic]

[pic]

After calculating P’s and A’s the user needs to click on the Run Model button and once again if the batch code has been successfully completed, there will be a message informing you that the batch was successfully completed followed by a batch log report file.

[pic]

[pic]

Then to open a map just click on the Open Map button and your map will appear with the batch log files like the run model procedure. The map will be loaded with the percent volume difference between the count and flow. To remove this thematic map go to the Map dropdown to scaled symbol theme and remove the thematic settings.

To check the total flows we join the ASN Link Flow table with the Highway Network layer and do the summation.

[pic]

[pic]

[pic]

[pic]

[pic]

APPENDIX C: GISDK SCRIPT

Dbox "Base Model" toolbox nokeyboard

// specify what needs to be done when you intialize the dbox

init do

path = null

endItem

// Now define the buttons and what needs to be done when you press the button

// Label 1: Just a text box

text 20, 1.5, 1 prompt: "Specify Model Folder:"

// Button 1: Button to choose the directory

button After, Same icons: "bmp\\plansetup.bmp", "bmp\\plansetup.bmp" do

// Some error trapping here

on escape goto skip

on error goto skip

path = ChooseDirectory("Choose Model Folder",)

path = path + "\\"

skip:

on escape default

on error default

enditem

// Button 2: OK

Button "Run" 4, 7, 12 prompt: "Run Model"

do

if path = null then do

ShowMessage("Please choose the model path first.")

goto skip1

end

RunMacro("Model", path)

skip1:

enditem

// Button 3: Open Map

Button "Open" 20, 7, 12 prompt: "Open Map"

do

if path = null then do

ShowMessage("Please choose the model path first.")

goto skip1

end

RunMacro("Open Map", path)

skip1:

enditem

//Button 4: Trip Generation

Button "Calc P's & A's" 4, 5, 12 prompt: "Calc P's & A's"

do

if path = null then do

ShowMessage("Please choose the model path first.")

goto skip1

end

RunMacro("TripGen", path)

skip1:

enditem

// Button 5: Cancel

Button "Cancel" 20, 5, 12 prompt: "Cancel"

do

Return()

enditem

endDBox

Macro "TripGen" (path)

RunMacro("TCB Init")

// STEP 1: HBWP_Adjusted

Opts = null

Opts.Input.[Dataview Set] = {path + "JCCOG TAZ 2002.DBD|2000 TAZ", "2000 TAZ"}

Opts.Global.Fields = {"HBWP_Adjusted"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "if (walk_bus = 'yes' or bus = 'yes') then (1-((0.9*StuPop)/ POP100N)) else 1"

ret_value = RunMacro("TCB Run Operation", 1, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 2: HBNWP/NHBP Adjusted (Bus)

Opts = null

Opts.Input.[Dataview Set] = {path + "JCCOG TAZ 2002.DBD|2000 TAZ", "2000 TAZ"}

Opts.Global.Fields = {"[HBNWP/NHBP AdjustBus]"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "if (bus = 'yes') then (1-((0.9*StuPop)/POP100N)) else 1"

ret_value = RunMacro("TCB Run Operation", 2, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 3: HBNWP/NHBP Adjusted (WalkBus)

Opts = null

Opts.Input.[Dataview Set] = {path + "JCCOG TAZ 2002.DBD|2000 TAZ", "2000 TAZ"}

Opts.Global.Fields = {"[HBNWP/NHBP AdjustWalkBus]"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "if (walk_bus = 'yes') then (1-((0.65*StuPop)/POP100N)) else 1"

ret_value = RunMacro("TCB Run Operation", 3, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 4: QRM All

Opts = null

Opts.Input.[Zone View] = {path + "JCCOG TAZ 2002.DBD|2000 TAZ", "2000 TAZ"}

Opts.Input.[Zone Set] = {path + "JCCOG TAZ 2002.DBD|2000 TAZ", "2000 TAZ"}

Opts.Input.[Production Table] = {path + "prod_tgp.dbf"}

Opts.Input.[Attraction Table] = {path + "attr_tgp.dbf"}

Opts.Field.[Total HH] = "[2000 TAZ].[Total DU]"

Opts.Field.Dwelling = "[2000 TAZ].[Total DU]"

Opts.Field.[Retail Employment] = "[2000 TAZ].[Retail Empl]"

Opts.Field.[Non-Ret Employment] = "[2000 TAZ].[All Other Empl]"

Opts.Global.[Model Option] = "Prod & Attr"

Opts.Global.Population = 94

Opts.Global.[Production Option] = "Average"

Opts.Global.[Income Option] = "None"

Opts.Global.[Number of Purposes] = 4

Opts.Global.[Ext Names] = {"HBW", "HBNW", "HBO", "NHB"}

Opts.Output.[Output Table] = path + "JCCOG2000_QRM.bin"

ret_value = RunMacro("TCB Run Procedure", 4, "QRM All", Opts)

if !ret_value then goto quit

// STEP 5: HBW Productions Adjusted

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG TAZ 2002.dbd|2000 TAZ", path + "JCCOG2000_QRM.bin", "ID", "ID1"}, "2000 TAZ+JCCOG2000_QRM"}

Opts.Global.Fields = {"HBWP"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "HBW_P * HBWP_Adjusted"

ret_value = RunMacro("TCB Run Operation", 5, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 6: HBW Attractions

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG TAZ 2002.dbd|2000 TAZ", path + "JCCOG2000_QRM.bin", "ID", "ID1"}, "2000 TAZ+JCCOG2000_QRM"}

Opts.Global.Fields = {"HBWA"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "HBW_A"

ret_value = RunMacro("TCB Run Operation", 6, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 7: HBNW Productions Adjusted

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG TAZ 2002.dbd|2000 TAZ", path + "JCCOG2000_QRM.bin", "ID", "ID1"}, "2000 TAZ+JCCOG2000_QRM"}

Opts.Global.Fields = {"HBNWP"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "HBNW_P * [HBNWP/NHBP AdjustBus] * [HBNWP/NHBP AdjustWalkBus]"

ret_value = RunMacro("TCB Run Operation", 7, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 8: HBNW Attractions

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG TAZ 2002.dbd|2000 TAZ", path + "JCCOG2000_QRM.bin", "ID", "ID1"}, "2000 TAZ+JCCOG2000_QRM"}

Opts.Global.Fields = {"HBNWA"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "HBNW_A"

ret_value = RunMacro("TCB Run Operation", 8, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 9: NHB Productions Adjusted

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG TAZ 2002.dbd|2000 TAZ", path + "JCCOG2000_QRM.bin", "ID", "ID1"}, "2000 TAZ+JCCOG2000_QRM"}

Opts.Global.Fields = {"NHBP"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "NHB_P * [HBNWP/NHBP AdjustBus] * [HBNWP/NHBP AdjustWalkBus]"

ret_value = RunMacro("TCB Run Operation", 9, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 10: NHB Productions Adjusted

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG TAZ 2002.dbd|2000 TAZ", path + "JCCOG2000_QRM.bin", "ID", "ID1"}, "2000 TAZ+JCCOG2000_QRM"}

Opts.Global.Fields = {"NHBA"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "NHB_A"

ret_value = RunMacro("TCB Run Operation", 10, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 11: HBWP from TAZ to Network Nodes

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Intersections/Nodes", path + "JCCOG TAZ 2002.dbd|2000 TAZ", "TAZ tag", "TAZ"}, "Intersections/Nodes+2000 TAZ", "Internal Centroids", "Select * where [node ID] = 1"}

Opts.Global.Fields = {"[Intersections/Nodes].HBWP"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "[2000 TAZ].HBWP"

ret_value = RunMacro("TCB Run Operation", 11, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 12: HBWA from TAZ to Network Nodes

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Intersections/Nodes", path + "JCCOG TAZ 2002.dbd|2000 TAZ", "TAZ tag", "TAZ"}, "Intersections/Nodes+2000 TAZ", "Internal Centroids", "Select * where [node ID] = 1"}

Opts.Global.Fields = {"[Intersections/Nodes].HBWA"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "[2000 TAZ].HBWA"

ret_value = RunMacro("TCB Run Operation", 12, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 13: HBNWP from TAZ to Network Nodes

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Intersections/Nodes", path + "JCCOG TAZ 2002.dbd|2000 TAZ", "TAZ tag", "TAZ"}, "Intersections/Nodes+2000 TAZ", "Internal Centroids", "Select * where [node ID] = 1"}

Opts.Global.Fields = {"[Intersections/Nodes].HBNWP"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "[2000 TAZ].HBNWP"

ret_value = RunMacro("TCB Run Operation", 13, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 14: HBNWA from TAZ to Network Nodes

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Intersections/Nodes", path + "JCCOG TAZ 2002.dbd|2000 TAZ", "TAZ tag", "TAZ"}, "Intersections/Nodes+2000 TAZ", "Internal Centroids", "Select * where [node ID] = 1"}

Opts.Global.Fields = {"[Intersections/Nodes].HBNWA"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "[2000 TAZ].HBNWA"

ret_value = RunMacro("TCB Run Operation", 14, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 15: NHBP from TAZ to Network Nodes

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Intersections/Nodes", path + "JCCOG TAZ 2002.dbd|2000 TAZ", "TAZ tag", "TAZ"}, "Intersections/Nodes+2000 TAZ", "Internal Centroids", "Select * where [node ID] = 1"}

Opts.Global.Fields = {"[Intersections/Nodes].NHBP"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "[2000 TAZ].NHBP"

ret_value = RunMacro("TCB Run Operation", 15, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 16: NHBA from TAZ to Network Nodes

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Intersections/Nodes", path + "JCCOG TAZ 2002.dbd|2000 TAZ", "TAZ tag", "TAZ"}, "Intersections/Nodes+2000 TAZ", "Internal Centroids", "Select * where [node ID] = 1"}

Opts.Global.Fields = {"[Intersections/Nodes].NHBA"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "[2000 TAZ].NHBA"

ret_value = RunMacro("TCB Run Operation", 16, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 17: Balance

Opts = null

Opts.Input.[Data Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "Centroids & Externals", "Select * where [node ID] = 1 or [node ID] = 2"}

Opts.Input.[Data View] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes"}

Opts.Input.[V1 Holding Sets] = {, , }

Opts.Input.[V2 Holding Sets] = {{path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "External Station Nodes", "Select * where [node ID] = 2"}, {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "External Station Nodes"}, {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "External Station Nodes"}}

Opts.Field.[Vector 1] = {"[Intersections/Nodes].HBWP", "[Intersections/Nodes].HBNWP", "[Intersections/Nodes].NHBP"}

Opts.Field.[Vector 2] = {"[Intersections/Nodes].HBWA", "[Intersections/Nodes].HBNWA", "[Intersections/Nodes].NHBA"}

Opts.Global.Pairs = 3

Opts.Global.[Holding Method] = {1, 1, 1}

Opts.Global.[Percent Weight] = {50, 50, 50}

Opts.Global.[Sum Weight] = {100, 100, 100}

Opts.Global.[V1 Options] = {1, 1, 1}

Opts.Global.[V2 Options] = {2, 2, 2}

ret_value = RunMacro("TCB Run Procedure", 17, "Balance", Opts)

if !ret_value then goto quit

quit:

Return( RunMacro("TCB Closing", ret_value, True ) )

endMacro

Macro "Model" (path)

RunMacro("TCB Init")

// STEP 1: Fill Dataview

Opts = null

Opts.Input.[Dataview Set] = {path + "JCCOG2000Network.DBD|Highway/Streets", "Highway/Streets"}

Opts.Global.Fields = {"TravTime"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "Length/Speed*60"

ret_value = RunMacro("TCB Run Operation", 1, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 2: Build Highway Network

Opts = null

Opts.Input.[Link Set] = {path + "JCCOG2000Network.DBD|Highway/Streets", "Highway/Streets", "Existing Network", "Select * where FutureRoads = 0"}

Opts.Global.[Network Options].[Node ID] = "[Intersections/Nodes].ID"

Opts.Global.[Network Options].[Link ID] = "[Highway/Streets].ID"

Opts.Global.[Network Options].[Turn Penalties] = "Yes"

Opts.Global.[Network Options].[Keep Duplicate Links] = "FALSE"

Opts.Global.[Network Options].[Ignore Link Direction] = "FALSE"

Opts.Global.[Link Options] = {{"Length", "[Highway/Streets].Length", "[Highway/Streets].Length"}, {"Dir", "[Highway/Streets].Dir", "[Highway/Streets].Dir"}, {"Capacity", "[Highway/Streets].Capacity", "[Highway/Streets].Capacity"}, {"[AB_Capacity / BA_Capacity]", "[Highway/Streets].AB_Capacity", "[Highway/Streets].BA_Capacity"}, {"[Total Capacity]", "[Highway/Streets].[Total Capacity]", "[Highway/Streets].[Total Capacity]"}, {"Speed", "[Highway/Streets].Speed", "[Highway/Streets].Speed"}, {"TravTime", "[Highway/Streets].TravTime", "[Highway/Streets].TravTime"}, {"Alpha", "[Highway/Streets].Alpha", "[Highway/Streets].Alpha"}, {"Beta", "[Highway/Streets].Beta", "[Highway/Streets].Beta"}}

Opts.Global.[Node Options] = {{"ID", "[Intersections/Nodes].ID"}, {"[TAZ tag]", "[Intersections/Nodes].[TAZ tag]"}}

Opts.Output.[Network File] = path + ""

ret_value = RunMacro("TCB Run Operation", 2, "Build Highway Network", Opts)

if !ret_value then goto quit

// STEP 3: Highway Network Setting

Opts = null

Opts.Input.Database = path + "JCCOG2000Network.DBD"

Opts.work = path + ""

Opts.Input.[Centroids Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "Selection", "Select * where [node ID] = 1 or [node ID] = 2"}

Opts.Input.[Spc Turn Pen Table] = {path + "JCCOG2000turns.bin"}

Opts.Global.[Global Turn Penalties] = {0.2, 0, 0, -1}

ret_value = RunMacro("TCB Run Operation", 3, "Highway Network Setting", Opts)

if !ret_value then goto quit

// STEP 4: TCSPMAT 1

Opts = null

Opts.work = path + ""

Opts.Input.[Origin Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "ext or centroids", "Select * where [node ID] = 1 or [node ID] = 2"}

Opts.Input.[Destination Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "ext or centroids"}

Opts.Input.[Via Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes"}

Opts.Field.Minimize = "TravTime"

Opts.Field.Nodes = "[Intersections/Nodes].ID"

Opts.Output.[Output Matrix].Label = "Shortest Path"

Opts.Output.[Output Matrix].Compression = 1

Opts.Output.[Output Matrix].[File Name] = path + "SPMAT.mtx"

ret_value = RunMacro("TCB Run Procedure", 4, "TCSPMAT", Opts)

if !ret_value then goto quit

// STEP 5: Intrazonal

Opts = null

Opts.Input.[Matrix Currency] = {path + "SPMAT.mtx", "Shortest Path - TravTime",,}

ret_value = RunMacro("TCB Run Procedure", 5, "Intrazonal", Opts)

if !ret_value then goto quit

// STEP 6: TCSPMAT 2

Opts = null

Opts.work = path + ""

Opts.Input.[Origin Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "ext", "Select * where [node ID] = 2"}

Opts.Input.[Destination Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "ext"}

Opts.Input.[Via Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes"}

Opts.Field.Minimize = "TravTime"

Opts.Field.Nodes = "[Intersections/Nodes].ID"

Opts.Output.[Output Matrix].Label = "Ext SPMAT"

Opts.Output.[Output Matrix].Compression = 1

Opts.Output.[Output Matrix].[File Name] = path + "ee SPMAT.mtx"

ret_value = RunMacro("TCB Run Procedure", 6, "TCSPMAT", Opts)

if !ret_value then goto quit

// STEP 7: Fill Matrices

Opts = null

Opts.Input.[Matrix Currency] = {path + "ee SPMAT.mtx", "Ext SPMAT - TravTime",,}

Opts.Global.Method = 1

Opts.Global.Value = 99999

Opts.Global.[Cell Range] = 2

Opts.Global.[Matrix Range] = 1

Opts.Global.[Matrix List] = {"Ext SPMAT - TravTime"}

ret_value = RunMacro("TCB Run Operation", 7, "Fill Matrices", Opts)

if !ret_value then goto quit

// STEP 8: Combine Matrix Files

Opts = null

Opts.Input.[Matrix Currencies] = {{path + "ee SPMAT.mtx", "Ext SPMAT - TravTime",,}, {path + "SPMAT.mtx", "Shortest Path - TravTime",,}}

Opts.Global.Operation = "Union"

Opts.Output.[Combined Matrix].Label = "final spmat"

Opts.Output.[Combined Matrix].Compression = 1

Opts.Output.[Combined Matrix].[File Name] = path + "Final SPMAT.mtx"

ret_value = RunMacro("TCB Run Operation", 8, "Combine Matrix Files", Opts)

if !ret_value then goto quit

// STEP 9: Matrix QuickSum

Opts = null

Opts.Input.[Input Currency] = {path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}

ret_value = RunMacro("TCB Run Operation", 9, "Matrix QuickSum", Opts)

if !ret_value then goto quit

// STEP 11: Gravity

Opts = null

Opts.Input.[PA View Set] = {path + "JCCOG2000Network.DBD|Intersections/Nodes", "Intersections/Nodes", "ext or centroids", "Select * where [node ID] = 1 or [node ID] = 2"}

Opts.Input.[FF Matrix Currencies] = {{path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}, {path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}, {path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}}

Opts.Input.[Imp Matrix Currencies] = {{path + "Final SPMAT.mtx", "QuickSum", "Rows", "Columns"}, {path + "Final SPMAT.mtx", "QuickSum", "Rows", "Columns"}, {path + "Final SPMAT.mtx", "QuickSum", "Rows", "Columns"}}

Opts.Input.[FF Tables] = {{"tab\\hourly.bin"}, {"tab\\hourly.bin"}, {"tab\\hourly.bin"}}

Opts.Input.[KF Matrix Currencies] = {{path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}, {path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}, {path + "Final SPMAT.mtx", "Shortest Path - TravTime", "Rows", "Columns"}}

Opts.Field.[Prod Fields] = {"[Intersections/Nodes].HBWP", "[Intersections/Nodes].HBNWP", "[Intersections/Nodes].NHBP"}

Opts.Field.[Attr Fields] = {"[Intersections/Nodes].HBWA", "[Intersections/Nodes].HBNWA", "[Intersections/Nodes].NHBA"}

Opts.Field.[FF Table Fields] = {"HOURLY.HOUR", "HOURLY.HOUR", "HOURLY.HOUR"}

Opts.Field.[FF Table Times] = {"HOURLY.HOUR", "HOURLY.HOUR", "HOURLY.HOUR"}

Opts.Global.[Purpose Names] = {"hbw", "hbnw", "nhb"}

Opts.Global.Iterations = {10, 10, 10}

Opts.Global.Convergence = {0.01, 0.01, 0.01}

Opts.Global.[Constraint Type] = {"Double", "Double", "Double"}

Opts.Global.[Fric Factor Type] = {"Gamma", "Gamma", "Gamma"}

Opts.Global.[A List] = {1, 1, 1}

Opts.Global.[B List] = {0.3, 0.3, 0.3}

Opts.Global.[C List] = {0.01, 0.01, 0.01}

Opts.Flag.[Use K Factors] = {0, 0, 0}

Opts.Output.[Output Matrix].Label = "cgrav"

Opts.Output.[Output Matrix].Compression = 1

Opts.Output.[Output Matrix].[File Name] = path + "cgrav.mtx"

ret_value = RunMacro("TCB Run Procedure", 11, "Gravity", Opts)

if !ret_value then goto quit

// STEP 12: PA2OD

Opts = null

Opts.Input.[PA Matrix Currency] = {path + "cgrav.mtx", "hbw", "Row ID's", "Col ID's"}

Opts.Field.[Matrix Cores] = {1, 2, 3}

Opts.Field.[Adjust Fields] = {, , }

Opts.Field.[Peak Hour Field] = {, , }

Opts.Global.[Method Type] = "PA to OD"

Opts.Global.[Average Occupancies] = {1.1, 1.85, 1.68}

Opts.Global.[Adjust Occupancies] = {"No", "No", "No"}

Opts.Global.[Peak Hour Factor] = {0, 0, 0}

Opts.Flag.[Separate Matrices] = "No"

Opts.Flag.[Convert to Vehicles] = {"Yes", "Yes", "Yes"}

Opts.Flag.[Include PHF] = {"No", "No", "No"}

Opts.Flag.[Adjust Peak Hour] = {"No", "No", "No"}

Opts.Output.[Output Matrix].Label = "PA to OD"

Opts.Output.[Output Matrix].Compression = 1

Opts.Output.[Output Matrix].[File Name] = path + "PA2OD.mtx"

ret_value = RunMacro("TCB Run Procedure", 12, "PA2OD", Opts)

if !ret_value then goto quit

// STEP 13: Combine Matrix Files

Opts = null

Opts.Input.[Matrix Currencies] = {{path + "PA2OD.mtx", "hbw (0-24)", "Rows", "Cols"}, {path + "PA2OD.mtx", "hbnw (0-24)", "Rows", "Cols"}, {path + "PA2OD.mtx", "nhb (0-24)", "Rows", "Cols"}, {path + "ee matrix.mtx", "EE (0-24)", "Untitled", "Untitled"}}

Opts.Global.Operation = "Union"

Opts.Output.[Combined Matrix].Label = "odee"

Opts.Output.[Combined Matrix].Compression = 1

Opts.Output.[Combined Matrix].[File Name] = path + "odee.mtx"

ret_value = RunMacro("TCB Run Operation", 13, "Combine Matrix Files", Opts)

if !ret_value then goto quit

// STEP 14: Matrix QuickSum

Opts = null

Opts.Input.[Input Currency] = {path + "odee.mtx", "hbw (0-24)", "Rows", "Columns"}

ret_value = RunMacro("TCB Run Operation", 14, "Matrix QuickSum", Opts)

if !ret_value then goto quit

// STEP 15: Assignment

Opts = null

Opts.Input.Database = path + "JCCOG2000Network.DBD"

Opts.work = path + ""

Opts.Input.[OD Matrix Currency] = {path + "odee.mtx", "QuickSum", "Rows", "Columns"}

Opts.Field.[FF Time] = "TravTime"

Opts.Field.Capacity = "[AB_Capacity / BA_Capacity]"

Opts.Field.Alpha = "Alpha"

Opts.Field.Beta = "Beta"

Opts.Field.Preload = "None"

Opts.Global.[Load Method] = 6

Opts.Global.Iterations = 60

Opts.Output.[Flow Table] = path + "ASN_LinkFlow.bin"

ret_value = RunMacro("TCB Run Procedure", 15, "Assignment", Opts)

if !ret_value then goto quit

// STEP 16: Fill Model VMT

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Highway/Streets", path + "ASN_LinkFlow.bin", "ID", "ID1"}, "Highway/Streets+ASN_LinkFlow"}

Opts.Global.Fields = {"[model vmt]"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "TOT_V_Dist_T"

ret_value = RunMacro("TCB Run Operation", 16, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 17: Fill totflow

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Highway/Streets", path + "ASN_LinkFlow.bin", "ID", "ID1"}, "Highway/Streets+ASN_LinkFlow"}

Opts.Global.Fields = {"totflow"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "TOT_Flow"

ret_value = RunMacro("TCB Run Operation", 16, "Fill Dataview", Opts)

if !ret_value then goto quit

// STEP 18: Fill Percent Difference

Opts = null

Opts.Input.[Dataview Set] = {{path + "JCCOG2000Network.dbd|Highway/Streets", path + "ASN_LinkFlow.bin", "ID", "ID1"}, "Highway/Streets+ASN_LinkFlow"}

Opts.Global.Fields = {"[% diff]"}

Opts.Global.Method = "Formula"

Opts.Global.Parameter = "abs((totflow- Count_2002)/ Count_2002)*100"

ret_value = RunMacro("TCB Run Operation", 17, "Fill Dataview", Opts)

if !ret_value then goto quit

quit:

Return( RunMacro("TCB Closing", ret_value, True ) )

endMacro

Macro "Open Map" (path)

RunMacro("TCB Init")

highway_layer = path + "JCCOG2000Network.DBD"

// flow_table = path + "ASN_LinkFlow.bin"

//Sets up map with proper map button bar in TransCAD and applies proper style defaults

map = RunMacro("G30 new map", highway_layer, "False")

//Open Assignment result, get view and join to line layer

// Layers = GetLayers()

// llayer = Layers[1]

// pth = SplitPath(flow_table)

// fl_vw = OpenTable(pth[3], "FFB", {flow_table})

// join_vw = JoinViews("Assign Results", llayer + ".ID", fl_vw + ".ID1", )

//Flow Theme:

thm_flds = {"[% diff]" }

// if GetLineWidth() ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download