-
Notifications
You must be signed in to change notification settings - Fork 9
Description
This issue explains: What is included in the EMME transit network; How transit access connectors are created; How the transit access information is passed into mode choice, and How transit access information is formed in transit assignment and skimming.
EMME transit network and transit connectors
The step that creates the TAZ-level EMME transit network from the standard network is in Lasso emme.py, it calls prepare_table_for_taz_transit_network() that does the following things:
- Create transit walk, drive, and transfer connectors
- Create PNR nodes, links, and dummy buses for capacity constraints
- Create EMME-format transit line record from standard transit
- Assembles the universe of links, nodes, and transit lines required to export the EMME transit network
TAZ transit walk connectors
Connect TAZ nodes to all transit stops within a user defined walk buffer distance (currently set to 0.75 miles).
TAZ transit drive connectors
Use the same TAZ drive centroid connectors from the highway network. Connect TAZ to the drive network.
PNR nodes and connectors
- PNR station nodes are created using an external PNR station input csv. PNR nodes are create as
drive_access = 2. Note:drive_accesswas originally a binary with 0 - no, 1- yes, Yue added2, 3when she coded PNR and KNR. - Create PNR dummy bus links (
drive_access = 2) between the PNR node and the nearest light rail, heavy rail, commuter rail, and ferry stop nodes, within a user defined walk buffer (currently set to 0.75 miles). This is the underlying link of the PNR dummy buses. - Create PNR access links between the PNR node and the nearest drive node.
KNR nodes and connectors
- KNR connections are created for express bus stations outside of downtown SF, and for all the light rail, heavy rail, commuter rail, and ferry stops.
- Offset those stop nodes to create the KNR nodes. KNR nodes are created as
drive_access = 3 - Create KNR dummy links (
drive_access = 3) between the KNR node and the corresponding stop nodes. - Create KNR access links between the KNR node and the nearest drive node.
Transfer connectors
- Rail (lr/hr/cr/fr) transfers: Lasso pulls in the background complete network of walk and bike facilities within the user defined transfer buffer distance (currently set to 1 mile). Walk along the network to transfer.
- Bus transfers: walk along the network.
MAZ transit access for mode choice
Mode choices needs transit access information from origin MAZ to transit, and from transit to destination MAZ. For example, in CT-RAMP's BestTransitPathUtility.xls
There are two options to estimate MAZ transit access time:
- Option 1. Use TAZ transit skims. We can replace
@mgraStopsWalkTimewith TAZ transit skims, we do currently haveWACCandWEGRin the transit skims.
- Option 2. Calculate MAZ transit walk time using explicit MAZ geographies and TAZ scale transit boardings. See details below. This is currently used by CT-RAMP.
A new algorithm was developed during the TAP removal task to calculate MAZ transit walk time using explicit MAZ geographies and TAZ scale transit boardings. The algorithm is coded in lasso, tap_analysis branch: mtc.estimate_maz_walk_time()
- For each MAZ, find transit stops within 0.5 miles
- For each of those transit stop, calculate the walk time along the pedestrian network from MAZ to each transit stop, assume a walk speed of 3 miles/hr.
- Translate the walk time into a walk impedance using a linear spline function
- Obtain the share of demand allocated to each transit stop from each origin TAZ from the TAZ-scale assignment (i.e., the volume on each walk access connector) in the previous iteration of the model.
- Use the product of (i) the TAZ-scale assignment boarding share and (ii) the ratio of the walk time and walk impedance, as weights in a weighted average of walk time to compute the MAZ-specific walk access time.
- Repeat steps 4 and 5 in the egress direction. The resulting walk access and egress times, by time of day and transit path, are the walk times that will be shown to the mode choice models.
A stable set of MAZ walk access and egress files can be found on Box. They have not been updated since their creation. Ideally they should be updated within model run global iterations, but that hasn't been implemented.
TAZ transit access for path building and assignment
There are two options for estimating TAZ transit access time:
- Option 1. Use the direct walk time on each TAZ walk connector generated in
lasso, as explained above. - Option 2. For each TAZ, use the weighted average walk access time between MAZs and each transit stop (i.e., the outcome from the MAZ-scale algorithm) as the walk access time between the TAZ and each transit stop. The weight in this calculation is the MAZ-scale transit demand (for the origin end of trips) from the previous model iteration. The algorithm for this calculation is coded in
lasso, tap_analysis branch,mtc.estimate_transit_taz_connectors()
Currently Option 1 is used. For Option 2, a set of stable TAZ estimated access time exists. The infrastructure to implement Option 2 was tested in the beginning of tm2py development, but it hasn't been used since then.
Progress:
- Sufficiently defined
- Approach decided
- Implemented

