Skip to content

User Guide

Work in Progress

Model Version TM2.1 - transit-ccr

Computing Environment

The hardware and software MTC uses to execute Travel Model Two are described on this page. To date, MTC has not experimented enough with the model to define the minimum or ideal hardware configuration. As such, the description here is for a hardware set up that is sufficient -- not optimal. It is important to note that both the software and model structure are highly configurable and flexible; depending on the analysis needs, the required computing power could vary dramatically.

Hardware

MTC uses four identical servers with the following characteristics:

  • Operating system: Microsoft Windows Server 2007 with Service Pack 2, 64-bit edition;
  • Processors: Two Intel Xeon X5570 @ 2.93 GHz (i.e., two quad-core processors with hyper-threading capability);
  • Memory (RAM): 96.0 GB

As discussed in the System Design section, these four computers can act in different roles, each requiring different amounts of memory and computing power. The four computers are named as follows: mainmodel, satmodel (for satellite), satmodel2, and satmodel3. As discussed in the System Design section, the mainmodel computer plays a specialized role in the system design; the satellite machines each play identical and completely interchangeable roles.

Software

The following software are required to execute the MTC travel model.

Citilabs Cube Voyager

The travel model currently uses version 6.4.2 of Citilabs Cube software. The Cube software is used to manage network, skim highways, and perform highway assignments.

Citilabs Cube Voyager 64bit Matrix I/O DLL

The CT-RAMP software, as discussed below, needs to access data stored in a format dictated by Cube. This is accomplished through a 64-bit DLL library specifically for matrix I/O,which must be accessible through the PATH environment variable. To install the DLL:

  • Run VoyagerFileAPIInstaller.msi, which is included in the CTRAMP\runtime folder
  • Ensure VoyagerFileAccess.dll is in the CTRAMP\runtime folder
  • Ensure the Microsoft Visual C++ 2012 redistributable is installed on the matrix server machine. Make sure to get version “110” DLLs (MSVCR110.dll and MSVCP110.dll). These files can be obtained from the Microsoft. Download and install vcredist_x64.exe.

Citilabs Cube Cluster

The Cube Cluster software allows Cube scripts to be multi-threaded. In the current approach, the travel model uses 64 computing nodes across four machines. The Cube scripts can be manipulated to use any number of computing nodes across any number of machines, provided each machine has, at a minimum, a Cube Voyager node license (for the time being, MTC has found 64 nodes on a single machine to be the most effective approach -- in terms of reliability and run time). Cube Cluster is not strictly necessary, as the Cube scripts can be modified to use only a single computing node. Such an approach would dramatically increase run times.

EMME

The travel model currently uses version 4.4.5.1 of EMME software. EMME software converts the CUBE network to use it for transit skimming and assignment, while incorporating transit capacity constraints.

Java and CT-RAMP

MTC's travel model operates on the open-source Coordinated Travel - Regional Activity-based Modeling Platform (or CT-RAMP) developed by Parsons Brinckerhoff. The software is written in the Java programming language. CT-RAMP requires the 64-bit Java Development Kit version 1.8 or later to be installed on each computer running the CT-RAMP software. The Java Development Kit includes the Java Runtime Environment. The 64-bit version of the software allows CT-RAMP to take advantage of larger memory addresses. The details of setting up and configuring the software are presented in the Setup and Configuration section of this guide.

Python

Certain network processing programs are written in Python. Python must be installed on the computer executing the Cube and EMME scripts -- mainmodel in MTC's configuration. The following table contains the list of python packages that are required by MTC's travel model.

You should also list the python packages required and the environments required

Library Version
argon2-cffi 20.1.0
async_generator 1.1
attrs 20.2.0
backcall 0.2.0
backports 1
backports.functools_lru_cache 1.6.1
blas 1
bleach 3.2.1
brotlipy 0.7.0
bzip2 1.0.8
ca-certificates 2022.2.1
certifi 2021.10.8
cffi 1.14.3
cfitsio 3.47
chardet 3.0.4
click 7.1.2
click-plugins 1.1.1
cligj 0.5.0
colorama 0.4.4
cryptography 3.1.1
curl 7.67.0
cycler 0.10.0
dbfpy3 4.1.5
decorator 4.4.2
defusedxml 0.6.0
entrypoints 0.3
et_xmlfile 1.0.1
expat 2.2.10
fiona 1.8.13.post1
freetype 2.10.4
freexl 1.0.5
gdal 3.0.2
geopandas 0.8.1
geos 3.8.0
geotiff 1.5.1
hdf4 4.2.13
hdf5 1.10.4
icc_rt 2019.0.0
icu 58.2
idna 2.1
importlib-metadata 2.0.0
importlib_metadata 2.0.0
intel-openmp 2020.2
ipykernel 5.3.4
ipython 7.18.1
ipython_genutils 0.2.0
jdcal 1.4.1
jedi 0.17.2
jinja2 2.11.2
jpeg 9b
json5 0.9.5
jsonschema 3.2.0
jupyter_client 6.1.7
jupyter_core 4.6.3
jupyterlab 2.2.9
jupyterlab_pygments 0.1.2
jupyterlab_server 1.2.0
kealib 1.4.7
kiwisolver 1.2.0
krb5 1.16.4
libboost 1.67.0
libcurl 7.67.0
libgdal 3.0.2
libiconv 1.15
libkml 1.3.0
libnetcdf 4.6.1
libpng 1.6.37
libpq 11.2
libsodium 1.0.18
libspatialindex 1.9.3
libspatialite 4.3.0a
libssh2 1.9.0
libtiff 4.1.0
libxml2 2.9.10
lz4-c 1.8.1.2
m2w64-expat 2.1.1
m2w64-gcc-libgfortran 5.3.0
m2w64-gcc-libs 5.3.0
m2w64-gcc-libs-core 5.3.0
m2w64-gettext 0.19.7
m2w64-gmp 6.1.0
m2w64-libiconv 1.14
m2w64-libwinpthread-git 5.0.0.4634.697f757
m2w64-xz 5.2.2
markupsafe 1.1.1
matplotlib 3.3.2
matplotlib-base 3.3.2
mistune 0.8.4
mkl 2020.2
mkl-service 2.3.0
mkl_fft 1.2.0
mkl_random 1.1.1
msys2-conda-epoch 20160418
munch 2.5.0
nbclient 0.5.1
nbconvert 6.0.7
nbformat 5.0.8
nest-asyncio 1.4.1
notebook 6.1.4
numpy 1.19.1
numpy-base 1.19.1
olefile 0.46
openjpeg 2.3.0
openpyxl 3.0.7
openssl 1.1.1m
packaging 20.4
pandas 1.1.3
pandoc 2.11.0.2
pandocfilters 1.4.2
parso 0.7.1
pcre 8.44
pickleshare 0.7.5
pillow 8.0.0
pip 20.2.3
postgresql 11.2
proj 6.2.1
prometheus_client 0.8.0
prompt-toolkit 3.0.8
pycparser 2.2
pygments 2.7.1
pyopenssl 19.1.0
pyparsing 2.4.7
pyproj 2.6.1.post1
pyqt 5.9.2
pyrsistent 0.17.3
pysocks 1.7.1
python 3.8.5
python-dateutil 2.8.1
python_abi 3.8
pytz 2020.1
pywin32 228
pywinpty 0.5.7
pyzmq 19.0.2
qt 5.9.7
requests 2.24.0
rtree 0.9.4
scipy 1.5.2
seaborn 0.11.2
send2trash 1.5.0
setuptools 50.3.0
shapely 1.7.1
sip 4.19.13
six 1.15.0
sqlite 3.33.0
tbb 2018.0.5
terminado 0.9.1
testpath 0.4.4
tiledb 1.6.3
tk 8.6.10
tornado 6.0.4
traitlets 5.0.5
urllib3 1.25.11
vc 14.1
vs2015_runtime 14.16.27012
wcwidth 0.2.5
webencodings 0.5.1
wheel 0.35.1
win_inet_pton 1.1.0
wincertstore 0.2
winpty 0.4.3
xerces-c 3.2.3
xlrd 2.0.1
xz 5.2.5
zeromq 4.3.2
zipp 3.3.1
zlib 1.2.11
zstd 1.3.7

Python Rtree library

The open source Python rtree library is required for a script that dynamically codes link area type based on land use data. The rtree library provides an efficient spatial index for looking up all spatial units within a buffered distance from each spatial unit. To install, open a dos prompt, navigate to the directory and type: pip install Rtree-0.8.2-cp27-cp27m-win_amd64.whl

Microsoft Excel

The CT-RAMP software allows discrete choice models to be specified via so-called Utility Expression Calculators. These files are Excel-based.

Remote Execution and Stop Utilities

The Microsoft PsKill and PsExec programs are used to remotely kill programs and execute programs.

System Design

