At-work Subtours Destination Choice#
The at-work subtours destination choice model is made up of three model steps:
sample - selects a sample of alternative locations for the next model step. This selects X locations from the full set of model zones using a simple utility.
logsums - starts with the table created above and calculates and adds the mode choice logsum expression for each alternative location.
simulate - starts with the table created above and chooses a final location, this time with the mode choice logsum included.
At-work subtour location choice for multiple_zone_systems models uses presampling by default.
The main interface to the at-work subtour destination model is the atwork_subtour_destination function. This function is registered as an Inject step in the example Pipeline. writing_logsums for how to write logsums for estimation.
Structure#
Configuration File:
atwork_subtour_destination.yaml
Core Table:
tours
Result Field:
destination
Skims keys:
workplace_taz, alt_dest, MD time period
Configuration#
- settings activitysim.abm.models.atwork_subtour_destination.TourLocationComponentSettings#
Bases:
LocationComponentSettings
- Config:
extra: str = forbid
- Fields:
ALT_DEST_COL_NAME (str)
CHOOSER_FILTER_COLUMN_NAME (str | None)
CHOOSER_ID_COLUMN (str)
CHOOSER_ORIG_COL_NAME (str)
CHOOSER_SEGMENT_COLUMN_NAME (str | None)
CHOOSER_TABLE_NAME (str | None)
COEFFICIENTS ()
CONSTANTS ()
DEST_CHOICE_COLUMN_NAME (str | None)
DEST_CHOICE_LOGSUM_COLUMN_NAME (str | None)
DEST_CHOICE_SAMPLE_TABLE_NAME (str | None)
ESTIMATION_SAMPLE_SIZE (int)
IN_PERIOD (int | dict[str, int] | None)
LOGSUM_PREPROCESSOR (str)
LOGSUM_SETTINGS ()
LOGSUM_TOUR_PURPOSE (str | dict[str, str] | None)
MODELED_SIZE_TABLE (str | None)
MODEL_SELECTOR (str | None)
MODE_CHOICE_LOGSUM_COLUMN_NAME (str | None)
ORIG_ZONE_ID (str | None)
OUT_PERIOD (int | dict[str, int] | None)
SAMPLE_SIZE ()
SAMPLE_SPEC ()
SAVED_SHADOW_PRICE_TABLE_NAME (str | None)
SEGMENTS (list[str] | None)
SEGMENT_IDS (dict[str, int] | dict[str, str] | dict[str, bool] | None)
SHADOW_PRICE_TABLE (str | None)
SIMULATE_CHOOSER_COLUMNS (list[str] | None)
SIZE_TERM_SELECTOR (str | None)
SPEC ()
annotate_households (PreprocessorSettings | None)
annotate_persons (PreprocessorSettings | None)
annotate_tours (PreprocessorSettings | None)
compute_settings ()
explicit_chunk ()
source_file_paths ()
- 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 DEST_CHOICE_LOGSUM_COLUMN_NAME: str | None = None#
Column name for logsum calculated across all sampled destinations.
- Validated by:
update_sharrow_skip
- field ESTIMATION_SAMPLE_SIZE: int = 0#
The number of alternatives to sample for estimation mode. If zero, then all alternatives are used. Truth alternative will be included in the sample. Larch does not yet support sampling alternatives for estimation, but this setting is still helpful for estimation mode runtime.
- Validated by:
update_sharrow_skip
- field LOGSUM_SETTINGS: Path [Required]#
Settings for the logsum computation.
- Validated by:
update_sharrow_skip
- field MODE_CHOICE_LOGSUM_COLUMN_NAME: str | None = None#
Column name for logsum calculated across all sampled modes to selected destination.
- Validated by:
update_sharrow_skip
- field ORIG_ZONE_ID: str | None = None#
This setting appears to do nothing…
- Validated by:
update_sharrow_skip
- field SAMPLE_SIZE: int [Required]#
This many candidate alternatives will be sampled for each choice.
- Validated by:
update_sharrow_skip
- field SAMPLE_SPEC: Path [Required]#
The utility spec giving expressions to use in alternative sampling.
- Validated by:
update_sharrow_skip
- field SEGMENT_IDS: dict[str, int] | dict[str, str] | dict[str, bool] | None = None#
- 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 annotate_households: PreprocessorSettings | None = None#
- Validated by:
update_sharrow_skip
- field annotate_persons: PreprocessorSettings | None = None#
- Validated by:
update_sharrow_skip
- field annotate_tours: PreprocessorSettings | None = None#
- 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 explicit_chunk: float = 0#
If > 0, use this chunk size instead of adaptive chunking. If less than 1, use this fraction of the total number of rows.
- Validated by:
update_sharrow_skip
- validator update_sharrow_skip » all fields#
Examples#
Implementation#
- activitysim.abm.models.atwork_subtour_destination.atwork_subtour_destination(state: State, tours: DataFrame, persons_merged: DataFrame, network_los: Network_LOS, model_settings: TourLocationComponentSettings | None = None, model_settings_file_name: str = 'atwork_subtour_destination.yaml', trace_label: str = 'atwork_subtour_destination') None #