Repository navigation
Auxiliary Models
The information below is valid for model commit #693038bf58447a6ff268b432b90b1afc4958a9b1 or earlier. For latest supplemental model documentation, please click this link.
Auxiliary models includes the following sections:
* Supplemental
* Trucks
* Update to Future Year
Supplemental models include external trips, group quarters and special generators. These trips are modeled in traditional 4-step trip model. External trips include internal-external, external-internal, and external-external trips. The first two types of external trip ends are estimated by trip generation model generation.py. The trip ends of externals-externals, internal-external, external-internal, group quarters and special generators are then balanced by generation.py, and distributed by distribution.py. OD matrices for supplemental passenger trips are then created.
More details can be found from PSRC 4K model documentation.
Below is a list of files residing in inputs\supplemental folder.
| Name | Type | Description |
|---|---|---|
| generation | Directory | Inputs for supplemental trip generation |
| trips | Directory | Seed supplemental trips. These h5 files are copied to outputs/supplemental folder but then all files under this folder are deleted right before supplemental trip generation starts. The supplemental trip tables are actually generated from scratch. So these h5 files are not in use by BKRCast. |
| gravity_model.json | File | Gravity model coefficients by purpose, used in calculations of friction factors |
| inc_college_dict.json | File | |
| inc_k12_dict.json | File | |
| inc_size_workers_dict.json | File | |
| inc_veh_dict.json | File | |
| matrix_balancing_spec.json | File | |
| mode_dict.json | File | |
| purp_tod_dict.json | File | |
| time_dict.json | File |
Below is a list of files residing in inputs\supplemental\generation folder.
| Name | Type | Description |
|---|---|---|
| external.csv | File | Productions and attractions for externals, being used in supplemental module (in new base year) |
| externals-2014.csv | File | backup of externals.csv used in 2014 base year model |
| pumshhxc_income-collegestudents.xlsx | File | PUMS household crossclassification data for college students |
| ensembles | Directory | |
| landuse | Directory | land use for trip model (for EI/IE/EE) |
| pums | Directory | PUMS household cross classification |
| rates | Directory | trips rates for EI/IE/EE |
| specialgenerators | Directory | Not used |
Below is a list of files residing in inputs\supplemental\generation\ensembles folder.
| Name | Type | Description |
|---|---|---|
| puma00.ens |
Below is a list of files residing in inputs\supplemental\generation\landuse folder.
| Name | Type | Description |
|---|---|---|
| tazdata.in | File | PSRC 4K model land use, being used in supplemental module. |
| tazdata_2014.in | File | 2014 PSRC 4K model land use, backup only |
| tazdata_2014.csv | File | 2014 4K model land use in csv in spreadsheet format |
Below is a list of files residing in inputs\supplemental\generation\pums folder.
| Name | Type | Description |
|---|---|---|
| pumshhxc_income-collegestudents.in | File | |
| pumshhxc_income-k12students.in | File | |
| pumshhxc_income-size-workers.in | File | |
| pumshhxc_income-size-workers-vehicles.in | File |
Below is a list of files residing in inputs\supplemental\generation\rates folder.
| Name | Type | Description |
|---|---|---|
| hh_triprates.in | File | |
| nonhh_triprates.in | File |
The seed supplemental trips are used when run_skims_and_paths_seed_trips is set to True in input_configuration.py. In that case, BKRCast used DaySim seed trips and seed supplemental trips to assign an initial demand on the network and create an initial set of skims. The seed supplemental trips can be updated from a previous model run outputs.
While transferring PSRC's SoundCast model to BKRCast, the seed supplemental trips were converted from PSRC's 4k zone system to BKR's zone system using psrc2bkr_trips.py under psrc_to_bkrcast_scripts. The conversion is no longer required as the supplemental trips from a previous BKRCast run (outputs/supplemental/[tod].h5) can be used as seed supplemental trips for any new BKRCast run.
Supplemental trips are generated only once and it does not change through feedback loop.
Generation (generation.py)
Trip generation model only estimate internal-external and external-internal trips. Production and attraction trip ends by purpose (all region) are calculated by multiplying the cross-classification table (tazdata.in) and trip rate tables (hh_triprates.in and nonhh_triprates.in). The following purposes are modeled:
- Home-based work (hbw)
- Home-based college (col)
- Home-based school (sch)
- Home-based shop (hsp)
- Home-based other (hbo)
- Non-home-based work (wko)
- Non-home-based other (oto)
| Column | Name | Description |
|---|---|---|
| 101 | PCTMF | Pct MF - Not used |
| 102 | HH1 | HH - income1 |
| 103 | HH2 | HH - income2 |
| 104 | HH3 | HH - income3 |
| 105 | HH4 | HH - income4 |
| 106 | GQI | Not used |
| 107 | GQN | Not used |
| 108 | POP | Population - Not used |
| 109 | RET1 | Retail Employment |
| 110 | RET2 | Not used |
| 111 | RET3 | Not used |
| 112 | FIRES1 | FIRES Employment |
| 113 | FIRES2 | Not used |
| 114 | FIRES3 | Not used |
| 115 | GOV1 | Government Employment |
| 116 | GOV2 | Not used |
| 117 | GOV3 | Not used |
| 118 | EDU | Education Employment |
| 119 | WTCU | Not used |
| 120 | MANU | Manufacturing + WTCU Employment |
| 121 | FTEUNIV | College FTE |
| 122 | GQDORM | Group Quarters - College Dorms |
| 123 | GQMILH | Group Quarters - Military Housing |
| 124 | GQOTH | Group Quarters - Other |
There are 18 external stations are defined in BKRCast, same as in Soundcast. Below is the external locations. The handwritten numbers are BKR TAZ numbers used for external stations. The same table can be found in page 35 of PSRC 4K model documentation.
| Column | Description | Values |
|---|---|---|
| taz | BKRCast TAZ where external stations are located | |
| hbwpro | HBW production | |
| colpro | Home based collection production | |
| hsppro | Home based shopping production | |
| hbopro | Home based others production | |
| schopro | Home based school production | |
| wkopro | Work based others production | |
| otopro | Other based others production | |
| empty1 | ||
| hbwatt | Home based work attraction | |
| colatt | Home based college attraction | |
| hspatt | Home based shopping attraction | |
| hboatt | Home based others attraction | |
| schatt | Home based school attraction | |
| wkoatt | Work based others attraction | |
| otoatt | Other based others attraction | |
| empty2 | ||
| hw1pro | ||
| hw2pro | ||
| hw3pro | ||
| hw4pro | ||
| hw1att | ||
| hw2att | ||
| hw3att | ||
| hw4att |
No special generators are defined inside BKR area. Three HBO special generators and one airport special generator are defined in externals. The same table can be found in page 34 of PSRC 4K model documentation.
The special generators are hard coded in emme_configuration.py.
Airport special generator annual growth rate is from the Port of Seattle. HBO special generators (Seattle Center, Exhibition Center, and Tacoma Dome) assume the same growth rate as auto externals. Truck special generators assume the same growth rate as employment growth which is the same as truck externals.
Airport special generator annual growth rate:
2014 - 2020: 3.65%
2020 - 2030: 2.69%
2030 - 2040: 2.18%
Airport trips are assumed 75% home based and 25% work based.
Group quarters include college dormitories, military, and others(retired homes).
The outcome from the cross classification model is a production/attraction (PA) table, with 24 columns representing productions and attractions, and 1359 rows representing each individual TAZ. Special generators are then added to this PA table. The table is balanced to production (except col which is balanced to attraction). Some placeholders, like park_and_ride and dummy zones, are then added to make it complete TAZ system. The final products from generation.py are exported to prod_att.csv and gp_prod_att.csv in outputs folder.
Distribution (distribution.py)
Cost and distance between an OD pair are calculated by averaging AM and PM skims. Friction factors are then calculated based on the skims, friction coefficients, auto operating cost and value of time.
| Name | Description |
|---|---|
| Fiction coefficients | gravity_model.json |
| autoop (auto operating cost) | 16.75 |
| avotda (VOT) | 0.0303 |
After distribution, only external and special generator trips (daily trips) are retained and further split by mode and time of day. The final trip tables are exported to h5 files in outputs\supplemental folder.
Truck model is also implemented in traditional four step model format. This inputs\trucks folder contains input data and settings for the truck model. It is borrowed from PSRC's 4K model and modified to fit BKRCast condition. For details about this truck model, read PSRC 4K model documentation.
AM auto network is also used as truck model network. truck_model.py is called to generate truck trips, distribute trips to appropriate TAZs, and create OD matrices in four time periods. Three truck classes are modeled: light truck, medium truck and heavy truck.
The socioeconomic data (tazdata.in, cross classification table) in the truck model is consistent with the auto model, except that the employment data are further split into more categories by multiplying MANU or WTCU jobs by factors. The employment categories used in the truck model are as follows.
| Employment Category | Matrix | Split Factor | Factor Matrix | Notes |
|---|---|---|---|---|
| Agriculture/Forestry/Fishing | mo21(agffsh) | agshar.in |
mo1 (agshar) | mo'manu' * mo'agshar' |
| Mining | mo22(mining) | minshar.in |
mo2 (minshr) | mo'manu' * mo'minshr' |
| Construction | mo7(const) | stored inconst.in
|
||
| Manufacturing (products) | mo23(manup) | prodshar.in |
mo3 (prodsh) | mo'manu' * mo'prodshar' |
| Manufacturing (equipment) | mo24(manue) | equipshar.in |
mo4 (eqshar) | mo'manu' * mo'eqshar' |
| Transportation/Communication/utilities | mo25(tcu) | tchshar.in |
mo5 (tchshr) | mo'wtcu' * mo'tcushr' |
| Wholesale | mo25(whls) | whlsshar.in |
mo6 (whlssh) | mo'wtcu' * mo'whlssh' |
| Retail | mo9(ret1) | |||
| FIRES | mo12(fires) | |||
| Education and government | mo29(govedu) |
Truck productions are then calculated by
- Light:
moltpro = 0.4102 * (moagffsh + momining + moconst) + 0.3466 * (momanup + momanue + motcu + mowhls) + 0.3281 * moretail + 0.1615 * (mofires + mogovedu) + 0.0928 * mohhlds - Medium:
momtpro = 0.0889 * (moagffsh + momining) + 0.0998 * moconst + 0.0858 * (momanup + momanue) + 0.2079 * motcu + 0.2552 * mowhls + 0.1637 * moretail + 0.0434 * mofires + 0.0297 * mogovedu + 0.0358 * mohhlds - Heavy:
mohtpro = 0.2366 * moagffsh + 0.3405 * momining + 0.0856 * moconst + 0.2661 * momanup + 0.0953 * momanue + 0.1075 * motcu + 0.1337 * mowhls + 0.0463 * moretail + 0.0000 * mofires + 0.0000 * mogovedu + 0.0000 * mohhlds
Truck attractions:
- Light:
moltatt = 1.3161 * moagffsh + 47.9052 * momining + 0.2585 * moconst + 0.2581 * (momanup + momanue) + 0.5082 * motcu + 0.1464 * mowhls + 0.0501 * moretail + 0.1591 * mofires + 0.0966 * mogovedu + 0.1732 * mohhlds - Medium:
momtatt = 0.2831 * moagffsh + 14.8073 * momining + 0.0876 * moconst + 0.0538 * (momanup + momanue) + 0.0998 * motcu + 0.0352 * mowhls + 0.0123 * moretail + 0.0375 * mofires + 0.0160 * mogovedu + 0.0385 * mohhlds - Heavy:
mohtatt = motruck * 0.0988 * moagffsh + 5.0897 * momining + 0.0290 * moconst + 0.0208 * (momanup + momanue) + 0.0378 * motcu + 0.0087 * mowhls + 0.0032 * moretail + 0.000 * mofires + 0.000 * mogovedu + 0.000 * mohhlds
Land use restrictions for heavy trucks are applied to zones without allowable industrial parcels in both production and attraction. Truck special generators are then added to attraction. Both production and attraction are then further adjusted by a set of factors, which is defined in input_configuration.py.
| Truck Type | Adjustment Factor |
|---|---|
ltpro |
0.544 |
mtpro |
0.545 |
htpro |
0.530 |
ltatt |
0.749 |
mtatt |
0.75 |
htatt |
1.0 |
Attractions are balanced to productions. Impedance for three classes are calculated based on matrices from inputs/4k. Trip tables are balanced and converted to OD format.
Annual external medium and heavy truck trips are converted to daily and then added to medium and heavy truck trip tables respectively. Medium and heavy trucks are converted to passenger vehicles by:
- 1 medium = 1.5 passenger cars
- 1 heavy = 2 passenger cars
Time of day are applied to daily truck trip table.
| Class | AM | MD | PM | NI |
|---|---|---|---|---|
| Light | 0.194 | 0.346 | 0.240 | 0.220 |
| Medium | 0.208 | 0.417 | 0.204 | 0.171 |
| Heavy | 0.209 | 0.468 | 0.189 | 0.134 |
Final truck matrices are exported to auto.h5 in inputs/4k folder.
When creating a future year model, we should also update supplemental trips. Follow the following steps.
- Update
tazdata.infile andexternals.csvfile. Use the utility toolupdate_externals.py.
Use the following annual growth rate for external stations (external.csv).
2014 - 2025: 1.14%
2025 - 2040: 0.77%
The aggregation from parcel file to 4K land use format (tazdata.in) is as follows.
Retail = EMPFOO_P + EMPRET_PFIRES = EMPMED_P + EMPOFC_P + EMPSVC_PGOV = EMPGOV_PEDU = EMPEDU_PIND = EMPIND_P + EMPOTH_P
-
Change
HORIZON_YEARvariable to appropriate year.
All special generators in auto model will be automatically updated based on the following growth rates.
Airport special generator annual growth rate:
2014 - 2020: 3.65%
2020 - 2030: 2.69%
2030 - 2040: 2.18% -
Group quarters are not updated at this time. We will update it when data becomes available.
Future projection can be reached by using these annual growth factors.
Follow the following steps to update the truck model.
- Overwrite
tazdata.inin truck folder with updated one from supplemental trip module. - Update truck externals with the following annual growth rates.
Truck annual growth rate:
2014 - 2025: 1.37%
2025 - 2040: 1.48%
These are external files:
| File |
|---|
| medium_truck_ei.in |
| medium_truck_ie.in |
| medium_truck_ee.in |
| heavy_truck_ei.in |
| heavy_truck_ie.in |
| heavy_truck_ee.in |
- Update truck special generators using the following annual growth rates. These rates are the same as truck externals.
Truck annual growth rate:
2014 - 2025: 1.37%
2025 - 2040: 1.48%
These are truck special generators:
| File |
|---|
| special_gen_light_trucks.in |
| special_gen_medium_trucks.in |
| special_gen_heavy_trucks.in |
- Other input files may need update as well, subject to data availability.
These files are employment split factor files, truck time of day factors, gravity model coefficients, and truck operating cost.
-
Model System
-
Model Setup
-
Model Network
-
Land Use
-
Model Components
-
Model Directory
-
Calibration