Here, we describe the manner in which the software is configured to take advantage of the available hardware (see the Computing Environment section for details on the hardware and software used in the travel model; see the Setup and Configuration section for details on setting up and configuring the MTC to run on a given set of hardware).

Distributed Computing

The MTC travel model uses two types of distributed applications. The first is facilitated by the Cube Cluster software and allows the skim building and assignment steps to utilize multiple threads. The second is faciltated by the CT-RAMP software, which allows the choice models to be distributed across multiple threads and multiple computers. A brief overview of both of these applications is provided below.

Cube Cluster

Citilabs Cube scripts facilitate two types of distribution, both of which are highly configurable through the Cube scripting language and the Cube Cluster thread management system; the two distinct types of multi-threading are as follows:

  • Intra-step threading: The DistributeINTRAStep keyword allows calculations that are performed across a matrix of data to be performed in blocks -- specifically rows of data -- across multiple threads. MTC uses intra-step threading in highway assignment, allowing shortest paths to be constructed for more than one origin at a time. Complex matrix calculations can also benefit from intra-step threading.
  • Multi-step threading: The DistributeMULTIStep keyword allows blocks of code to be distributed across multiple threads. For example, if the same calculations are being performed for five different time periods, the same block of code (with variables) can be distributed across computers for parallel processing. This type of Cube multi-threading is a bit less flexible than the intra-step threading as it requires threads to be identified a priori (e.g., thread one will do the calculations for time period A), where the intra-step threading can be given a list of available processes and use what is available. MTC uses multi-step threading for highway skimming, transit skimming, highway assignment, the conversion of trip lists to trip matrices, highway assignment, and transit assignment.

As noted in the Computing Environment section, the MTC travel model specifies the Cube scripts to take advantage of 64 threads. A knowledgeable user can easily adjust the necessary scripts to take advantage of more or fewer processors.

CT-RAMP

The CT-RAMP software allows for the choice models to be distributed across threads and machines. The MTC application currently uses four machines, but the CT-RAMP software can be configured fairly easy to utilize fewer or more machines. CT-RAMP uses the Java Parallel Processing Framework, or JPPF, to manage the distribution of tasks. JPPF is an open-source Java package. The JPPF framework consists of three main parts as follows:

  1. a driver, also referred to as the JPPF server;
  2. one or more nodes, typically one node is established on each machine; and,
  3. a client, the CT-RAMP software in this case.

As noted on the Computing Environment section, MTC uses four computers with the names mainmodel, satmodel, satmodel2, and satmodel3. The JPPF driver process is executed on mainmodel and acts like a traffic cop by acquiring tasks from the client and distributing those tasks to the node processes. When the node processes complete tasks, the results are returned back to the client via the JPPF driver. Three nodes are used in the MTC application, one each on satmodel, satmodel2, and satmodel3 (each node runs 12 processes). These three nodes are created prior to executing a model run. After being created, each node listens for tasks from the JPPF driver.

Node processes receive tasks, perform those tasks, and return the results. Nodes are configured to communicate with the driver process when they are started. MTC configures the nodes to use 90 GB of memory and 12 threads (see the Setup and Configuration section for details on where these parameters are specified). The JPPF driver attempts to balance computational loads across available nodes. The driver also retrieves class files, i.e. sets of Java code, from the client application and passes those to the nodes as needed.

The CT-RAMP software, which serves as the client, is responsible for creating task objects that can be run in parallel and submitting those to the driver. Because the MTC travel model simulates households, the CT-RAMP software creates packets of N (a user-configurable quantity, e.g. 500) households and sends those packets to the nodes for processing. As the nodes complete tasks and return them to the driver, the driver gives the nodes new tasks, attempting to keep each node uniformly busy.

Household Manager and Matrix Manager

Before executing a model run, the travel model requires a Household Manager and a Matrix Manager be created. In the MTC application, both the Managers reside on the satmodel computer during execution. The Household Manager is tasked with managing the simulated households, as well as each simulated person in each simulated household. The Household Manager provides the JPPF nodes with information regarding the households for which the JPPF nodes are applying choice models and stores the resulting information computed by the JPPF nodes. To help keep run time down, the synthetic population is read from disk and stored in memory at the beginning of the application and then continuously updated as choice models are completed and iterations are performed. When the last iteration is complete, the necessary information is written to disk.

The Matrix Manager is tasked with managing all of the skim matrices used by the choice models. When a skim is needed, a request is made to the Matrix Manager, which then reads the required skim from disk and stores it in memory. Once in memory, each matrix is available to any other JPPF node process that may need it.

Both the Household Manager and Matrix Manager have substantial memory footprints, currently 35GB and 44GB respectively.

TAZ, MAZ, and TAP Data Manager

The main CT-RAMP model process includes the following internal data management interfaces for managing zone-type data:

  • TAZ data manager,
  • MAZ data manager, and
  • TAP data manager.

These data managers provide TAZ, MAZ, and TAP level data to the various sub-models. The TAZ data manager provides TAZ attribute data. The MAZ data manager provides MAZ attribute data, as well as MAZ to MAZ impedances. The TAP data manager provides TAP attribute data, as well as MAZ to TAP impedances. These data managers are copied to JPPF nodes during execution, which increases the memory required by JPPF nodes.

Setup and Configuration

This section provides details on setting up the travel model to run on a cluster of computers, including descriptions of the necessary configuration files.

Step 1: Create the required folder structure

The MTC travel model folder structure is shown below. Typically the parent directory will be named for the scenario to be run (e.g. '2010_base'). The parent directory contains two subfolders ctramp and input, and one MS-DOS batch file, RunModel.bat. This folder can be placed in any directory on a computer designated as the main controller of the program flow. On MTC's set up, these files are placed on the mainmodel computer (see System Design section for more details).

  • \Scenario_Folder
    • \ct-ramp
    • \input
    • RunModel.bat

The CTRAMP directory contains all of the model configuration files, Java instructions, Cube, EMME, EMME and Python scripts required to run the travel model, organized in the following three folders:

  • model -- contains all of the Utility Expression Calculators files that specify the choice models; [CHECK_DAVID: should the links be for master branch or transit-ccr?]
  • runtime -- contains all of the Java configuration and JAR (executable) files, as well as the files necessary for Java to communicate with Cube; [CHECK_DAVID: should the links be for master branch or transit-ccr?]
  • scripts -- contains all of the Cube, EMME, and Python scripts along with associated helper files. [CHECK_DAVID: should the links be for master branch or transit-ccr?]

The INPUT directory contains all of the input files (see the Input Files section) required to run a specific scenario. All the input files are available on Box. MTC will deliver the model with a set of scenario-specific set of inputs. When configuring the model on a new computing system, one should make sure that the results from an established scenario can be recreated before developing and analyzing a new scenario. The INPUT directory contains the following folders:

  • hwy -- contains the input master network with all zone centroids as well (TAZ, MAZ, and TAP) (see the Networks section);
  • trn -- contains all of the input transit network files (see the Networks section);
  • landuse -- contains the MAZ and TAZ level socio-economic input land use files;
  • nonres -- contains the fixed, year-specific internal/external trip tables, the fixed, year-specific air passenger trip tables, and files used to support the commercial vehicle model;
  • popsyn -- contains the synthetic population files;
  • visualizer -- contains the survey data and other helper files needed for the visualizer;

The RunModel.bat script contains a list of MS-DOS instructions that control model flow.

Step 2: Map a network drive to share across computers

As noted in the previous section, the MTC model files can be placed within any directory. After establishing this location, the user must map a network drive to a shared folder to allow other computers access. On MTC's machine, the directory E:\MainModelShare is first mapped to the letter drive M:\ and this directory is then shared across on the network (M:\ = \\MainModel\MainModelShare\).

Satellite computers should also map the letter drive M:\ to this network location.

Please note that the model components running on the main machine should use the local version of the directory (i.e. M:\Projects\) rather than the network version (i.e. \\MainModel\MainModelShare\Projects\).

MTC has created scenarios for 2000, 2005, 2010 and 2015. The model is calibrated and validated to 2010 observed data.

Step 3: Configure the CT-RAMP and JPPF Services

