Skip to content

Commit

Permalink
Merge branch 'verification-fixes' of https://github.com/ActivitySim/a…
Browse files Browse the repository at this point in the history
…ctivitysim into verification-fixes
  • Loading branch information
bstabler committed Apr 4, 2019
2 parents 99a41fd + 9f81628 commit 7455624
Show file tree
Hide file tree
Showing 43 changed files with 288 additions and 130 deletions.
1 change: 1 addition & 0 deletions activitysim/abm/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from . import initialize
from . import accessibility
from . import auto_ownership
from . import free_parking
from . import mandatory_tour_frequency
from . import mandatory_scheduling
from . import joint_tour_frequency
Expand Down
88 changes: 88 additions & 0 deletions activitysim/abm/models/free_parking.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# ActivitySim
# See full license in LICENSE.txt.

from __future__ import (absolute_import, division, print_function, )
from future.standard_library import install_aliases
install_aliases() # noqa: E402

from future.utils import iteritems

import logging

import pandas as pd

from activitysim.core import tracing
from activitysim.core import config
from activitysim.core import pipeline
from activitysim.core import simulate
from activitysim.core import inject
from activitysim.core.mem import force_garbage_collect

from activitysim.core.interaction_sample_simulate import interaction_sample_simulate
from activitysim.core.interaction_sample import interaction_sample

from .util import expressions

logger = logging.getLogger(__name__)


@inject.step()
def free_parking(
persons_merged, persons, households,
skim_dict, skim_stack,
chunk_size, trace_hh_id, locutor):
"""
"""

trace_label = 'free_parking'
model_settings = config.read_model_settings('free_parking.yaml')

choosers = persons_merged.to_frame()
choosers = choosers[choosers.workplace_taz > -1]

logger.info("Running %s with %d persons", trace_label, len(choosers))

constants = config.get_model_constants(model_settings)

# - preprocessor
preprocessor_settings = model_settings.get('preprocessor', None)
if preprocessor_settings:

locals_d = {}
if constants is not None:
locals_d.update(constants)

expressions.assign_columns(
df=choosers,
model_settings=preprocessor_settings,
locals_dict=locals_d,
trace_label=trace_label)

model_spec = simulate.read_model_spec(file_name='free_parking.csv')
nest_spec = config.get_logit_model_settings(model_settings)

choices = simulate.simple_simulate(
choosers=choosers,
spec=model_spec,
nest_spec=nest_spec,
locals_d=constants,
chunk_size=chunk_size,
trace_label=trace_label,
trace_choice_name='free_parking_at_work')

persons = persons.to_frame()

# no need to reindex as we used all households
free_parking_alt = model_settings['FREE_PARKING_ALT']
choices = (choices == free_parking_alt)
persons['free_parking_at_work'] = choices.reindex(persons.index).fillna(0).astype(bool)

pipeline.replace_table("persons", persons)

tracing.print_summary('free_parking', persons.free_parking_at_work, value_counts=True)

