-
Notifications
You must be signed in to change notification settings - Fork 2
Model Inputs
Level-of-service matrices for auto and transit are created for each of five time periods between TAZs. Non-motorized skims are created from the all-streets network between MAZs and are not differentiated by time of day. Skim matrix files must be in OMX or CSV format for ActivitySim. We recommend packing the auto and transit skims into separate OMX files (auto_skims.omx and transit_skims.omx) and using CSV format for the MAZ skims.
Each auto skim table in the auto_skims.omx file is stratified by occupancy, value-of-time bin, and period. The naming convention is OCC_VOT_TABLE__PER where OCC is one of {DA,S2,S3}, VOT is one of {LOW, MED, HIGH}, TABLE is one of the auto skim tables shown below, and PERIOD is one of {EA, AM, MD, PM, EV}. Note that there are two underscores (“__”) before PERIOD; this is an ActivitySim requirement used to correctly index into skims in preprocessor and utility expressions.
| Table Name | Description |
|---|---|
| TIME | Time (minutes) on congested path |
| DIST | Distance (miles) on congested path |
| TOLL | Toll cost ($2023 cents) on congested path |
| REL | (Optional) Reliability on congested path |
To fully support truck submodels such as the agent-based version in use by Portland Metro, a truck_skims.omx file should contain distance, travel time, and tolls skims for each of the assigned truck classes. The typical truck submodel classes are LT—light trucks also known as light commercial vehicles; MD—medium trucks defined to be single-unit goods-bearing trucks; and HV—heavy trucks defined as multi-unit goods-bearing trucks. The LT or LCV category contains service vehicles, e.g. plumbers and gardeners, plus deliveries made by passenger cars or other light-duty vehicles, e.g. meal delivery firms. However, the LT class generally uses the passenger auto skims since such vehicles are not differentially affected by restrictions or toll policies. Skimming for the MD and HV separately is advantageous for truck submodels that can make use of the difference, e.g. by supporting scenario analysis with input network differences for those classes in route restrictions, weight limits, and tolls. However, many truck submodels only have one skim for MD and HV trucks combined. While not all truck submodels treat all individual model time periods (Portland Metro’s approach is to have a peak skim and an off-peak skim), to support those that do, another dimension of the truck skim OMX file could include breaking out the skims by time of day as in Passenger Auto skimming. A useful table naming convention would be CLASS_TABLE_PER where CLASS is one of {MD, HV}, TABLE is one of the skim types in the table below, and PER has the same options as in the Passenger skims or a reduced version of PK for peak and OP for off-peak. A reliability (REL) data element could be added to this structure if needed (or contemplated) by any of the Oregon MPO truck submodels.
| Table Name | Description |
|---|---|
| TIME | Time (minutes) on congested path |
| DIST | Distance (miles) on congested path |
| TOLL | Toll cost ($2023 cents) on congested path |
Each transit skim table in the transit_skims.omx file is stratified by access mode, egress mode, and period. The naming convention is ACC_TABLE_EGR__PER where ACC and EGR is one of {WLK, PNR, KNR, BIKE}, TABLE is one of the transit skim tables shown below, and PERIOD is one of {EA, AM, MD, PM, EV}. Note that there are two underscores (“__”) before PERIOD; this is an ActivitySim requirement used to correctly index into skims in preprocessor and utility expressions.
| Table Name | Description |
|---|---|
| IVT | In-vehicle time (minutes) |
| BUSIVT | In-vehicle time on bus (minutes) |
| BRTIVT | In-vehicle time on bus-rapid transit (minutes) |
| LRTIVT | In-vehicle time on light rail (minutes) |
| COMIVT | In-vehicle time on commuter rail (minutes) |
| FWAIT | First wait time (minutes) |
| XWAIT | Transfer wait time (minutes) |
| XFERS | Transfers |
| ACC | Walk or drive access time (minutes) |
| EGR | Walk or drive egress time (minutes) |
| AUX | Auxiliary walk time (minutes) |
| FAR | Fare ($2023 cents) |
There are two non-motorized skim files, one for walk mode (maz_maz_walk.csv) and one for bike mode (maz_maz_bike.csv). Because these files contain non-motorized level of service, only MAZ-pairs within the maximum walk and bike distance are listed in the file. The maximum distances should be gleaned from survey data; typical maximum walk distance is 3-4 miles and maximum bike distance is 10-12 miles. Fields for each file are shown in the tables below.
| Field Name | Description |
|---|---|
| OMAZ | Origin MAZ |
| DMAZ | Destination MAZ |
| TIME | Time |
| DISTANCE | Distance |
| Field Name | Description |
|---|---|
| OMAZ | Origin MAZ |
| DMAZ | Destination MAZ |
| TIME*_BCL* | Time by bicycle comfort level (BCL) |
| DISTANCE*_BCL* | Distance by bicycle comfort level |
| LOGSUM*_BCL* | Route choice logsum or utility on least-cost path by bicycle comfort level |
Land-use data is specified in an MAZ data file, with one record per MAZ. Fields are shown below. The fields which can be calculated based on maintained MAZ or other data such as network information are identified as “(Calculated)”. Procedures to calculate these fields are described below.
Note that external MAZs should be created for external stations. Any facility crossing the area boundary (including freeways coded as two one way links) should be connected to one external TAZ and one external MAZ to represent all traffic into and out of the region at that crossing point. These MAZs are coded as EXTERNAL=1.
| Field Name | Description |
|---|---|
| MAZ | Micro-analysis zone number |
| TAZ | Transportation analysis zone number |
| BLKGRP | Census block group number |
| TRACT | Census tract number |
| PUMA | Census Public Use Microdata Number |
| COUNTY | Census county number |
| DISTRICTXX | (Optional) District field where xx is the number of districts. Used for application of district-level constants if necessary and/or for summaries of model results. |
| TOTNGQHHS | Total non-group quarters households |
| TOTGQHHS | Total group quarters households/population |
| TOTHHS | Total households |
| TOTPOP | Total population |
| EMP_NRM | Natural resources and mining employment (NAICS 21) |
| EMP_CON | Construction employment (NAICS 23) |
| EMP_NHTMFG | Non-high tech manufacturing employment (NAICS 31-33 except NAICS 334) |
| EMP_HTMFG | High tech manufacturing employment (NAICS 334) |
| EMP_WT | Wholesale trade employment (NAICS 42) |
| EMP_TWU | Transportation, warehousing, and utilities employment (NAICS 22, 48, 49) |
| EMP_RCS | Retail Trade employment (NAICS 44-45,) |
| EMP_ IFRPBS | Information, finance, real estate, professional, and business service employment (NAICS 51-56) |
| EMP_HCS | Health care and social assistance employment (NAICS 62) |
| EMP_OSV | Other service employment (NAICS 81) |
| EMP_GOV | Government employment (no education, NAICS 92) |
| EMP_EDU | Education employment (NAICS 61) |
| EMP_AER | Arts, entertainment, and recreation employment (NAICS 71) |
| EMP_ACC | Accommodations employment (721) |
| EMP_FSD | Food services and drinking places employment (NAICS 722) |
| EMP_TOT | Total employment (Can be calculated from above fields) |
| ENROLL_K8 | Grades K-8 enrollment (public and private) |
| ENROLL_912 | Grades 9-12 enrollment (public and private) |
| ENROLL_COLL | College enrollment (Can add fields to denote classroom space, university parking supply, and major university indicator if implementing the university travel model) |
| TERMTIME | Terminal time (average minutes to walk to/from parked car) |
| PRKCST_HR | Hourly parking cost ($2023 cents) |
| PRKCST_DAY | Daily parking cost ($2023 cents) |
| PRKCST_MNTH | Monthly parking cost ($2023 cents) |
| PRKSPACES | Total parking spaces |
| ACRES | Size of MAZ in acres (Can be calculated from MAZ shapefile) |
| ACTIVE_ACRES | Active park acres (include urban parks, golf courses, basketball/tennis/pickleball courts) |
| OSPC_ACRES | Open space acres (include areas of open space with trail systems) |
| ESCOOACCTIME | E-scooter access time (average number of minutes to walk to a shared e-scooter, 9999 if not available) |
| EBIKEACCTIME | E-bike access time (average number of minutes to walk to a shared e-bike, 9999 if not available) |
| EXTERNAL | 1 if an external MAZ, else 0 |
| EXT_WORK_SIZE | Size term for work tours at external MAZ (total resident work tours from SWIM at the external station) |
| EXT_NWRK_SIZE | Size term for non-work tours at external MAZ (total resident non-work tours from SWIM at the external station) |
| TOTINT | (Calculated) Intersection count (total 3-way and 4-way intersections in MAZ): Note this can be calculated from the all-streets network. For future years, this can be updated based on application of intersection count/acres from other similar MAZs for greenfields. |
| EMPDEN | (Calculated) Sum(EMP_TOT)/Sum(ACRES) for all MAZs within 0.5 miles of this MAZ |
| RETDEN | (Calculated) Sum(EMP_RCS)/Sum(ACRES) for all MAZs within 0.5 miles of this MAZ |
| HHDEN | (Calculated) Sum(TOTHHS)/Sum(ACRES) for all MAZs within 0.5 miles of this MAZ |
| POPDEN | (Calculated) Sum(TOTPOP)/Sum(ACRES) for all MAZs within 0.5 miles of this MAZ |
| POPEMPDEN | (Calculated) Sum(TOTPOP + EMP_TOT)/Sum(ACRES) for all MAZs within 0.5 miles of this MAZ |
| WLKTIME_BUS | (Calculated from all-streets network) Walking time to local bus (9999 if not available) |
| WLKTIME_BRT | (Calculated from all-streets network) Walking time to bus-rapid transit (9999 if not available) |
| WLKTIME_LRT | (Calculated from all-streets network) Walking time to light-rail transit (9999 if not available) |
| WLKTIME_CR | (Calculated from all-streets network) Walking time to commuter rail (9999 if not available) |
| EXPPRK_MNTH | (Calculated) Expected average monthly parking cost from origin to all destinations ($2023 cents) |
| EXPPRK_DAY | (Calculated) Expected average daily parking cost from origin to all destinations ($2023 cents) |
| EXPPRK_HR | (Calculated) Expected average hourly parking cost from origin to all destinations ($2023 cents) |
| PARKAREA | (Calculated) Parking constrained area code: 1: Constrained parking area (destinations in area have an expected cost and parking location choice model is applied. 2: Buffer area (free parking in area is included in expected cost for destinations in PARKAREA 1, but destinations in area do not have an expected cost and parking location choice model not applied), 3: Not parking constrained or buffer area (free unconstrained parking). |
| Built Form (not sure on naming) | We need some indication for how walkable / comfortable the area is. In the past this has been intersection density in the base year, and a proxy for the future. I would like to see us use maybe something from Smart Location Database definitions, but open to different ideas here. |
Density fields: These can be calculated by dividing the appropriate land-use field by area. They are calculated on a ‘floating’ basis by buffering around the MAZ and summing the land-use field and acreage for all MAZs within a ½ mile radius of the current MAZ (note that the current MAZ values are always included in the calculation despite how far the nearest MAZ may be from the current MAZ). The distance can be gleaned from the all-streets network using a shortest path by distance calculation, or the straight-line distance between MAZ centroid coordinates are required, which can also be calculated from the all-streets node layer. Other fields may be coded if useful in estimation.
Transit walk-time fields: These can be calculated from the all-streets network which has MAZ centroids and transit stop nodes in the network. The transit stop nodes should be updated at the start of a model run since the transit network coding could change between runs. The walk times are calculated by finding the distance to either the closest transit stop by type from the MAZ, or to the average of multiple stops. We suggest a 2.8 mile per hour walking speed to calculate time. These times are used as an override on the skimmed TAZ times.
Expected parking costs and park area: Parking costs (PRKCST_HR, PRKCST_DAY, PRKCST_MNTH) and parking spaces (PRKSPACES) are the actual cost of parking in the MAZ and the actual number of spaces in the MAZ. Expected parking cost fields (EXPPRK_HR, EXPPRK_DAY, EXPPRK_MNTH) are the average parking costs that a traveler might expect to pay when they park either in the MAZ or somewhere close to the MAZ and walk to the MAZ from their parking location. The parking cost equation is shown below, and graphically in the figure.

Expected parking cost calculations should take into account the potential for parking for free to the extent that travelers seek out free on-street parking and walk to their destination which has an expected cost. This requires defining a ‘parking constrained area’ where MAZs in this area have a parking cost calculated for them, a ‘buffer area’ around the parking constrained area where MAZs have free on-street parking, and a ‘completely free’ area which includes all other MAZs. These parking areas are defined in the PARKAREA field as 1, 2, and 3. They can be manually coded in the MAZ file or calculated via automated geometric algorithm available in Python, as was recently done for SANDAG. The buffer area free parking calculation requires an estimate of on-street parking capacity per mile which is applied to links in the all-streets network.
Inputs to PopulationSim include seed household and person data files, geographic equivalency files, total households by MAZ, a set of control files for each geography for which controls are specified, a file that maps household and person attributes in the seed data to each control, and a yaml file with properties that control the PopulationSim run. The seed household file and person file for initial model implementation are generated directly from ACS 5-year (example, 2018-2022) Public Use Microdata files. The seed data can be updated to the most recent 5-year average for model calibration. Data for the PUMAs containing the region to be modeled are retained from the Oregon data files and the entire household and person file in CSV format is read into PopulationSim. This provides the user the option to merge any household and person attributes from the original PUMS data to the ActivitySim input or output household and person files if desired. PUMS household and person data file formats are available on the US Census website
The MAZ data file will be used for the input total households by MAZ and the geographic equivalencies for PopulationSim. A script will pre-process each set of controls such that the total households matches the household estimates by MAZ and that total population is consistent with distributions of households by household size at appropriate geographic levels.
There is one control file for each geographic level for which controls are specified. The controls are described here.
The tables below show ActivitySim household and person input files respectively. These files are created from PopulationSim and post-processing and contain the attributes of synthesized households and persons derived from the seed data, plus any additional fields coded by the user used in ActivitySim. For example, the user may wish to represent over-rides for certain choice models. These can be specified by adding fields noted as model outcomes at the household or person levels (specified in Table 33 and Table 34 respectively) and setting those fields to a user-specified value, then changing the ActivitySim configuration to use those fields from the input files rather than run the choice models that create those fields. We have also added two fields that allow the user to apply person-level factors to toll costs and transit fares. Their default value should be 1.0.
| Name | Type | Description |
|---|---|---|
| HOUSEHOLD_ID | Integer | Unique household ID number |
| SERIALNO | Integer | PUMS household number |
| PUMA_GEOID | Integer | Household PUMA Geographic ID |
| MAZ | Integer | Household MAZ ID |
| TAZ | Integer | Household TAZ ID |
| TYPE | Integer | Type of housing unit 1 = Household 2 = Institutional group quarters 3 = Noninstitutional group quarters |
| NP | Integer | Number of people in household |
| HHT | Integer | The type of household - Census PUMS HHT variable: N/A: Not applicable (group quarters or vacant) 1: Married couple household 2: Other family household: Male householder, no spouse present 3: Other family household: Female householder, no spouse present 4: Nonfamily household: Male householder: Living alone 5: Nonfamily household: Male householder: Not living alone 6: Nonfamily household: Female householder: Living alone 7: Nonfamily household: Female householder: Not living alone |
| HHINCADJ | Integer | The annual household income in dollars in the household, adjusted to the model base year ($2023) |
| WORKERS | Integer | The number of workers in the household |
| Name | Type | Description |
|---|---|---|
| HOUSEHOLD_ID | Integer | Household ID number (must agree with household file) |
| PERSON_NUM | Integer | Person number in household (1…n where n is total number of persons in household) |
| PERSON_ID | Integer | Person ID number used as index (1…n where n is total number of persons in synthetic population) |
| PUMA_GEOID | Integer | Household PUMA Geographic ID |
| TAZ | Integer | Household TAZ ID |
| MAZ | Integer | Household MAZ ID |
| AGEP | Integer | Age of person in years |
| SEX | Integer | Sex of person in household (1 = male, 2 = female) |
| WKHP | Integer | Usual hours worked per week in past 12 months |
| WKW | Integer | Weeks worked during past 12 months -9: under 16 years old or did not work in past 12 months 1: 50-52 weeks worked 2: 48-49 weeks worked 3: 40-47 weeks worked 4: 27-39 weeks worked 5: 14-26 weeks worked 6: 13 or fewer weeks worked |
| ESR | Integer | Employment Status Recode -9: Under 16 years old 1: Civilian employed, at work 2: Civilian employed, employed but not at work 3: Unemployed 4: Armed forces, at work 5: Armed forces, employed but not at work 6: Not in labor force |
| SCHG | Integer | School grade -9: Not in school 1: Preschool 2: Kindergarten 3-14: grades 1-12 15: Undergrad college 16: College beyond bachelor’s degree |
| MIL | Integer | Military Service -9: under 17 years old 1: On active duty 2: Active in past, but not currently 3: Only active for training in Reserves/National Guard 4: Never served in military |
| NAICSP | Integer | NAICS ID of work occupation (Census Code) |
| INDP | Integer | Work industry code (Census code) |
| OCCP | Integer | Work occupation code (Census code) |
| OCCCAT | Integer | 1: Management, business, science, and arts; 2: Service; 3: Sales and office; 4: Natural resources, construction, and maintenance; 5: Production, transportation, and material moving; 6: Military specific occupations |
| DDRS | Integer | Self-care difficulty (-9: N/A (Less than 5 years old), 1: Yes, 2: No |
| DEAR | Integer | Hearing difficulty (-9: N/A (Less than 5 years old), 1: Yes, 2: No |
| DEYE | Integer | Vision difficulty (-9: N/A (Less than 5 years old), 1: Yes, 2: No |
| DOUT | Integer | Independent living difficulty (-9: N/A (Less than 5 years old), 1: Yes, 2: No |
| DPHY | Integer | Ambulatory difficulty (-9: N/A (Less than 5 years old), 1: Yes, 2: No |
| DREM | Integer | Cognitive difficulty (-9: N/A (Less than 5 years old), 1: Yes, 2: No |
| TOLLFACTOR | Float | A user-defined factor to be applied to skimmed toll values. Default should be 1.0. |
| FAREFACTOR | Float | A user-defined factor to be applied to transit fare (in addition to transit subsidy or transit pass factors). Default should be 1.0. |