Much of the configuration of the CT-RAMP software is done automatically by the RunModel.bat batch file. However, prior to executing a model run, the files controlling the CT-RAMP and JPPF services may need to be configured. Please see the System Design section for a broad overview of these services. When executing the travel model, the following start-up scripts need to be run separately on each computer. Each script specifies the tasks assigned to each computer and need not be configured exactly as described on the System Design section (we describe MTC's setup; numerous other configurations are possible). In the MTC setup, the following commands are executed:

  1. runDriver.cmd starts the JPPF Driver required for distributed model running;
  2. runHhMgr.cmd starts the household manager on satmodel1;
  3. runMtxMgr.cmd starts the matrix manager on satmodel1;
  4. runNode{X}.cmd starts up JPPF worker nodes on the remaining node {X} machine(s);

The .cmd files are MS-DOS batch scripts and can be edited in a text editor, such as Notepad.

Each program requires an explicit amount of memory to be allocated to it. The amount of memory allocated to each program is identified by the -Xmx parameter (XXXm allocates XXX megabytes; Xg allocates X gigabytes. This may need to be adjusted depending on the model and hardware configurations. An example is as follows:

.. %JAVA_PATH%\bin\java -server -Xmx35000m ...

Most of the JPPF-related configuration parameters have been optimized for the MTC travel model application and, as such, need not be modified. There are, however, a handful of parameters described in the table below that may need to be modified to meet the specifications of the computing environment upon which the model is being executed. Each of the files listed below can be found in the CTRAMP\runtime\config\ directory.

File Name File Function Statement Purpose
jppf-clientDistributed.properties JPPF Client Driver Control file driver1.jppf.server.host = 192.168.1.200 IP address of the main computer (mainmodel at MTC)
jppf-clientLocal.properties JPPF Client Local Control file jppf.local.execution.threads = 22 Number of threads to use for running the model on one machine for testing (mainly for debugging)
jppf-driver.properties JPPF Driver Control file jppf.server.host = 192.168.1.200 IP address of the main computer (mainmodel at MTC)
jppf-node{x}.properties Remote JPPF Node Control file jppf.server.host = 192.168.1.200 IP address of the main computer (mainmodel at MTC)
processing.threads = 12 Number of computing cores on node {X}
other.jvm.options = -Xms48000m -Xmx48000m -Dnode.name=node0 Maximum amount of memory, in MB, to allocate to node {X} and node name for logging

A file that needs to be edited prior to executing a model run is the mtctm2.properties file located in CTRAMP\runtime\. This file serves as the general control module for the entire CT-RAMP application. At this stage, the following variables need to be modified for the software to execute the model properly.

Statement Purpose
RunModel.MatrixServerAddress = 192.168.1.200 The IP address of the machine upon which the Matrix Manager is being executed (satmodel1 at MTC)
RunModel.HouseholdServerAddress = 192.168.1.200 The IP address of the machine upon which the Household Manager is being executed (satmodel1 at MTC)

Step 4: Configure RunModel.bat and CTRampEnv.bat

The file RunModel.bat MS-DOS batch file that executes the model stream needs to be consistent with the network and if a specialized model run is being executed, the model flow logic and/or sample rates may need to be adjusted. The following statements may need to be configured within this file:

Statement Purpose
set SAMPLERATE_ITERATION{iteration}=0.2 Set choice model household sample rate by iteration
model run
set MODEL_YEAR=2015 Set model year
set BASE_SCRIPTS=CTRAMP\scripts Set scripts folder
set /A MAX_ITERATION=3 Set the model feedback iterations
set /A MAX_INNER_ITERATION=2 Set the inner transit capacity restraint iterations

The file CTRampEnv.bat MS-DOS batch file points to locations of executables and contains some additional information on machine configuration. The following statements may need to be configured within this file:

Statement Purpose
set JAVA_PATH=C:\Program Files\Java\jre1.8.0_301 Specify the 64-bit Java path; version 1.8.0+
set TPP_PATH=C:\Progam Files\Citilabs\CubeVoyager Specify the Cube Voyager path
set CUBE_PATH=C:\Progam Files (x86)\Citilabs\Cube Specify the Cube path
set PYTHON_PATH=D:\Anaconda2 Specify the Python path
set RUNTIME=CTRAMP\runtime Specify the location of the CT-RAMP software (relative to the project directory)
set JAVA_32_PORT=1190 Specify the port for Java 32 bit matrix reader\writer (not currently used)
set MATRIX_MANAGER_PORT=1191 Specify the port for the matrix manager
set HH_MANAGER_PORT=1129 Specify the port for the household manager
SET MAIN=WRJMDLPPW08 Set machine name mainmodel
SET MTC0{1,2,3}=WRJMDLPPW08 Set machine names for satmodels
set HHMGR_IP=172.24.0.100 Specify IP address of household manager
set MATRIX_SERVER=\\%MTC02% Machine running matrix data manager
set MATRIX_SERVER_BASE_DIR=%MATRIX_SERVER%\e$\projects\clients\MTC\%SCEN% Machine running matrix data manager base directory
set MATRIX_SERVER_ABSOLUTE_BASE_DIR=e:\projects\clients\MTC\%SCEN% Machine running matrix data manager absolute directory
set MATRIX_SERVER_JAVA_PATH=C:\Program Files\Java\jre1.8.0_261 Machine running matrix data manager Java install
set HH_SERVER=\\%MTC02% Machine running household data manager
set HH_SERVER_BASE_DIR=%HH_SERVER%\e$\projects\clients\MTC\%SCEN% Machine running household data manager base directory
set HH_SERVER_ABSOLUTE_BASE_DIR=e:\projects\clients\MTC\%SCEN% Machine running household data manager absolute directory
set HH_SERVER_JAVA_PATH=C:\Program Files\Java\jre1.8.0_261 Machine running household data manager Java install
set USERNAME= Username for remote access using psexec
set PASSWORD= Password for remote access using psexec

Now that the model is configured, the user can run the model, as described in the Model Execution section.

Model Execution

This page describes how RunModel.bat executes the travel model. For:

Step 1: Set globally-available environmental variables

See Setup and Configuration for complete details.

Step 2: Set relevant paths to access software

See Setup and Configuration for complete details.

Step 3: Create and populate a working directory of input files

A working directory is created and populated with the input files, leaving the input files untouched in the process. This step also creates the necessary directory structure for the household and matrix data servers on the remote machine and copies over needed files.

mkdir hwy
mkdir trn
mkdir skims
mkdir landuse
mkdir popsyn
mkdir nonres
mkdir main
mkdir logs
mkdir database
mkdir ctramp_output

:: Stamp the feedback report with the date and time of the model start
echo STARTED MODEL RUN  %DATE% %TIME% >> logs\feedback.rpt

:: Move the input files, which are not accessed by the model, to the working directories
copy INPUT\hwy\                 hwy\       /Y
copy INPUT\trn\                 trn\       /Y
copy INPUT\landuse\             landuse\   /Y
copy INPUT\popsyn\              popsyn\    /Y
copy INPUT\nonres\              nonres\    /Y
copy INPUT\warmstart\main\      main\      /Y
copy INPUT\warmstart\nonres\    nonres\    /Y

After the directories are created, copies are made to the remote machines for access by the household and matrix servers.

SET HH_DEPENDENCIES=(hwy popsyn landuse skims trn CTRAMP logs)
IF NOT EXIST "%HH_SERVER_BASE_DIR%" MKDIR "%HH_SERVER_BASE_DIR%"
FOR %%A IN %HH_DEPENDENCIES% DO (
  IF NOT EXIST "%HH_SERVER_BASE_DIR%\%%A" MKDIR "%HH_SERVER_BASE_DIR%\%%A"
)
ROBOCOPY CTRAMP %HH_SERVER_BASE_DIR%\CTRAMP *.* /E /NDL /NFL

:: Create necessary directory structure for matrix data server
SET MATRIX_DEPENDENCIES=(skims CTRAMP logs ctramp_output)
IF NOT EXIST "%MATRIX_SERVER_BASE_DIR%" MKDIR "%MATRIX_SERVER_BASE_DIR%"
FOR %%A IN %MATRIX_DEPENDENCIES% DO (
    IF NOT EXIST "%MATRIX_SERVER_BASE_DIR%\%%A" MKDIR "%MATRIX_SERVER_BASE_DIR%\%%A"
)
ROBOCOPY CTRAMP "%MATRIX_SERVER_BASE_DIR%\CTRAMP" *.* /E /NDL /NFL

Step 4: Pre-process steps

Several steps are needed to prepare the inputs for use in the model. The following Cube scripts are executed to perform the following:

  • preprocess_input_net.job -- preprocessing input network to add a Feet field for distance and fix space issue in CNTYPE field
  • writeZoneSystems.job -- write a batch file with number of tazs, taps, and mazs
  • zone_seq_net_builder.job -- build an internal numbering scheme for the network nodes to play nice with Cube
  • zone_seq_disseminator.py -- creates all necessary input files based on updated sequential zone numbering
  • renumber.py -- renumber the TAZs and MAZs in the households data file
  • maz_densities.job -- writes out the intersection and MAZ XYs
  • createMazDensityFile.py -- calculates density fields and append those to MAZ file
  • CreateNonMotorizedNetwork.job -- convert the roadway network into bike and ped networks
  • tap_to_taz_for_parking.job -- builds a shortest path tree from taps to tazs based on walk distance
  • tap_data_builder.py -- this script builds the tap csv data file which maps all TAPs to the closest TAZ for that TAP
  • SetTolls.job -- set network prices (i.e., bridge tolls, express lane tolls) in the roadway network
  • SetHovXferPenalties.job -- add a penalty of X seconds for dummy links connecting HOV/express lanes and general purpose lanes
  • SetCapClass.job -- compute area type and populate the CAPCLASS network variable
  • setInterchangeDistance.job -- preprocess freeway link distances to nearest major interchange
  • CreateFiveHighwayNetworks.job -- create time-of-day-specific roadway networks
  • BuildTazNetworks.job -- create TAZ-scale networks for TAZ-scale roadway assignment

Step 5: Build walk, bicycle, and nearby automobile level-of-service matrices

Two scripts create the level-of-service information for the non-motorized modes and nearby automobile skims (for which, as a simplification, congestion is constant). The following Cube scripts do the job:

  • NonMotorizedSkims.job -- skim the walk and bicycle networks
  • MazMazSkims.job -- builds short-distance MAZ-to-MAZ automobile skims

Step 6: Build air passenger demand matrices

The BuildAirPax.job Cube script creates the air passenger demand estimates. Air passenger demand is assumed to be independent of roadway level-of-service and, as such, can be computed a single time.

Step 7: Build highway and transit skims

The following steps create the highway and transit level-of-service matrices:

  • HwySkims.job -- build the roadway skims
  • BuildTransitNetworks.job -- build the transit networks using the congested roadway times
  • TransitSkimsPrep.job -- build the transit skims for five time periods
  • cube_to_emme_network_conversion.py -- read in a Cube network shapefile and output EMME transaction files to load the network and attributes into EMME for first model iteration
  • create_emme_network.py -- creates an EMME project folder, database, and a scenario for each time period for first model iteration
  • skim_transit_network.py -- performs transit skimming and assignment for TM2
  • Set the sampling rate based on SAMPLERATE_ITERATION<iteration> global variable
  • Copy the skims and related files to the remote household and matrix data manager machines

Step 8: Execute the CT-RAMP models

The core passenger travel demand models are executed via the CT-RAMP Java code via the following steps:

  • Remote household and matrix servers are started using psexec
  • JPPF driver, as needed, is started via CTRAMP/runtime/runDriver.cmd
  • JPPF worker nodes, as specified, are started via CTRAMP\runtime\runNode0.cmd
  • CT-RAMP models are executed via CTRAMP/runMTCTM2ABM.cmd
  • Stops remote servers using pskill
  • Copies output matrices from the matrix manager machine back to the main machine
  • merge_auto_matrices.s -- merge non-transit trip matrices from the CTRAMP model outputs

Step 9: Execute the internal/external and commercial vehicle models

These ancillary demand models are executed via a series of Cube scripts as follows:

  • IxForecasts.job -- create the internal/external demand matrices forecast
  • IxTimeOfDay.job -- apply diurnal factors to the daily fixed internal/external demand matrices
  • IxTollChoice.job -- apply a toll choice model for express lanes to the internal/external demand
  • TruckTripGeneration.job -- apply the commercial vehicle generation models
  • TruckTripDistribution.job -- apply the commercial vehicle distribution models
  • TruckTimeOfDay.job -- apply the commercial vehicle diurnal factors
  • TruckTollChoice.job -- apply a toll choice model for express lanes with eligible commercial demand

Step 10: Network Assignment

Demand is located on mode-specific paths through the networks in the assignment step via the following steps:

  • build_and_assign_maz_to_maz_auto.job -- nearby automobile demand assigned to best path on MAZ-scale network
  • HwyAssign.job -- using nearby demand as background demand, demand assigned to TAZ-scale network
  • AverageNetworkVolumes.job -- method of successive averages (MSA) applied across overall model iterations
  • CalculateAverageSpeed.job -- using the averaged volumes, compute speeds
  • MergeNetworks.job -- merge time-of-day-specific networks into a single network
  • IF additional ITERATIONs are needed, run HwySkims.job
  • BuildTransitNetworks.job -- creates the transit network used for skimming/assignment
  • TransitSkimsPrep.job -- compute transit skims for five time periods
  • cube_to_emme_network_conversion.py -- updates the transaction files and attributes in EMME for second model iteration
  • create_emme_network.py -- updates the congested link times in EMME for second model iteration
  • IF INNER_ITERATION == 1, skim_transit_network_py2.py script resimulates the congested transit assignment for all time periods
  • IF INNER_ITERATION > 1, skim_transit_network_py2.py script resimulates the congested transit assignment only for AM and PM periods
  • Start remote matrix server using psexec
  • Recalculate transit best path via running CTRAMP\runtime\runTransitPathRecalculator.cmd

Step 11: Clean up

The next step of the model run moves all the TP+ printouts to the /logs folder and deletes all the temporary TP+ printouts and cluster files.

Step 12: visualizer

The final step of the model run creates an html visualizer that helps comparing CHTS survey data to current run model outputs. The visualizer is created via CTRAMP\scripts\visualizer\generateDashboard.bat

CT-RAMP Properties File

The CT-RAMP software is controlled by a standard Java properties file. The forthcoming {table, link} below identifies, describes, and provides on example of, each of the variables CT-RAMP expects to be in the properties file. After the initial configuration, only a handful of these properties willl be modified in a typical application of the travel model. The primary use for many of the variables is to facilitate model calibration and/or debugging. Comments in the properties file preceeded with a pound (#) are ignored.

Purpose Expected Data Type Example Value Purpose
Cluster Properties
Modify when changing cluster configuration or moving to new cluster (properties for java processes)
RunModel.MatrixServerAddress String 10.0.1.46 Matrix server address
RunModel.MatrixServerPort Integer 1191 Matrix server port number
RunModel.HouseholdServerAddress String 10.0.1.46 Household server address
RunModel.HouseholdServerPort Integer 1129 Household server port number
Logging and Debugging Properties
Use for tracing households or agents through simulation
Trace Boolean true True or False whether to trace zones
Trace.otaz Integer 0 Specify which origin taz to trace
Trace.dtaz Integer 0 Specify which destination taz to trace
Seek Boolean false True or False whether to seek households
Process.Debug.HHs.Only Boolean false True of False whether to debug households
Debug.Trace.HouseholdIdList Integer 13748 Specify which Household ID to trace
TourModeChoice.Save.UtilsAndProbs Boolean true Save tour mode choice utilities and probabilities for debugging
Path Properties
Modify as needed when copy release to a local run folder
Project.Directory String %project.folder%/ Project.Directory
generic.path String %project.folder%/INPUT/ Inputs folder
scenario.path String %project.folder%/ Scenario folder
skims.path String %project.folder%/skims/ Outputs folder
uec.path String %project.folder%/CTRAMP/model/ UEC folder
Scenario Properties
Modify when running new scenario, if necessary
mgra.socec.file String /landuse/maz_data_withDensity.csv Location of mgra land use file
network.node.seq.mapping.file String /hwy/mtc_final_network_zone_seq.csv Location of mapping between Nodes, MAZs, TAZs and TAPs
aoc.fuel Float 10.99 Auto operating costs: Fuel cost
aoc.maintenance Float 6.24 Auto operating costs: Maintenance cost
HouseholdManager.MinValueOfTime Float 1.0 Household Value of Time Distribution: Minimum
HouseholdManager.MaxValueOfTime Float 50.0 Household Value of Time Distribution: Maximum
HouseholdManager.MeanValueOfTime.Values String 6.01, 8.81, 10.44, 12.86 Household Value of Time Distribution: Mean values for income groups
HouseholdManager.MeanValueOfTime.Income.Limits String 30000, 60000, 100000 Household Value of Time Distribution: Income Limits
HouseholdManager.Mean.ValueOfTime.Multiplier.Mu Float 0.684 Household Value of Time Distribution: Mean Multiplier
HouseholdManager.ValueOfTime.Lognormal.Sigma Float 0.87 Household Value of Time Distribution: Lognormal Sigma
HouseholdManager.HH.ValueOfTime.Multiplier.Under18 Float 0.66667 Household Value of Time Distribution: Under 18 multiplier
AV Mobility Scenario Parameters
Mobility.AV.Share Float 0.0 Specifies the share of vehicles assumed to be AVs in the vehicle fleet
Mobility.AV.ProbabilityBoost.AutosLTDrivers Float 1.2 The increased probability for using AVs for tours by LT drivers.
Mobility.AV.ProbabilityBoost.AutosGEDrivers Float 1.1 The increased probability for using AVs for tours by GE drivers.
Mobility.AV.IVTFactor Float 0.5 The auto in-vehicle time factor to apply to AVs
Mobility.AV.ParkingCostFactor Float 0.0 The auto parking cost factor to apply to AVs
Mobility.AV.CostPerMileFactor Float 0.5 Cost to travel per mile to apply to AVs
Mobility.AV.TerminalTimeFactor Float 0.0 Terminal Time Factor to apply to AVs
Taxi and TNC Cost and Wait Time Parameters
taxi.basefare Float 2.2 Basefare for taxi
taxi.costPerMile Float 2.3 Cost per mile for taxi
taxi.costPerMinute Float 0.1 Cost per minute for taxi
TNC.basefare Float 2.2 Basefare for TNC
TNC.costPerMile Float 1.33 cost per mile for TNC
TNC.costPerMinute Float 0.24 Cost per minute for TNC
TNC.costMinimum Float 7.2 Minimum cost to ride using TNC
TNC.waitTime.mean String 10.3, 8.5, 8.4, 6.3, 4.7 Mean for TNC wait time distribution
TNC.waitTime.sd String 2.1, 2.1, 2.1, 2.1, 2.1 Standard deviation for TNC wait time distribution
Taxi.waitTime.mean String 26.5, 17.3,13.3, 9.5, 5.5 Mean for taxi wait time distribution
Taxi.waitTime.sd String 3.2, 3.2, 3.2, 3.2, 3.2 Standard deviation for taxi wait time distribution
WaitTimeDistribution.EndPopEmpPerSqMi String 500,2000,5000,15000,9999999999 Population employment per square mile for wait time distribution
Transit Assignment Parameters
Toggle and controls for managing Cube PT transit crowding assignments
transit.crowding Boolean True Master toggle to enable adjustlink and adjustwait.
transit.crowding.adjustlink Boolean False Toggle to enable link travel-time adjustment based on crowding
transit.crowding.adjustwait Boolean False Toggle to enable wait adjusted travel times and bump boardings from crowding
transit.crowding.advance_support Boolean False Toggle if Cube version is > 6.4.4 and supports advanced convergence and dampening factors (df)
transit.crowding.convergence Float 0.01 Cube PT crowding RMSE congervence criteria
transit.crowding.linkdf Float 0.4 Cube PT link dampening factor
transit.crowding.voldf Float 0.4 Cube PT volume dampening factor
transit.crowding.waitdf Float 0.4 Cube PT wait dampening factor
transit.crowding.iterations Integer 1 Number of iterations for transit crowding assignments
Parking Capacity Restraint Parameters
For managing CT-RAMP parking capacity restraint algorithm
ParkingCapacityRestraint.spacesForMissingLots Integer 20 The number of spaces to use for any TAP not listed in the station attribute file (local stops, missing express bus stops, etc.)
ParkingCapacityRestraint.minutesPerSimulationPeriod Integer 15 The size of the simulation period used for capacity calculations in the parking capacity restraint model. The smaller the simulation period, the more iterations may be required to constrain to total available parking
ParkingCapacityRestraint.maxIterations Integer 10 Maximum number of times to iterate between parking constraint and re-running CT-RAMP for households with PNR tours arriving at full lots
ParkingCapacityRestraint.lumpinessFactor Integer 2 The factor used to scale the inverse of sample rate to calculate a buffer for parking capacity (buffer = 1.0f/sampleRate * lumpiness_factor)
ParkingCapacityRestraint.parkAndHideFactor Float 1.15 A factor on parking capacity to account for cars that "hide" and walk to station from non-designated parking
ParkingCapacityRestraint.occupancyFactor Float 1.05 The average number of transit riders who drive together in the same car and park, to convert person trips to vehicles
Average vehicle occupancy for 3 plus by purpose
Used for generating trip tables for assignment
occ3plus.purpose.Work Float 3.33
occ3plus.purpose.University Float 3.33
occ3plus.purpose.School Float 3.33
occ3plus.purpose.Escort Float 3.33
occ3plus.purpose.Shop Float 3.33
occ3plus.purpose.Maintenance Float 3.33
occ3plus.purpose.EatingOut Float 3.33
occ3plus.purpose.Visiting Float 3.33
occ3plus.purpose.Discretionary Float 3.33
occ3plus.purpose.WorkBased Float 3.33
Core Model Run Properties
Control Steps Run in Core Model
Model.Random.Seed Integer 1 Starting value for model random seed number (added to household IDs to create unique random number for each household)
acc.read.input.file Boolean false Set to true if read the accessibilities from an input file instead of calculating them prior to running CTRAMP
uwsl.ShadowPricing.Work.MaximumIterations Integer 1 maximum number of iterations for work shadow price
uwsl.ShadowPricing.School.MaximumIterations Integer 1 maximum number of iterations for school shadow price
uwsl.ShadowPricing.OutputFile String /ctramp_output/ShadowPricingOutput.csv output file name and location for shadow price
uwsl.run.workLocChoice Boolean true True or False whether to run this model component
uwsl.run.schoolLocChoice Boolean true True or False whether to run this model component
uwsl.write.results Boolean true True of False whether to write out usual work and school location results
uwsl.use.new.soa Boolean false true or false whether to use new soa for the work/school DC model
nmdc.use.new.soa Boolean false true or false whether to use new soa for the non-mandatory DC models
slc.use.new.soa Boolean false true or false whether to use new soa for the stop location choice models
distributed.task.packet.size Integer 500 Distributed task packet size
RunModel.PreAutoOwnership Boolean true True or False whether to run this model component
RunModel.UsualWorkAndSchoolLocationChoice Boolean true True or False whether to run this model component
RunModel.AutoOwnership Boolean true True or False whether to run this model component
RunModel.TransponderChoice Boolean true True or False whether to run this model component
RunModel.FreeParking Boolean true True or False whether to run this model component
RunModel.CoordinatedDailyActivityPattern Boolean true True or False whether to run this model component
RunModel.IndividualMandatoryTourFrequency Boolean true True or False whether to run this model component
RunModel.MandatoryTourModeChoice Boolean true True or False whether to run this model component
RunModel.MandatoryTourDepartureTimeAndDuration Boolean true True or False whether to run this model component
RunModel.JointTourFrequency Boolean true True or False whether to run this model component
RunModel.JointTourLocationChoice Boolean true True or False whether to run this model component
RunModel.JointTourDepartureTimeAndDuration Boolean true True or False whether to run this model component
RunModel.JointTourModeChoice Boolean true True or False whether to run this model component
RunModel.IndividualNonMandatoryTourFrequency Boolean true True or False whether to run this model component
RunModel.IndividualNonMandatoryTourLocationChoice Boolean true True or False whether to run this model component
RunModel.IndividualNonMandatoryTourDepartureTimeAndDuration Boolean true True or False whether to run this model component
RunModel.IndividualNonMandatoryTourModeChoice Boolean true True or False whether to run this model component
RunModel.AtWorkSubTourFrequency Boolean true True or False whether to run this model component
RunModel.AtWorkSubTourLocationChoice Boolean true True or False whether to run this model component
RunModel.AtWorkSubTourDepartureTimeAndDuration Boolean true True or False whether to run this model component
RunModel.AtWorkSubTourModeChoice Boolean true True or False whether to run this model component
RunModel.StopFrequency Boolean true True or False whether to run this model component
RunModel.StopLocation Boolean true True or False whether to run this model component
Input Properties
PopulationSynthesizer.InputToCTRAMP.HouseholdFile String popsyn/households.csv Location of popsyn households.csv file
PopulationSynthesizer.InputToCTRAMP.PersonFile String popsyn/persons.csv Location of popsyn persons.csv file
maz.tap.tapLines String trn/tapLines.csv Location of tap lines file
maz.tap. String skims/ped_distance_maz_tap.txt Location of MAZ to TAP pedestrian distances file
maz.maz.distance.file String skims/ped_distance_maz_maz.txt Location of MAZ to MAZ pedestrian distances file
maz.maz.bike.distance.file String skims/bike_distance_maz_maz.txt Location of MAZ to MAZ bike distances file
maz.tap.trimTapSet Boolean true True or False whether to trim tap set or not
maz.tap.maxWalkTapDistInMiles Integer 1.2 Maximum walk distance allowed between any MAZ and TAP
transit.fareDiscount.file String trn/transitFareDiscounts.csv Location of transit fare discounts file
Output Properties
Results.WriteDataToFiles Boolean true Write data to files
Results.HouseholdDataFile String /ctramp_output/householdData.csv Output name of household data file
Results.PersonDataFile String /ctramp_output/personData.csv Output name of person data file
Results.IndivTourDataFile String /ctramp_output/indivTourData.csv Output name of individual tour data file
Results.JointTourDataFile String /ctramp_output/jointTourData.csv Output name of joint tour data file
Results.IndivTripDataFile String /ctramp_output/indivTripData.csv Output name of individual trip data file
Results.JointTripDataFile String /ctramp_output/jointTripData.csv Output name of joint trip data file
Results.WriteDataToDatabase Boolean false Write data to a database
Results.HouseholdTable String household_data Output name of household data file in database
Results.PersonTable String person_data Output name of person data file in database
Results.IndivTourTable String indiv_tour_data Output name of individual tour data file in database
Results.JointTourTable String joint_tour_data Output name of joint tour data file in database
Results.IndivTripTable String indiv_trip_data Output name of individual trip data file in database
Results.JointTripTable String joint_trip_data Output name of joint trip data file in database
Results.CBDFile String /ctramp_output/cbdParking.csv Output name of CBD by MGRA Vehicle Trip file
Results.PNRFile String /ctramp_output/pnrParking.csv Output name of PNR by TAP Vehicle Trip file
Results.AutoTripMatrix String /ctramp_output/auto Output name of auto trip matrix
Results.TranTripMatrix String /ctramp_output/transit Output name of transit trip matrix
Results.NMotTripMatrix String /ctramp_output/nonmotor Output name of non-motorized trip matrix
Results.OthrTripMatrix String /ctramp_output/other Output name of other modes trip matrix
Results.AutoAVTripMatrix String /ctramp_output/autoAV Output name of AV modes trip matrix
Results.MatrixType String OMX Matrix type for trip tables
Results.MAZAutoTripMatrix.IntrazonalOnly Boolean False If True, then intrazonal trips get put into one of the three County Sets based on the origin MAZ county code. If False, then both intrazonal trips and trips whose distance is less than TripMaxDistance get put into one of the CountySets based on the origin MAZ county code
Results.AutoOwnership String /ctramp_output/aoResults.csv Auto ownership output file name and location
read.pre.ao.results Boolean false Read in the old pre-auto ownership results file
read.pre.ao.filename String /ctramp_output/aoResults_pre.csv Pre auto ownership output file name and location
Results.UsualWorkAndSchoolLocationChoice String /ctramp_output/wsLocResults.csv Usual work and school location output file name and location
read.uwsl.results Boolean false Read in the old uwsl results
read.uwsl.filename String /ctramp_output/wsLocResults_1.csv Old uwsl result file name and location to read in
workSchoolSegments.definitions String /ctramp_output/workSchoolSegments.definitions Correspondence table for work location segment indices and work location segment names
Core Model UECs
acc.jppf Boolean true Accessibilities to be assigned to a JPPF node
acc.without.jppf.numThreads Integer 30 Number of threads for accessibilities without JPPF
acc.destination.sampleRate Float 0.05 Sample rate for accessibilities
acc.uec.file String %project.folder%/uec/Accessibilities.xls Accessibilities.xls location
acc.data.page Integer 0 Accessibilities data page
acc.sov.offpeak.page Integer 1 Accessibilities SOV offpeak
acc.sov.peak.page Integer 2 Accessibilities SOV peak
acc.hov.offpeak.page Integer 3 Accessibilities HOV offpeak
acc.hov.peak.page Integer 4 Accessibilities HOV peak
acc.nonmotorized.page Integer 5 Accessibilities non-motorized
acc.constants.page Integer 6 Accessibilities constants
acc.sizeTerm.page Integer 7 Accessibilities size terms
acc.schoolSizeTerm.page Integer 8 Accessibilities school size terms
acc.workerSizeTerm.page Integer 9 Accessibilities worker size terms
acc.dcUtility.uec.file String %project.folder%/CTRAMP/model/Accessibilities_DC.xls Accessibilities_DC.xls location
acc.dcUtility.data.page Integer 0 DC Accessibilities data page
acc.dcUtility.page Integer 1 DC Accessibilities utility page
acc.output.file String /ctramp_output/accessibilities.csv accessibilities.csv location
accessibility.alts.file String Acc_alts.csv Accessibilities alternatives
acc.mandatory.uec.file String %project.folder%/CTRAMP/model/MandatoryAccess.xls MandatoryAccess.xls location
acc.mandatory.data.page Integer 0 Mandatory Access data page
acc.mandatory.auto.page Integer 1 Mandatory Access auto page
acc.mandatory.autoLogsum.page Integer 2 Mandatory Access autoLogsum page
acc.mandatory.bestWalkTransit.page Integer 3 Mandatory Access best Walk Transit page
acc.mandatory.bestDriveTransit.page Integer 4 Mandatory Access best Drive Transit page
acc.mandatory.transitLogsum.page Integer 5 Mandatory Access transit logsum page
ao.uec.file String AutoOwnership.xls File name of auto ownership UEC
ao.data.page Integer 0 Auto ownership UEC data page
ao.model.page Integer 1 Auto ownership UEC utility page
tt.uec.file String TransitSubsidyAndPass.xls File name of transit subsidy UEC
tt.data.page Integer 0 Transit Subsidy UEC data page
tt.subsidyModel.page Integer 1 Transit subsidy model page
tt.passModel.page Integer 2 Transit pass model page
tt.autoGenTime.page Integer 3 Transit auto time page
tt.subsidyPercent.file String transitSubsidyDistribution.csv File name of transit subsidy distribution
tt.naics.20 String constr,util,natres
tt.naics.30 String man_bio,man_lgt,man_hvy,man_tech
tt.naics.40 String logis,ret_loc,ret_reg,transp
tt.naics.50 String info,lease,prof,fire,serv_bus
tt.naics.70 String art_rec,eat,hotel
tt.naics.80 String serv_pers
tt.naics.90 String gov
uwsl.dc.uec.file String TourDestinationChoice.xls File Name of Tour Destination Choice UEC
uwsl.dc2.uec.file String TourDestinationChoice2.xls File Name of Tour Destination Choice 2 UEC
uwsl.soa.uec.file String DestinationChoiceAlternativeSample.xls File Name of Destination Choice Alternative Sample UEC
uwsl.soa.alts.file String DestinationChoiceAlternatives.csv File name of the alternatives (MGRAs) available to the destination choice models (part of the model design; this should not be changed)
uwsl.work.soa.SampleSize Integer 30 Sample size of Work Destination Choice
uwsl.school.soa.SampleSize Integer 30 Sample size of School Destination Choice
work.soa.uec.file String TourDcSoaDistance.xls File Name of Tour Distance DC SOA UEC for Work Purpose includes TAZ Size in the expressions
work.soa.uec.data Integer 0 Work Tour Distance SOA UEC data page
work.soa.uec.model Integer 1 Work Tour Distance SOA UEC utility page
univ.soa.uec.file String TourDcSoaDistanceNoSchoolSize.xls File Name of Tour Distance DC SOA UEC for School Purpose; school purposes do not include TAZ Size in the expressions so that the utilities can be stored as exponentiated distance utility matrices for university and then multiplied by the university segment size terms
univ.soa.uec.data Integer 0 University Tour Distance SOA UEC data page
univ.soa.uec.model Integer 1 University Tour Distance SOA UEC utility page
hs.soa.uec.file String TourDcSoaDistanceNoSchoolSize.xls File Name of Tour Distance DC SOA UEC for School Purpose; school purposes do not include TAZ Size in the expressions so that the utilities can be stored as exponentiated distance utility matrices for high school and then multiplied by the high school segment size terms
hs.soa.uec.data Integer 0 High School Tour Distance SOA UEC data page
hs.soa.uec.model Integer 2 High School Tour Distance SOA UEC utility page
gs.soa.uec.file String TourDcSoaDistanceNoSchoolSize.xls File Name of Tour Distance DC SOA UEC for School Purpose; school purposes do not include TAZ Size in the expressions so that the utilities can be stored as exponentiated distance utility matrices for grade school and then multiplied by the grade school segment size terms
gs.soa.uec.data Integer 0 Grade School Tour Distance SOA UEC data page
gs.soa.uec.model Integer 3 Grade School Tour Distance SOA UEC utility page
ps.soa.uec.file String TourDcSoaDistanceNoSchoolSize.xls File Name of Tour Distance DC SOA UEC for School Purpose; school purposes do not include TAZ Size in the expressions so that the utilities can be stored as exponentiated distance utility matrices for preschool and then multiplied by the preschool segment size terms
ps.soa.uec.data Integer 0 Preschool Tour Distance SOA UEC data page
ps.soa.uec.model Integer 4 Preschool Tour Distance SOA UEC utility page
tc.choice.avgtts.file String /../input/ABMTEMP/ctramp/tc_avgtt.csv File name of average travel times for transponder ownership
tc.uec.file String TransponderOwnership.xls File name of transponder ownership UEC
tc.data.page Integer 0 Transponder ownership UEC data page
tc.model.page Integer 1 Transponder ownership UEC utility page
fp.uec.file String ParkingProvision.xls File name of parking provision UEC
fp.data.page Integer 0 Parking Provision UEC data page
fp.model.page Integer 1 Parking Provision UEC utility page
cdap.uec.file String CoordinatedDailyActivityPattern.xls File name of CDAP UEC
cdap.data.page Integer 0 CDAP UEC data page
cdap.one.person.page Integer 1 CDAP UEC utility for one person page
cdap.two.person.page Integer 2 CDAP UEC utility for 2 persons page
cdap.three.person.page Integer 3 CDAP UEC utility for 3 persons page
cdap.all.person.page Integer 4 CDAP UEC utility for All member interation page
cdap.joint.page Integer 5 CDAP UEC utility for joint tours page
imtf.uec.file String MandatoryTourFrequency.xls File name of Mandatory tour frequency UEC
imtf.data.page Integer 0 Mandatory tour frequency UEC data page
imtf.model.page Integer 1 mandatory tour frequency UEC utility page
nonSchool.soa.uec.file String TourDcSoaDistance.xls File Name of Tour Distance DC SOA UEC for Non Work/School Purposes includes TAZ Size in the expressions
escort.soa.uec.data Integer 0 Escort Tour Distance SOA UEC data page
escort.soa.uec.model Integer 2 Escort Tour Distance SOA UEC utility page
other.nonman.soa.uec.data Integer 0 Other Non-mandatory Tour Distance SOA UEC data page
other.nonman.soa.uec.model Integer 3 Other Non-mandatory Tour Distance SOA UEC utility page
atwork.soa.uec.data Integer 0 At-Work Sub-Tour Distance SOA UEC data page
atwork.soa.uec.model Integer 4 At-Work Sub-Tour Distance SOA UEC utility page
soa.taz.dist.alts.file String SoaTazDistAlternatives.csv File name of Sample of Alternatives of TAZs
nmdc.dist.alts.file String NonMandatoryTlcAlternatives.csv File name of non-mandatory tour alternatives
nmdc.soa.alts.file String DestinationChoiceAlternatives.csv File name of the alternatives (MGRAs) available to the destination choice models (part of the model design; this should not be changed)
nmdc.soa.SampleSize Integer 30 Sample size of non-mandatory Destination choice
nmdc.uec.file2 String TourDestinationChoice2.xls File Name of Tour Destination Choice 2 UEC
nmdc.uec.file String TourDestinationChoice.xls File Name of Tour Destination Choice UEC
nmdc.data.page Integer 0 Non-mandatory Tour DC UEC data page
nmdc.escort.model.page Integer 7 Escort Tour Destination Choice UEC utility page
nmdc.shop.model.page Integer 8 Shop Tour Destination Choice UEC utility page
nmdc.maint.model.page Integer 9 Maintenance Tour Destination Choice UEC utility page
nmdc.eat.model.page Integer 10 Eating Out Tour Destination Choice UEC utility page
nmdc.visit.model.page Integer 11 Visiting Tour Destination Choice UEC utility page
nmdc.discr.model.page Integer 12 Discretionary Tour Destination Choice UEC utility page
nmdc.atwork.model.page Integer 13 At-Work Sub-Tour Destination Choice UEC utility page
nmdc.soa.uec.file String DestinationChoiceAlternativeSample.xls File Name of Destination Choice Alternative Sample UEC
nmdc.soa.data.page Integer 0 Non-mandatory TOUR SOA UEC data page
nmdc.soa.escort.model.page Integer 6 Escort TOUR SOA UEC utility page
nmdc.soa.shop.model.page Integer 7 Shop TOUR SOA UEC utility page
nmdc.soa.maint.model.page Integer 7 Maintenance TOUR SOA UEC utility page
nmdc.soa.eat.model.page Integer 7 Eating Out TOUR SOA UEC utility page
nmdc.soa.visit.model.page Integer 7 Visiting TOUR SOA UEC utility page
nmdc.soa.discr.model.page Integer 7 Discretionary TOUR SOA UEC utility page
nmdc.soa.atwork.model.page Integer 8 At-Work Sub-Tour SOA UEC utility page
tourModeChoice.uec.file String TourModeChoice.xls File name of Tour Mode choice UEC
tourModeChoice.maint.model.page Integer 4 Maintenance Tour Mode Choice UEC utility page
tourModeChoice.discr.model.page Integer 5 Discretionary Tour Mode Choice UEC utility page
tourModeChoice.atwork.model.page Integer 6 At-Work Sub-Tour Mode Choice UEC utility page
departTime.uec.file String TourDepartureAndDuration.xls File name of Tour TOD Choice UEC
departTime.data.page Integer 0 Tour TOD Choice UEC data page
departTime.work.page Integer 1 Work Tour TOD Choice UEC utility page
departTime.univ.page Integer 2 University Tour TOD Choice UEC utility page
departTime.school.page Integer 3 School Tour TOD Choice UEC utility page
departTime.escort.page Integer 4 Escort Tour TOD Choice UEC utility page
departTime.shop.page Integer 5 Shop Tour TOD Choice UEC utility page
departTime.maint.page Integer 6 Maintenance Tour TOD Choice UEC utility page
departTime.eat.page Integer 7 Eating Out Tour TOD Choice UEC utility page
departTime.visit.page Integer 8 Visiting Tour TOD Choice UEC utility page
departTime.discr.page Integer 9 Discretionary Tour TOD Choice UEC utility page
departTime.atwork.page Integer 10 At-Work Sub-Tour TOD Choice UEC utility page
departTime.alts.file String DepartureTimeAndDurationAlternatives.csv File name of Departure time and duration alternatives
jtfcp.uec.file String JointTourFrequency.xls File name of Joint Tour Frequency UEC
jtfcp.alternatives.file String JointAlternatives.csv File name of joint tour alternatives by purpose and party composition combinations
jtfcp.data.page Integer 0 Joint Tour Frequency UEC data page
jtfcp.freq.comp.page Integer 1 Joint Tour Frequency UEC utility composition page
jtfcp.participate.page Integer 2 Joint Tour Frequency UEC utility participation page
inmtf.uec.file String NonMandatoryIndividualTourFrequency.xls File name of Individual non-mandatory tour frequency UEC
inmtf.FrequencyExtension.ProbabilityFile String IndividualNonMandatoryTourFrequencyExtensionProbabilities_p1.csv File name of Individual non-mandatory tour frequency extension probabilities
IndividualNonMandatoryTourFrequency.AlternativesList.InputFile String IndividualNonMandatoryTourFrequencyAlternatives.csv File name of individual non-mandatory tour frequency alternatives (combinations)
inmtf.data.page Integer 0 Individual Non-mandatory tour frequency UEC data page
inmtf.perstype1.page Integer 1 Individual Non-mandatory tour frequency UEC utility for Full time workers page
inmtf.perstype2.page Integer 2 Individual Non-mandatory tour frequency UEC utility for Part time workers page
inmtf.perstype3.page Integer 3 Individual Non-mandatory tour frequency UEC utility for University students page
inmtf.perstype4.page Integer 4 Individual Non-mandatory tour frequency UEC utility for Non-workers page
inmtf.perstype5.page Integer 5 Individual Non-mandatory tour frequency UEC utility for Retirees page
inmtf.perstype6.page Integer 6 Individual Non-mandatory tour frequency UEC utility for Driving students page
inmtf.perstype7.page Integer 7 Individual Non-mandatory tour frequency UEC utility for Pre-driving students page
inmtf.perstype8.page Integer 8 Individual Non-mandatory tour frequency UEC utility for Preschool students page
awtf.uec.file AtWorkSubtourFrequency.xls File name of at-work sub-tour frequency UEC
awtf.data.page Integer 0 At-Work Sub-Tour Frequency UEC Data page
awtf.model.page Integer 1 At-Work Sub-Tour Frequency UEC Utility page
stf.uec.file String StopFrequency.xls File name of Stop Frequency UEC
stf.purposeLookup.proportions String StopPurposeLookupProportions.csv File name of Stop Purpose Lookup proportions
stf.data.page Integer 0 Stop Frequency UEC data page
stf.work.page Integer 1 Stop Frequency for Work Tour UEC utility page
stf.univ.page Integer 2 Stop Frequency for University Tour UEC utility page
stf.school.page Integer 3 Stop Frequency for School Tour UEC utility page
stf.escort.page Integer 4 Stop Frequency for Escort Tour UEC utility page
stf.shop.page Integer 5 Stop Frequency for Shop Tour UEC utility page
stf.maint.page Integer 6 Stop Frequency for Maintenance Tour UEC utility page
stf.eat.page Integer 7 Stop Frequency for Eating Out Tour UEC utility page
stf.visit.page Integer 8 Stop Frequency for Visiting Tour UEC utility page
stf.discr.page Integer 9 Stop Frequency for Discretionary Tour UEC utility page
stf.subtour.page Integer 10 Stop Frequency for At-Work Sub-Tour UEC utility page
slc.uec.file String StopLocationChoice.xls File Name of Stop Location Choice UEC
slc.uec.data.page Integer 0 Stop Location Choice UEC data page
slc.mandatory.uec.model.page Integer 1 Stop Location Choice for Mandatory Tours UEC utility page
slc.maintenance.uec.model.page Integer 2 Stop Location Choice for Maintenance Tours UEC utility page
slc.discretionary.uec.model.page Integer 3 Stop Location Choice for Discretionary Tours UEC utility page
slc.alts.file String SlcAlternatives.csv File name of stop location choice alternatives
slc.soa.uec.file String SlcSoaSize.xls File name of SOA UEC to the stop location choice
slc.soa.alts.file String DestinationChoiceAlternatives.csv File name of the alternatives (MGRAs) available to the destination choice models (part of the model design; this should not be changed)
auto.slc.soa.distance.uec.file String SlcSoaDistanceUtility.xls File name of Stop Location Sample of Alternatives Choice UEC for tour modes other than walk or bike - for transit, availability of stop for transit is set in java code
auto.slc.soa.distance.data.page Integer 0 Stop Location SOA Choice UEC data page
auto.slc.soa.distance.model.page Integer 1 Stop Location SOA Choice UEC utility page
slc.soa.size.uec.file String SlcSoaSize.xls File Name of Stop Location Choice Size Terms UEC
slc.soa.size.uec.data.page Integer 0 Stop Location Choice Size terms UEC data page
slc.soa.size.uec.model.page Integer 1 Stop Location Choice Size terms UEC utility page
stop.depart.arrive.proportions String StopDepartArriveProportions.csv File name of Stop Location Time of Day proportions
tripModeChoice.uec.file String TripModeChoice.xls File name of Trip mode choice UEC
plc.uec.file String ParkLocationChoice.xls File name of Parking Location Choice UEC
plc.uec.data.page Integer 0 Parking Location Choice UEC data page
plc.uec.model.page Integer 1 Parking Location Choice UEC utility page
plc.alts.corresp.file String ParkLocationAlts.csv File name of parking location alternatives (MGRAs)
plc.alts.file String ParkLocationSampleAlts.csv File name of parking location sample of alternatives
mgra.avg.cost.output.file String /ctramp_output/mgraParkingCost.csv File name of average parking costs by MGRA
mgra.avg.cost.trace.zone Integer 2141 Zone ID where parking cost to be traced
mgra.max.parking.distance Float 0.75 Maximum parking distance
mgra.avg.cost.dist.coeff.work Float -8.6 Parking location model coefficient for walking distance to destination for Work purpose
mgra.avg.cost.dist.coeff.other Float -4.9 Parking location model coefficient for walking distance to destination for other purposes
park.cost.reimb.mean Float -0.05 Parking location model mean parking cost reimbursement
park.cost.reimb.std.dev Float 0.54 Parking location model standard deviation for parking cost reimbursement
utility.bestTransitPath.uec.file String BestTransitPathUtility.xls File name of best transit path UEC
utility.bestTransitPath.data.page Integer 0 Best Transit Path UEC data page
utility.bestTransitPath.tapToTap.page Integer 1 Best Transit Path UEC for TAP to TAP utility page
utility.bestTransitPath.walkAccess.page Integer 2 Best Transit Path UEC for walk access utility page
utility.bestTransitPath.driveAccess.page Integer 3 Best Transit Path UEC for drive access utility page
utility.bestTransitPath.walkEgress.page Integer 4 Best Transit Path UEC for walk egress utility page
utility.bestTransitPath.driveEgress.page Integer 5 Best Transit Path UEC for drive egress utility page
utility.bestTransitPath.driveAccDisutility.page Integer 6 Best Transit Path UEC for drive access disutility page
utility.bestTransitPath.driveEgrDisutility.page Integer 7 Best Transit Path UEC for drive egress disutility page
utility.bestTransitPath.skim.sets Integer 3 Number of skim sets in best transit path
utility.bestTransitPath.alts Integer 4 Number of alternatives in best transit path
utility.bestTransitPath.maxPathsPerSkimSetForLogsum String 1, 1, 1 Maximum number of paths per skims set to use for logsum (by iteration?)
utility.bestTransitPath.nesting.coeff Float 0.24 Nesting coefficient
ResimulateTransitPath.uec.file String BestTransitPathUtility.xls File name of transit capacity restraint resimulation
ResimulateTransitPath.data.page Integer 0 Transit capacity restraint data page
ResimulateTransitPath.identifyTripToResimulate.page Integer 8 Transit capacity restraint utility page
ResimulateTransitPath.results.IndivTripDataFile String /ctramp_output/indivTripDataResim.csv File name of resimulated individual trips data
ResimulateTransitPath.results.JointTripDataFile String /ctramp_output/jointTripDataResim.csv File name of resimulated joint trips data
skims.auto.uec.file String AutoSkims.xls File name of Auto Skims UEC
skims.auto.data.page Integer 0 Auto Skims data page
skims.auto.ea.page Integer 1 Auto skims Early AM utility page
skims.auto.am.page Integer 2 Auto skims AM utility page
skims.auto.md.page Integer 3 Auto skims MD utility page
skims.auto.pm.page Integer 4 Auto skims PM utility page
skims.auto.ev.page Integer 5 Auto skims Evening utility page
taz.distance.uec.file String tazDistance.xls File name of TAZ Distance UEC
taz.distance.data.page Integer 0 TAZ Distance UEC data page
taz.od.distance.ea.page Integer 1 TAZ Distance UEC Early AM utility page
taz.od.distance.am.page Integer 2 TAZ Distance UEC AM utility page
taz.od.distance.md.page Integer 3 TAZ Distance UEC MD utility page
taz.od.distance.pm.page Integer 4 TAZ Distance UEC PM utility page
taz.od.distance.ev.page Integer 5 TAZ Distance UEC Evening utility page
skim.walk.transit.walk.uec.file String WalkTransitWalkSkims.xls File name of Walk Transit Walk Skims UEC
skim.walk.transit.walk.data.page Integer 0 Walk Transit Walk Skims UEC data page
skim.walk.transit.walk.skim.page Integer 1 Walk Transit Walk Skims UEC skim page
skim.walk.transit.walk.sets Integer 3
skim.walk.transit.walk.skims Integer 12
skim.walk.transit.drive.uec.file String WalkTransitDriveSkims.xls File name of Walk Transit Drive Skims UEC
skim.walk.transit.drive.data.page Integer 0 Walk Transit Drive Skims UEC data page
skim.walk.transit.drive.skim.page Integer 1 Walk Transit Drive Skims UEC skim page
skim.walk.transit.drive.sets Integer 3
skim.walk.transit.drive.skims Integer 12
skim.drive.transit.walk.uec.file String DriveTransitWalkSkims.xls File name of Drive Transit Walk Skims UEC
skim.drive.transit.walk.data.page Integer 0 Drive Transit Walk Skims UEC data page
skim.drive.transit.walk.skim.page Integer 1 Drive Transit Walk Skims UEC skim page
skim.drive.transit.walk.sets Integer 3
skim.drive.transit.walk.skims Integer 12
Best Transit Path Data Files
tap.data.file String hwy/tap_data.csv Location of the file having information about parking lot capacity for TAPS
tap.data.tap.column String tap Column name for TAP IDs
tap.data.taz.column String taz Column name TAZ IDs
tap.data.lotid.column String lotid Column name for parking lot IDs
tap.data.capacity.column String capacity Column name for parking lot capacity
tap.station.attribute.file String trn/emme_network_transaction_files_AM/station_attributes/station_tap_attributes.csv Location of station attribute data
tap.pnr.default.share Integer 0.5 PNR share value
taz.tap.access.file String /skims/drive_maz_taz_tap.csv Location of file having cost information related drive access between TAZ-TAP pairs
taz.tap.access.ftaz.column String FTAZ Column containing start TAZ
taz.tap.access.mode.column String MODE Column containing mode
taz.tap.access.period.column String PERIOD Column containing time periods
taz.tap.access.ttap.column String TTAP Column containing transit TAPs
taz.tap.access.tmaz.column String TMAZ Column containing transit MAZs
taz.tap.access.ttaz.column String TTAZ Column containing transit TAZs
taz.tap.access.dtime.column String DTIME Column containing drive times
taz.tap.access.ddist.column String DDIST Column containing drive distances
taz.tap.access.dtoll.column String DTOLL Column containing drive tolls
taz.tap.access.wdist.column String WDIST Column containing walk distances
Miscellaneous: Place Holders for Future Enhancements
taz.data.file String /landuse/taz_data.csv location of TAZ landuse file
taz.data.taz.column String TAZ Column containing TAZ IDs
taz.data.avgttd.column String AVGTTS Column containing
taz.data.dist.column String DIST Column containing distances
taz.data.pctdetour.column String PCTDETOUR Column containing
taz.data.terminal.column String TERMINALTIME Column containing terminal times