Free Parking Eligibility#
The Free Parking Eligibility model predicts the availability of free parking at a person’s workplace. It is applied for people who work in zones that have parking charges, which are generally located in the Central Business Districts. The purpose of the model is to adequately reflect the cost of driving to work in subsequent models, particularly in mode choice.
Structure#
Configuration File:
free_parking.yaml
Core Table:
persons
Result Field:
free_parking_at_work
This model generates only True or False outcomes, and is structured as a binary logit model.
Configuration#
- settings activitysim.abm.models.free_parking.FreeParkingSettings#
Bases:
LogitComponentSettings
Settings for the free_parking component.
- Config:
extra: str = forbid
- Fields:
- Validators:
update_sharrow_skip
»all fields
- field COEFFICIENTS: Path | None = None#
Coefficients filename.
This is a CSV file giving named parameters for use in the utility expression. If it is not provided, then it is assumed that all model coefficients are given explicitly in the SPEC as numerical values instead of named parameters. This is perfectly acceptable for use with ActivitySim for typical simulation applications, but may be problematic if used with “estimation mode”.
- Validated by:
update_sharrow_skip
- field CONSTANTS: dict[str, Any] = {}#
Named constants usable in the utility expressions.
- Validated by:
update_sharrow_skip
- field FREE_PARKING_ALT: int [Required]#
The code for free parking.
- Validated by:
update_sharrow_skip
- field LOGIT_TYPE: Literal['MNL', 'NL'] = 'MNL'#
Logit model mathematical form.
- “MNL”
Multinomial logit model.
- “NL”
Nested multinomial logit model.
- Validated by:
update_sharrow_skip
- field NESTS: LogitNestSpec | None = None#
Nesting structure for a nested logit model.
The nesting structure is specified heirarchically from the top, so the value of this field should be the “root” level nest of the nested logit tree, which should contain references to lower level nests and/or the actual alternatives.
For example, this YAML defines a simple nesting structure for four alternatives (DRIVE, WALK, WALK_TO_TRANSIT, DRIVE_TO_TRANSIT) with the two transit alternatives grouped together in a nest:
NESTS: name: root coefficient: coef_nest_root alternatives: - DRIVE - WALK - name: TRANSIT coefficient: coef_nest_transit alternatives: - WALK_TO_TRANSIT - DRIVE_TO_TRANSIT
- Validated by:
update_sharrow_skip
- field SPEC: Path [Required]#
Utility specification filename.
This is sometimes alternatively called the utility expressions calculator (UEC). It is a CSV file giving all the functions for the terms of a linear-in-parameters utility expression.
- Validated by:
update_sharrow_skip
- field compute_settings: ComputeSettings = ComputeSettings(sharrow_skip=False, fastmath=True, use_bottleneck=None, use_numexpr=None, use_numba=None, drop_unused_columns=True, protect_columns=[])#
Sharrow settings for this component.
- Validated by:
update_sharrow_skip
- field preprocessor: PreprocessorSettings | None = None#
Setting for the preprocessor.
- Validated by:
update_sharrow_skip
- field source_file_paths: list[Path] = None#
A list of source files from which these settings were loaded.
This value should not be set by the user within the YAML settings files, instead it is populated as those files are loaded. It is primarily provided for debugging purposes, and does not actually affect the operation of any model.
- Validated by:
update_sharrow_skip
- classmethod nests_are_for_nl(nests, values)#
Checks that nests are provided if (and only if) LOGIT_TYPE is NL.
- validator update_sharrow_skip » all fields#
Examples#
Implementation#
- activitysim.abm.models.free_parking.free_parking(state: State, persons_merged: DataFrame, persons: DataFrame, model_settings: FreeParkingSettings | None = None, model_settings_file_name: str = 'free_parking.yaml', trace_label: str = 'free_parking') None #
Determine for each person whether they have free parking available at work.
- Parameters:
- stateworkflow.State
- persons_mergedDataFrame
This represents the ‘choosers’ table for this component.
- personsDataFrame
The original persons table is referenced so the free parking column can be appended to it.
- model_settingsFreeParkingSettings, optional
The settings used in this model component. If not provided, they are loaded out of the configs directory YAML file referenced by the model_settings_file_name argument.
- model_settings_file_namestr, default “free_parking.yaml”
This is where model setting are found if model_settings is not given explicitly. The same filename is also used to write settings files to the estimation data bundle in estimation mode.
- trace_labelstr, default “free_parking”
This label is used for various tracing purposes.