if trace_hh_id:
tracing.trace_df(persons,
label=trace_label,
warn_if_empty=True)
3 changes: 2 additions & 1 deletion activitysim/abm/models/non_mandatory_tour_frequency.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ def non_mandatory_tour_frequency(persons, persons_merged,
# 'tot_tours' is used in model_spec expressions
alternatives['tot_tours'] = alternatives.sum(axis=1)

no_tours_alt = list((alternatives.sum(axis=1) == 0).values).index(True)
# (we expect there to be an alt with no tours - which we can use to backfill non-travelers)
no_tours_alt = (alternatives.sum(axis=1) == 0).index[0]

# - preprocessor
preprocessor_settings = model_settings.get('preprocessor', None)
Expand Down
3 changes: 3 additions & 0 deletions activitysim/abm/models/util/logsums.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ def compute_logsums(choosers,
choosers['in_period'] = expressions.skim_time_period_label(model_settings['IN_PERIOD'])
choosers['out_period'] = expressions.skim_time_period_label(model_settings['OUT_PERIOD'])

assert ('duration' not in choosers)
choosers['duration'] = model_settings['IN_PERIOD'] - model_settings['OUT_PERIOD']

nest_spec = config.get_logit_model_settings(logsum_settings)
constants = config.get_model_constants(logsum_settings)

Expand Down
10 changes: 6 additions & 4 deletions activitysim/abm/models/util/vectorize_tour_scheduling.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,19 @@ def compute_logsums(alt_tdd, tours_merged, tour_purpose, model_settings, trace_l
assert 'in_period' not in alt_tdd
alt_tdd['out_period'] = expressions.skim_time_period_label(alt_tdd['start'])
alt_tdd['in_period'] = expressions.skim_time_period_label(alt_tdd['end'])
alt_tdd['duration'] = alt_tdd['end'] - alt_tdd['start']

USE_BRUTE_FORCE = False
if USE_BRUTE_FORCE:
# compute logsums for all the tour alt_tdds (inefficient)
logsums = _compute_logsums(alt_tdd, tours_merged, tour_purpose, model_settings, trace_label)
return logsums

# - get list of unique (tour_id, out_period, in_period) in alt_tdd_periods
# - get list of unique (tour_id, out_period, in_period, duration) in alt_tdd_periods
# we can cut the number of alts roughly in half (for mtctm1) by conflating duplicates
index_name = alt_tdd.index.name
alt_tdd_periods = \
alt_tdd[['out_period', 'in_period']].reset_index().drop_duplicates().set_index(index_name)
alt_tdd_periods = alt_tdd[['out_period', 'in_period', 'duration']]\
.reset_index().drop_duplicates().set_index(index_name)

# - compute logsums for the alt_tdd_periods
alt_tdd_periods['logsums'] = \
Expand All @@ -154,7 +156,7 @@ def compute_logsums(alt_tdd, tours_merged, tour_purpose, model_settings, trace_l
logsums = pd.merge(
alt_tdd.reset_index(),
alt_tdd_periods.reset_index(),
on=[index_name, 'out_period', 'in_period'],
on=[index_name, 'out_period', 'in_period', 'duration'],
how='left'
).set_index(index_name).logsums

Expand Down
10 changes: 7 additions & 3 deletions activitysim/abm/test/configs/annotate_persons.csv
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@ nonstudent_to_school,nonstudent_to_school,"(persons.ptype.isin([constants.PTYPE_
,pstudent,"pstudent.where((persons.ptype!=constants.PTYPE_DRIVING) & (persons.ptype!=constants.PTYPE_SCHOOL), constants.PSTUDENT_GRADE_OR_HIGH)"
#,,
is_student,is_student,"pstudent.isin([constants.PSTUDENT_GRADE_OR_HIGH, constants.PSTUDENT_UNIVERSITY])"
is_gradeschool,is_gradeschool,"(pstudent == constants.PSTUDENT_GRADE_OR_HIGH) & (persons.age <= constants.GRADE_SCHOOL_MAX_AGE)"
is_highschool,is_highschool,"(pstudent == constants.PSTUDENT_GRADE_OR_HIGH) & (persons.age > constants.GRADE_SCHOOL_MAX_AGE)"
is_university,is_university,"pstudent == constants.PSTUDENT_UNIVERSITY"
#babies go to school like tm1 bug,is_student,"is_student.where(persons.age > constants.GRADE_SCHOOL_MIN_AGE, True)"
#babies go to school like tm1 bug,pstudent,"pstudent.where(persons.age > constants.GRADE_SCHOOL_MIN_AGE, constants.PSTUDENT_GRADE_OR_HIGH)"
babies dont go to school,is_student,"is_student.where(persons.age > constants.GRADE_SCHOOL_MIN_AGE, False)"
babies dont go to school,pstudent,"pstudent.where(persons.age > constants.GRADE_SCHOOL_MIN_AGE, constants.PSTUDENT_NOT)"
is_gradeschool,is_gradeschool,(pstudent == constants.PSTUDENT_GRADE_OR_HIGH) & (persons.age <= constants.GRADE_SCHOOL_MAX_AGE)
is_highschool,is_highschool,(pstudent == constants.PSTUDENT_GRADE_OR_HIGH) & (persons.age > constants.GRADE_SCHOOL_MAX_AGE)
is_university,is_university,pstudent == constants.PSTUDENT_UNIVERSITY
school_segment gradeschool,school_segment,"np.where(is_gradeschool, constants.SCHOOL_SEGMENT_GRADE, constants.SCHOOL_SEGMENT_NONE)"
school_segment highschool,school_segment,"np.where(is_highschool, constants.SCHOOL_SEGMENT_HIGH, school_segment)"
school_segment university,school_segment,"np.where(is_university, constants.SCHOOL_SEGMENT_UNIV, school_segment).astype(np.int8)"
Expand Down
9 changes: 9 additions & 0 deletions activitysim/abm/test/configs/free_parking.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Description,Expression,free,pay
,@df.workplace_county_id == ID_SAN_FRANCISCO,-2.6403,
,@df.workplace_county_id == ID_SANTA_CLARA,0.2118,
,@df.workplace_county_id == ID_ALAMEDA,-0.1092,
Very high income household dummy,@df.income>=100000,0.2300,
High income housheold dummy,@(df.income>=60000) & (df.income<100000),0.2300,
Household size is greater than 3 dummy,@df.hhsize>3,0.2530,
More automobiles than workers dummy,@df.auto_ownership>df.num_workers,0.2310,
Fewer automobiles than workers dummy,@df.auto_ownership<df.num_workers,-1.4790,
21 changes: 21 additions & 0 deletions activitysim/abm/test/configs/free_parking.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#LOGIT_TYPE: NL
LOGIT_TYPE: MNL

FREE_PARKING_ALT: 0

CONSTANTS:
ID_SAN_FRANCISCO: 1
ID_SAN_MATEO: 2
ID_SANTA_CLARA: 3
ID_ALAMEDA: 4
ID_CONTRA_COSTA: 5
ID_SOLANO: 6
ID_NAPA: 7
ID_SONOMA: 8
ID_MARIN: 9

preprocessor:
SPEC: free_parking_annotate_persons_preprocessor
DF: persons
TABLES:
- land_use
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Description,Target,Expression
,workplace_county_id,"reindex(land_use.county_id, persons.workplace_taz)"
5 changes: 3 additions & 2 deletions activitysim/abm/test/configs/school_location.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ SAMPLE_SIZE: 30
SIMULATE_CHOOSER_COLUMNS:
- TAZ
- school_segment
- household_id

# model-specific logsum-related settings
CHOOSER_ORIG_COL_NAME: TAZ
ALT_DEST_COL_NAME: alt_dest
IN_PERIOD: 8
OUT_PERIOD: 17
IN_PERIOD: 14
OUT_PERIOD: 8

DEST_CHOICE_COLUMN_NAME: school_taz

Expand Down
1 change: 1 addition & 0 deletions activitysim/abm/test/configs/settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ models:
- school_location
- workplace_location
- auto_ownership_simulate
- free_parking
- cdap_simulate
- mandatory_tour_frequency
- mandatory_tour_scheduling
Expand Down
3 changes: 2 additions & 1 deletion activitysim/abm/test/configs/tour_mode_choice.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ SPEC: tour_mode_choice.csv
COEFFS: tour_mode_choice_coeffs.csv

CONSTANTS:
valueOfTime: 8.00
#valueOfTime: 8.00
costPerMile: 18.48
costShareSr2: 1.75
costShareSr3: 2.50
Expand Down Expand Up @@ -97,3 +97,4 @@ LOGSUM_CHOOSER_COLUMNS:
- tour_category
- num_workers
- value_of_time
- free_parking_at_work
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
Description,Target,Expression
#,,
local,_DF_IS_TOUR,"'tour_type' in df.columns"
local,_DF_IS_TOUR,'tour_type' in df.columns
,number_of_participants,df.number_of_participants if _DF_IS_TOUR else 1
,is_joint,(df.tour_category=='joint') if _DF_IS_TOUR else False
#,,
local,_HAVE_PARENT_TOURS,"'parent_tour_id' in df.columns"
local,_HAVE_PARENT_TOURS,'parent_tour_id' in df.columns
,_parent_tour_mode,"reindex(tours.tour_mode, df.parent_tour_id) if _HAVE_PARENT_TOURS else ''"
,work_tour_is_drive,"_parent_tour_mode.isin(['DRIVEALONEFREE','DRIVEALONEPAY'])"
,work_tour_is_bike,"_parent_tour_mode=='BIKE'"
,work_tour_is_bike,_parent_tour_mode=='BIKE'
,work_tour_is_SOV,"_parent_tour_mode.isin(['DRIVEALONEFREE','DRIVEALONEPAY'])"
#,,
,is_joint,(df.tour_category=='joint') if 'tour_category' in df.columns else False
,is_indiv,~is_joint
,is_atwork_subtour,(df.tour_category=='joint') if 'tour_category' in df.columns else False
,is_atwork_subtour,(df.tour_category=='atwork') if 'tour_category' in df.columns else False
#,,
,c_cost,(0.60 * c_ivt) / df.value_of_time
#,,
Expand All @@ -21,26 +21,32 @@ local,_DF_IS_TOUR,"'tour_type' in df.columns"
,dest_density_index,"reindex(land_use.density_index, df[dest_col_name])"
FIXME,origin_walk_time,0
FIXME,destination_walk_time,0
FIXME,daily_parking_cost,0
#,,
,drive_commuter_available,(odt_skims['DRV_COM_WLK_TOTIVT']>0) & (dot_skims['WLK_COM_DRV_TOTIVT']>0) & ((odt_skims['DRV_COM_WLK_KEYIVT'] + dot_skims['WLK_COM_DRV_KEYIVT'])>0)
,drive_express_available,(odt_skims['DRV_EXP_WLK_TOTIVT']>0) & (dot_skims['WLK_EXP_DRV_TOTIVT']>0) & ((odt_skims['DRV_EXP_WLK_KEYIVT'] + dot_skims['WLK_EXP_DRV_KEYIVT'])>0)
,drive_heavyrail_available,(odt_skims['DRV_HVY_WLK_TOTIVT']>0) & (dot_skims['WLK_HVY_DRV_TOTIVT']>0) & ((odt_skims['DRV_HVY_WLK_KEYIVT'] + dot_skims['WLK_HVY_DRV_KEYIVT'])>0)
,_free_parking_available,"(df.tour_type == 'work') & df.free_parking_at_work if _DF_IS_TOUR else False"
,_dest_hourly_peak_parking_cost,"reindex(land_use.PRKCST, df[dest_col_name])"
,_hourly_parking_cost,"np.where(_free_parking_available, 0, _dest_hourly_peak_parking_cost)"
,daily_parking_cost,_hourly_parking_cost * df.duration
#,,
,drive_commuter_available,(odt_skims['DRV_COM_WLK_TOTIVT']>0) & (dot_skims['WLK_COM_DRV_TOTIVT']>0) & (odt_skims['DRV_COM_WLK_KEYIVT']>0) & (dot_skims['WLK_COM_DRV_KEYIVT']>0)
,drive_express_available,(odt_skims['DRV_EXP_WLK_TOTIVT']>0) & (dot_skims['WLK_EXP_DRV_TOTIVT']>0) & (odt_skims['DRV_EXP_WLK_KEYIVT']>0) & (dot_skims['WLK_EXP_DRV_KEYIVT']>0)
,drive_heavyrail_available,(odt_skims['DRV_HVY_WLK_TOTIVT']>0) & (dot_skims['WLK_HVY_DRV_TOTIVT']>0) & (odt_skims['DRV_HVY_WLK_KEYIVT']>0) & (dot_skims['WLK_HVY_DRV_KEYIVT']>0)
,drive_local_available,(odt_skims['DRV_LOC_WLK_TOTIVT']>0) & (dot_skims['WLK_LOC_DRV_TOTIVT']>0)
,drive_lrf_available,(odt_skims['DRV_LRF_WLK_TOTIVT']>0) & (dot_skims['WLK_LRF_DRV_TOTIVT']>0) & ((odt_skims['DRV_LRF_WLK_KEYIVT'] + dot_skims['WLK_LRF_DRV_KEYIVT'])>0)
,drive_lrf_available,(odt_skims['DRV_LRF_WLK_TOTIVT']>0) & (dot_skims['WLK_LRF_DRV_TOTIVT']>0) & (odt_skims['DRV_LRF_WLK_KEYIVT']>0) & (dot_skims['WLK_LRF_DRV_KEYIVT']>0)
,hov2_available,(odt_skims['HOV2_TIME'] + dot_skims['HOV2_TIME'])>0
,hov2toll_available,(odt_skims['HOV2TOLL_VTOLL'] + dot_skims['HOV2TOLL_VTOLL'])>0
,hov3_available,(odt_skims['HOV3_TIME']>0) & (dot_skims['HOV3_TIME']>0)
,hov3toll_available,(odt_skims['HOV3TOLL_VTOLL'] + dot_skims['HOV3TOLL_VTOLL'])>0
,sov_available,(odt_skims['SOV_TIME']>0) & (dot_skims['SOV_TIME']>0)
,sovtoll_available,(odt_skims['SOVTOLL_VTOLL']>0) | (dot_skims['SOVTOLL_VTOLL']>0)
,walk_commuter_available,(odt_skims['WLK_COM_WLK_TOTIVT']>0) & (dot_skims['WLK_COM_WLK_TOTIVT']>0) & ((odt_skims['WLK_COM_WLK_KEYIVT'] + dot_skims['WLK_COM_WLK_KEYIVT'])>0)
,walk_express_available,(odt_skims['WLK_EXP_WLK_TOTIVT']>0) & (dot_skims['WLK_EXP_WLK_TOTIVT']>0) & ((odt_skims['WLK_EXP_WLK_KEYIVT'] + dot_skims['WLK_EXP_WLK_KEYIVT'])>0)
,walk_heavyrail_available,(odt_skims['WLK_HVY_WLK_TOTIVT']>0) & (dot_skims['WLK_HVY_WLK_TOTIVT']>0) & ((odt_skims['WLK_HVY_WLK_KEYIVT'] + dot_skims['WLK_HVY_WLK_KEYIVT'])>0)
,walk_commuter_available,(odt_skims['WLK_COM_WLK_TOTIVT']>0) & (dot_skims['WLK_COM_WLK_TOTIVT']>0) & (odt_skims['WLK_COM_WLK_KEYIVT']>0) & (dot_skims['WLK_COM_WLK_KEYIVT']>0)
,walk_express_available,(odt_skims['WLK_EXP_WLK_TOTIVT']>0) & (dot_skims['WLK_EXP_WLK_TOTIVT']>0) & (odt_skims['WLK_EXP_WLK_KEYIVT']>0) & (dot_skims['WLK_EXP_WLK_KEYIVT']>0)
,walk_heavyrail_available,(odt_skims['WLK_HVY_WLK_TOTIVT']>0) & (dot_skims['WLK_HVY_WLK_TOTIVT']>0) & (odt_skims['WLK_HVY_WLK_KEYIVT']>0) & (dot_skims['WLK_HVY_WLK_KEYIVT']>0)
,walk_local_available,(odt_skims['WLK_LOC_WLK_TOTIVT']>0) & (dot_skims['WLK_LOC_WLK_TOTIVT']>0)
,walk_lrf_available,(odt_skims['WLK_LRF_WLK_TOTIVT']>0) & (dot_skims['WLK_LRF_WLK_TOTIVT']>0) & ((odt_skims['WLK_LRF_WLK_KEYIVT'] + dot_skims['WLK_LRF_WLK_KEYIVT'])>0)
,walk_lrf_available,(odt_skims['WLK_LRF_WLK_TOTIVT']>0) & (dot_skims['WLK_LRF_WLK_TOTIVT']>0) & (odt_skims['WLK_LRF_WLK_KEYIVT']) & (dot_skims['WLK_LRF_WLK_KEYIVT']>0)
,distance,od_skims['DIST']
,walk_ferry_available,walk_lrf_available & ((odt_skims['WLK_LRF_WLK_FERRYIVT'] + dot_skims['WLK_LRF_WLK_FERRYIVT'])>0)
,drive_ferry_available,drive_lrf_available & ((odt_skims['DRV_LRF_WLK_FERRYIVT'] + dot_skims['WLK_LRF_WLK_FERRYIVT'])>0)
,walk_ferry_available,walk_lrf_available & (odt_skims['WLK_LRF_WLK_FERRYIVT']>0) & (dot_skims['WLK_LRF_WLK_FERRYIVT']>0)
,drive_ferry_available,drive_lrf_available & (odt_skims['DRV_LRF_WLK_FERRYIVT']>0) & (dot_skims['WLK_LRF_WLK_FERRYIVT']>0)
#,,
destination in central business district,destination_in_cbd,"(reindex(land_use.area_type, df[dest_col_name]) < setting('cbd_threshold')) * 1"
#,,FIXME diagnostic
#,sov_dist_rt,(odt_skims['SOV_DIST'] + dot_skims['SOV_DIST'])
3 changes: 2 additions & 1 deletion activitysim/abm/test/configs/tour_mode_choice_coeffs.csv
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ c_walktimeshort,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt
c_walktimelong,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,10.00 * c_ivt,-0.188
c_biketimeshort,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,4.00 * c_ivt,-0.0752
c_biketimelong,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,20.00 * c_ivt,-0.376
c_cost,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.6*c_ivt) / valueOfTime
#value_of_time is a person attribute so we cant compute c_cost as scalar here,,,,,,,,,,
#c_cost,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.60 * c_ivt) / valueOfTime,(0.6*c_ivt) / valueOfTime
c_short_i_wait,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,-0.0376
c_long_i_wait,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,1.00 * c_ivt,-0.0188
c_wacc,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,2.00 * c_ivt,-0.0376
Expand Down
4 changes: 2 additions & 2 deletions activitysim/abm/test/configs/workplace_location.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ LOGSUM_TOUR_PURPOSE: work
# model-specific logsum-related settings
CHOOSER_ORIG_COL_NAME: TAZ
ALT_DEST_COL_NAME: alt_dest
IN_PERIOD: 8
OUT_PERIOD: 17
IN_PERIOD: 17
OUT_PERIOD: 8

DEST_CHOICE_COLUMN_NAME: workplace_taz

Expand Down
1 change: 1 addition & 0 deletions activitysim/abm/test/configs_mp/settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ models:
- school_location
- workplace_location
- auto_ownership_simulate
- free_parking
- write_data_dictionary
- write_tables

Expand Down
Loading

0 comments on commit 7455624

Please sign in to comment.