From ae7cf473f85370c4653dc7e5d9189373e200a1a4 Mon Sep 17 00:00:00 2001 From: albabnoor Date: Fri, 9 Jul 2021 10:46:03 -0700 Subject: [PATCH] update example semcog --- .../examples/example_semcog/change_log.txt | 2 +- .../configs/annotate_households.csv | 9 +- .../configs/annotate_persons.csv | 14 +- .../configs/annotate_persons_after_hh.csv | 2 +- .../configs/annotate_persons_cdap.csv | 2 +- .../configs/annotate_persons_workplace.csv | 3 + .../configs/atwork_subtour_destination.csv | 2 - .../atwork_subtour_destination_sample.csv | 2 - .../example_semcog/configs/auto_ownership.csv | 34 +- .../configs/auto_ownership_coeffs.csv | 137 +-- .../examples/example_semcog/configs/cdap.yaml | 2 - .../configs/cdap_indiv_and_hhsize1.csv | 7 + .../configs/destination_choice_size_terms.csv | 12 +- .../configs/mandatory_tour_frequency.csv | 6 + .../mandatory_tour_frequency_coeffs.csv | 33 +- .../configs/mandatory_tour_scheduling.yaml | 2 - ...scheduling_annotate_tours_preprocessor.csv | 4 - .../example_semcog/configs/network_los.yaml | 9 +- .../non_mandatory_tour_scheduling.yaml | 2 +- ..._scheduling_annotate_alts_preprocessor.csv | 15 - ...cheduling_annotate_shifts_preprocessor.csv | 15 - ...ling_escort_annotate_alts_preprocessor.csv | 15 - ...ng_shopping_annotate_alts_preprocessor.csv | 15 - ...parking_location_choice_at_university.yaml | 28 + .../example_semcog/configs/settings.yaml | 6 +- .../configs/stop_frequency.yaml | 20 +- ..._frequency_annotate_tours_preprocessor.csv | 1 + .../configs/stop_frequency_atwork.csv | 26 +- .../stop_frequency_coefficients_atwork.csv | 17 + .../stop_frequency_coefficients_eatout.csv | 33 + .../stop_frequency_coefficients_escort.csv | 28 + .../stop_frequency_coefficients_othdiscr.csv | 30 + .../stop_frequency_coefficients_othmaint.csv | 38 + .../stop_frequency_coefficients_school.csv | 21 + .../stop_frequency_coefficients_shopping.csv | 33 + .../stop_frequency_coefficients_social.csv | 33 + .../stop_frequency_coefficients_univ.csv | 20 + .../stop_frequency_coefficients_work.csv | 34 + .../configs/stop_frequency_eatout.csv | 107 ++- .../configs/stop_frequency_escort.csv | 95 ++- .../configs/stop_frequency_othdiscr.csv | 99 ++- .../configs/stop_frequency_othmaint.csv | 101 ++- .../configs/stop_frequency_school.csv | 89 +- .../configs/stop_frequency_shopping.csv | 101 ++- .../configs/stop_frequency_social.csv | 107 ++- .../configs/stop_frequency_univ.csv | 90 +- .../stop_frequency_university_parking.yaml | 3 + .../configs/stop_frequency_work.csv | 91 +- .../tour_departure_and_duration_segments.csv | 82 +- .../configs/tour_mode_choice.csv | 36 +- .../configs/tour_mode_choice.yaml | 25 +- ..._choice_annotate_choosers_preprocessor.csv | 14 +- .../configs/tour_mode_choice_coeffs.csv | 543 ++++++------ .../tour_mode_choice_coeffs_template.csv | 13 +- .../configs/tour_scheduling_atwork.csv | 26 +- .../configs/tour_scheduling_atwork_coeffs.csv | 26 +- .../configs/tour_scheduling_joint_coeffs.csv | 105 +-- .../configs/tour_scheduling_nonmandatory.csv | 348 -------- .../tour_scheduling_nonmandatory_coeffs.csv | 337 -------- .../tour_scheduling_nonmandatory_eatout.csv | 4 +- .../tour_scheduling_nonmandatory_othdiscr.csv | 4 +- .../tour_scheduling_nonmandatory_othmaint.csv | 4 +- .../tour_scheduling_nonmandatory_shift_in.csv | 348 -------- ...tour_scheduling_nonmandatory_shift_out.csv | 348 -------- .../tour_scheduling_nonmandatory_shopping.csv | 3 +- .../tour_scheduling_nonmandatory_social.csv | 4 +- .../configs/transit_pass_ownership.csv | 14 +- .../configs/transit_pass_subsidy.csv | 10 +- .../configs/trip_destination.csv | 34 +- .../configs/trip_destination.yaml | 10 +- .../configs/trip_destination_coefficients.csv | 19 + .../configs/trip_mode_choice.csv | 778 +++++++++--------- .../configs/trip_mode_choice.yaml | 23 +- ...ode_choice_annotate_trips_preprocessor.csv | 182 ++-- .../configs/trip_mode_choice_coefficients.csv | 437 ++++++++++ ...trip_mode_choice_coefficients_template.csv | 98 +++ .../configs/trip_mode_choice_coeffs.csv | 105 --- .../configs/trip_purpose_probs.csv | 4 +- .../university_location_zone_override.yaml | 23 + .../configs/workplace_location.yaml | 2 +- .../configs/write_trip_matrices.yaml | 32 +- ...p_matrices_annotate_trips_preprocessor.csv | 35 +- .../example_semcog/configs_mp/settings.yaml | 29 +- .../example_semcog/extensions/__init__.py | 3 + .../parking_location_choice_at_university.py | 166 ++++ .../stop_frequency_university_parking.py | 174 ++++ .../university_location_zone_override.py | 211 +++++ 87 files changed, 3089 insertions(+), 3165 deletions(-) delete mode 100755 activitysim/examples/example_semcog/configs/mandatory_tour_scheduling_annotate_tours_preprocessor.csv delete mode 100644 activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_alts_preprocessor.csv delete mode 100755 activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_shifts_preprocessor.csv delete mode 100644 activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_escort_annotate_alts_preprocessor.csv delete mode 100644 activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_shopping_annotate_alts_preprocessor.csv create mode 100644 activitysim/examples/example_semcog/configs/parking_location_choice_at_university.yaml create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_atwork.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_eatout.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_escort.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othdiscr.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othmaint.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_school.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_shopping.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_social.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_univ.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_coefficients_work.csv create mode 100644 activitysim/examples/example_semcog/configs/stop_frequency_university_parking.yaml delete mode 100755 activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory.csv delete mode 100755 activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_coeffs.csv delete mode 100755 activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_in.csv delete mode 100755 activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_out.csv create mode 100644 activitysim/examples/example_semcog/configs/trip_destination_coefficients.csv create mode 100644 activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients.csv create mode 100644 activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients_template.csv delete mode 100755 activitysim/examples/example_semcog/configs/trip_mode_choice_coeffs.csv create mode 100644 activitysim/examples/example_semcog/configs/university_location_zone_override.yaml create mode 100644 activitysim/examples/example_semcog/extensions/parking_location_choice_at_university.py create mode 100644 activitysim/examples/example_semcog/extensions/stop_frequency_university_parking.py create mode 100644 activitysim/examples/example_semcog/extensions/university_location_zone_override.py diff --git a/activitysim/examples/example_semcog/change_log.txt b/activitysim/examples/example_semcog/change_log.txt index 1dfd66cce..bb49241b3 100644 --- a/activitysim/examples/example_semcog/change_log.txt +++ b/activitysim/examples/example_semcog/change_log.txt @@ -1,4 +1,4 @@ -### +### ##### extensions ##### simulation.py ### diff --git a/activitysim/examples/example_semcog/configs/annotate_households.csv b/activitysim/examples/example_semcog/configs/annotate_households.csv index 55a4210d5..3b09114d1 100755 --- a/activitysim/examples/example_semcog/configs/annotate_households.csv +++ b/activitysim/examples/example_semcog/configs/annotate_households.csv @@ -2,7 +2,7 @@ Description,Target,Expression #,, annotate households table after import ,_PERSON_COUNT,"lambda query, persons, households: persons.query(query).groupby('household_id').size().reindex(households.index).fillna(0).astype(np.int8)" #,,FIXME households.income can be negative - so we clip? -income,income,households.HINCP.fillna(0) +income,income,households.hincp.fillna(0) income_in_thousands,income_in_thousands,(income / 1000).clip(lower=0) income_segment,income_segment,"pd.cut(income_in_thousands, bins=[-np.inf, 30, 60, 100, np.inf], labels=[1, 2, 3, 4]).astype(int)" #,, @@ -14,7 +14,7 @@ median_value_of_time,median_value_of_time,"income_segment.map({k: v for k, v in hh_value_of_time,hh_value_of_time,"rng.lognormal_for_df(df, mu=np.log(median_value_of_time * _MU), sigma=_SIGMA).clip(_MIN_VOT, _MAX_VOT)" #,, #num_workers was renamed in import,, -,num_workers,"_PERSON_COUNT('(ESR==1)|(ESR==2)|(ESR==4)|(ESR==5)', persons, households)" +,num_workers,"_PERSON_COUNT('(esr==1)|(esr==2)|(esr==4)|(esr==5)', persons, households)" number of non_workers,num_non_workers,households.hhsize - num_workers #,, #,,we assume that everyone 16 and older is a potential driver @@ -27,10 +27,11 @@ num_children_6_to_12,num_children_6_to_12,"_PERSON_COUNT('6 <= age <= 12', perso num_children_16_to_17,num_children_16_to_17,"_PERSON_COUNT('16 <= age <= 17', persons, households)" num_college_age,num_college_age,"_PERSON_COUNT('18 <= age <= 24', persons, households)" num_young_adults,num_young_adults,"_PERSON_COUNT('25 <= age <= 34', persons, households)" -non_family,non_family,households.HHT.isin(HHT_NONFAMILY) -family,family,households.HHT.isin(HHT_FAMILY) +non_family,non_family,households.hht.isin(HHT_NONFAMILY) +family,family,households.hht.isin(HHT_FAMILY) home_is_urban,home_is_urban,"reindex(land_use.AreaType, households.home_zone_id) < setting('urban_threshold')" home_is_rural,home_is_rural,"reindex(land_use.AreaType, households.home_zone_id) > setting('rural_threshold')" +home_in_detroit,home_in_detroit,"reindex(land_use.COUNTY, households.home_zone_id) == 1" #,, default for work and school location logsums before auto_ownership model is run ,auto_ownership,households.auto_ownership TAZ column to match settings file,TAZ,households.home_zone_id diff --git a/activitysim/examples/example_semcog/configs/annotate_persons.csv b/activitysim/examples/example_semcog/configs/annotate_persons.csv index 52b2d756f..dbd5e4ee9 100755 --- a/activitysim/examples/example_semcog/configs/annotate_persons.csv +++ b/activitysim/examples/example_semcog/configs/annotate_persons.csv @@ -7,11 +7,11 @@ age_16_p,age_16_p,persons.age >= 16 adult,adult,persons.age >= 18 male,male,persons.sex == 1 female,female,persons.sex == 2 -,esr,persons.ESR.fillna(0) -,wkhp,persons.WKHP.fillna(0) -,wkw,persons.WKW.fillna(0) -,schg,persons.SCHG.fillna(0) -,mil,persons.MIL.fillna(0) +,esr,persons.esr.fillna(0) +,wkhp,persons.wkhp.fillna(0) +,wkw,persons.wkw.fillna(0) +,schg,persons.schg.fillna(0) +,mil,persons.mil.fillna(0) employment status type,pemploy,np.zeros(len(persons)) ,pemploy,"np.where(persons.age < 16, PEMPLOY_CHILD, PEMPLOY_PART)" ,pemploy,"np.where((persons['age'] >= 16) & ((esr == 3) | (esr == 6)), PEMPLOY_NOT, pemploy)" @@ -60,8 +60,10 @@ is_worker,is_worker,"np.where((pemploy == PEMPLOY_FULL) |( pemploy == PEMPLOY_PA home_zone_id,home_zone_id,"reindex(households.home_zone_id, persons.household_id)" hh_child,hh_child,"reindex(households.children, persons.household_id)" person number,PNUM,persons.member_id -income,income,"reindex(households.HINCP, persons.household_id)" +income,income,"reindex(households.hincp, persons.household_id)" income_in_thousands,income_in_thousands,(income / 1000).clip(lower=0) income_segment,income_segment,"pd.cut(income_in_thousands, bins=[-np.inf, 30, 60, 100, np.inf], labels=[1, 2, 3, 4]).astype(int)" is_fulltime_worker,is_fulltime_worker,"((age_16_p) & (wkhp >=35) & (wkw>=1) & (wkw<=4) & (~esr.isin([3,6])))" is_parttime_worker,is_parttime_worker,"((age_16_p) & (~esr.isin([3,6])) & (is_fulltime_worker == False))" +recoding existing as legacy,naicsp_recode,"persons['naicsp'].replace('-9', '0000')" +coding industry according to pums,industry_naics,naicsp_recode.str[0].astype(int)*10 diff --git a/activitysim/examples/example_semcog/configs/annotate_persons_after_hh.csv b/activitysim/examples/example_semcog/configs/annotate_persons_after_hh.csv index ebb8b06a5..e593165d9 100755 --- a/activitysim/examples/example_semcog/configs/annotate_persons_after_hh.csv +++ b/activitysim/examples/example_semcog/configs/annotate_persons_after_hh.csv @@ -3,7 +3,7 @@ Description,Target,Expression #,, adults get full hh_value_of_time and children get 60% ,_hh_vot,"reindex(households.hh_value_of_time, persons.household_id)" ,value_of_time,"_hh_vot.where(persons.age>=18, _hh_vot * 0.667)" -,_hh_income,"reindex(households.HINCP, persons.household_id)" +,_hh_income,"reindex(households.hincp, persons.household_id)" ,_num_adults,"reindex(households.num_adults, persons.household_id)" ,_num_predrive_child,"reindex(households.num_predrive_child, persons.household_id)" ,_num_nonworker_adults,"reindex(households.num_nonworker_adults, persons.household_id)" diff --git a/activitysim/examples/example_semcog/configs/annotate_persons_cdap.csv b/activitysim/examples/example_semcog/configs/annotate_persons_cdap.csv index d1344ea4a..4ae7a444b 100755 --- a/activitysim/examples/example_semcog/configs/annotate_persons_cdap.csv +++ b/activitysim/examples/example_semcog/configs/annotate_persons_cdap.csv @@ -4,4 +4,4 @@ travel_active,travel_active,persons.cdap_activity != CDAP_ACTIVITY_HOME under16_not_at_school,under16_not_at_school,"persons.ptype.isin([PTYPE_SCHOOL, PTYPE_PRESCHOOL]) & persons.cdap_activity.isin(['N', 'H'])" has_preschool_kid_at_home,has_preschool_kid_at_home,"other_than(persons.household_id, (persons.ptype == PTYPE_PRESCHOOL) & (persons.cdap_activity == 'H'))" has_school_kid_at_home,has_school_kid_at_home,"other_than(persons.household_id, (persons.ptype == PTYPE_SCHOOL) & (persons.cdap_activity == 'H'))" -,cdap_activity,"np.where((persons.work_from_home) & (persons.cdap_activity=='M'), np.random.choice(['N','H']), persons.cdap_activity)" +#,cdap_activity,"np.where((persons.work_from_home) & (persons.cdap_activity=='M'), np.random.choice(['N','H']), persons.cdap_activity)" diff --git a/activitysim/examples/example_semcog/configs/annotate_persons_workplace.csv b/activitysim/examples/example_semcog/configs/annotate_persons_workplace.csv index 04d0c37b0..56524947f 100755 --- a/activitysim/examples/example_semcog/configs/annotate_persons_workplace.csv +++ b/activitysim/examples/example_semcog/configs/annotate_persons_workplace.csv @@ -30,3 +30,6 @@ work_zone_area_type,work_zone_area_type,"reindex(land_use.AreaType, persons.work ,work_auto_savings,"np.where(persons.is_worker, _min_work_walk_transit - roundtrip_auto_time_to_work, 0)" #,,auto savings over walk or transit capped at 120 and normalized to unity ,work_auto_savings_ratio,"(work_auto_savings / 120.0).clip(-1.0, 1.0)" +,umich_student,df.school_zone_id.isin(land_use[land_use.University_Name=='University of Michigan'].index.values) +,umich_worker,df.workplace_zone_id.isin(land_use[land_use.University_Name=='University of Michigan'].index.values) +#,umich_affiliate,"df.get(umich_worker, default=False) | df.get(umich_student, default=False)" diff --git a/activitysim/examples/example_semcog/configs/atwork_subtour_destination.csv b/activitysim/examples/example_semcog/configs/atwork_subtour_destination.csv index 7f97ca84c..e76160df6 100755 --- a/activitysim/examples/example_semcog/configs/atwork_subtour_destination.csv +++ b/activitysim/examples/example_semcog/configs/atwork_subtour_destination.csv @@ -4,8 +4,6 @@ util_dist,util_dist,@_DIST,coef_dist_atwork util_dist_squared,util_dist_squared,"@(_DIST).clip(0,20)**2",coef_dist_squared_atwork util_dist_cubed,util_dist_cubed,"@(_DIST).clip(0,20)**3",coef_dist_cubed_atwork util_dist_logged,util_dist_logged,@(_DIST).apply(np.log1p),coef_dist_logged_atwork -# util_size_variable_atwork,Size variable atwork,@df['atwork'].apply(np.log1p),coef_size_variable_atwork -# util_no_attractions_atwork_size_variable_is_0,"No attractions, atwork size variable is 0",atwork==0,coef_no_attractions_atwork_size_variable_is_0 util_size_variable_atwork,Size variable atwork,@df['size_term'].apply(np.log1p),coef_size_variable_atwork util_no_attractions_atwork_size_variable_is_0,"No attractions, atwork size variable is 0",size_term==0,coef_no_attractions_atwork_size_variable_is_0 util_mode_choice_logsum,Mode choice logsum,mode_choice_logsum,coef_mode_choice_logsum_atwork diff --git a/activitysim/examples/example_semcog/configs/atwork_subtour_destination_sample.csv b/activitysim/examples/example_semcog/configs/atwork_subtour_destination_sample.csv index 944956e60..f58d165b6 100755 --- a/activitysim/examples/example_semcog/configs/atwork_subtour_destination_sample.csv +++ b/activitysim/examples/example_semcog/configs/atwork_subtour_destination_sample.csv @@ -4,7 +4,5 @@ util_dist,util_dist,@_DIST,coef_dist_atwork util_dist_squared,util_dist_squared,"@(_DIST).clip(0,20)**2",coef_dist_squared_atwork util_dist_cubed,util_dist_cubed,"@(_DIST).clip(0,20)**3",coef_dist_cubed_atwork util_dist_logged,util_dist_logged,@(_DIST).apply(np.log1p),coef_dist_logged_atwork -# util_size_variable_atwork,Size variable atwork,@df['atwork'].apply(np.log1p),coef_size_variable_atwork -# util_no_attractions_atwork_size_variable_is_0,"No attractions, atwork size variable is 0",atwork==0,coef_no_attractions_atwork_size_variable_is_0 util_size_variable_atwork,Size variable atwork,@df['size_term'].apply(np.log1p),coef_size_variable_atwork util_no_attractions_atwork_size_variable_is_0,"No attractions, atwork size variable is 0",size_term==0,coef_no_attractions_atwork_size_variable_is_0 diff --git a/activitysim/examples/example_semcog/configs/auto_ownership.csv b/activitysim/examples/example_semcog/configs/auto_ownership.csv index 66bde074b..37070bf21 100755 --- a/activitysim/examples/example_semcog/configs/auto_ownership.csv +++ b/activitysim/examples/example_semcog/configs/auto_ownership.csv @@ -1,25 +1,21 @@ Label,Description,Expression,cars0,cars1,cars2,cars3,cars4 -util_drivers_2,2 Adults (age 16+),num_drivers==2,,coef_cars1_drivers_2,coef_cars2_drivers_2,coef_cars3_drivers_2,coef_cars4_drivers_2 -util_drivers_3,3 Adults (age 16+),num_drivers==3,,coef_cars1_drivers_3,coef_cars2_drivers_3,coef_cars3_drivers_3,coef_cars4_drivers_3 -util_drivers_4_up,4+ Adults (age 16+),num_drivers>3,,coef_cars1_drivers_4_up,coef_cars2_drivers_4_up,coef_cars3_drivers_4_up,coef_cars4_drivers_4_up +util_drivers_1,1 Adult (age 16+),num_drivers==1,,coef_cars1_drivers_1,coef_cars2_drivers_1,coef_cars3_drivers_1,coef_cars4_drivers_1 +util_drivers_2,2 Adult (age 16+),num_drivers==2,,coef_cars1_drivers_2,coef_cars2_drivers_2,coef_cars3_drivers_2,coef_cars4_drivers_2 +util_drivers_3_up,3+ Adults (age 16+),num_drivers>=3,,coef_cars1_drivers_3_up,coef_cars2_drivers_3_up,coef_cars3_drivers_3_up,coef_cars4_drivers_3_up util_persons_16_17,Persons age 16-17,num_children_16_to_17,,coef_cars1_persons_16_17,coef_cars2_persons_16_17,coef_cars34_persons_16_17,coef_cars34_persons_16_17 util_persons_18_24,Persons age 18-24,num_college_age,,coef_cars1_persons_18_24,coef_cars2_persons_18_24,coef_cars34_persons_18_24,coef_cars34_persons_18_24 util_persons_25_34,Persons age 35-34,num_young_adults,,coef_cars1_persons_25_34,coef_cars2_persons_25_34,coef_cars34_persons_25_34,coef_cars34_persons_25_34 -util_presence_children_0_4,Presence of children age 0-4,num_young_children>0,,coef_cars1_presence_children_0_4,coef_cars234_presence_children_0_4,coef_cars234_presence_children_0_4,coef_cars234_presence_children_0_4 +util_presence_children_0_4,Presence of children age 0-4,num_young_children>0,,coef_cars1_presence_children_0_4,coef_cars2_presence_children_0_4,coef_cars34_presence_children_0_4,coef_cars34_presence_children_0_4 util_presence_children_5_17,Presence of children age 5-17,(num_children_5_to_15+num_children_16_to_17)>0,,coef_cars1_presence_children_5_17,coef_cars2_presence_children_5_17,coef_cars34_presence_children_5_17,coef_cars34_presence_children_5_17 -util_num_workers_clip_3,"Number of workers, capped at 3",@df.num_workers.clip(upper=3),,coef_cars1_num_workers_clip_3,coef_cars2_num_workers_clip_3,coef_cars3_num_workers_clip_3,coef_cars4_num_workers_clip_3 -util_hh_income_0_30k,"Piecewise Linear household income, $0-30k","@df.income_in_thousands.clip(0, 30)",,coef_cars1_hh_income_0_30k,coef_cars2_hh_income_0_30k,coef_cars3_hh_income_0_30k,coef_cars4_hh_income_0_30k -util_hh_income_30_75k,"Piecewise Linear household income, $30-75k","@(df.income_in_thousands-30).clip(0, 45)",,coef_cars1_hh_income_30_up,coef_cars2_hh_income_30_up,coef_cars3_hh_income_30_up,coef_cars4_hh_income_30_up -util_hh_income_75k_up,"Piecewise Linear household income, $75k+, capped at $125k","@(df.income_in_thousands-75).clip(0, 50)",,coef_cars1_hh_income_30_up,coef_cars2_hh_income_30_up,coef_cars3_hh_income_30_up,coef_cars4_hh_income_30_up -util_density_0_10_no_workers,"Density index up to 10, if 0 workers","@(df.num_workers==0)*df.density_index.clip(0, 10)",,coef_cars1_density_0_10_no_workers,coef_cars2_density_0_10_no_workers,coef_cars34_density_0_10_no_workers,coef_cars34_density_0_10_no_workers -util_density_10_up_no_workers,"Density index in excess of 10, if 0 workers",@(df.num_workers==0)*(df.density_index-10).clip(0),,coef_cars1_density_10_up_no_workers,coef_cars2_density_10_up_no_workers,coef_cars34_density_10_up_no_workers,coef_cars34_density_10_up_no_workers -util_density_0_10_workers,"Density index up to 10, if 1+ workers","@(df.num_workers>0)*df.density_index.clip(0, 10)",,coef_cars1_density_0_10_no_workers,coef_cars2_density_0_10_no_workers,coef_cars34_density_0_10_no_workers,coef_cars34_density_0_10_no_workers -util_density_10_up_workers,"Density index in excess of 10, if 1+ workers",@(df.num_workers>0)*(df.density_index-10).clip(0),,coef_cars1_density_10_up_workers,coef_cars2_density_10_up_no_workers,coef_cars34_density_10_up_no_workers,coef_cars34_density_10_up_no_workers -util_asc,Constants,1,,coef_cars1_asc,coef_cars2_asc,coef_cars3_asc,coef_cars4_asc -util_retail_auto_no_workers,"Retail accessibility (0.66*PK + 0.34*OP) by auto, if 0 workers",(num_workers==0)*(0.66*auPkRetail+0.34*auOpRetail),,coef_retail_auto_no_workers,coef_retail_auto_no_workers,coef_retail_auto_no_workers,coef_retail_auto_no_workers -util_retail_auto_workers,"Retail accessibility (0.66*PK + 0.34*OP) by auto, if 1+ workers",(num_workers>0)*(0.66*auPkRetail+0.34*auOpRetail),,coef_retail_auto_workers,coef_retail_auto_workers,coef_retail_auto_workers,coef_retail_auto_workers -util_retail_transit_no_workers,"Retail accessibility (0.66*PK + 0.34*OP) by transit, if 0 workers",(num_workers==0)*(0.66*trPkRetail+0.34*trOpRetail),,coef_retail_transit_no_workers,coef_retail_transit_no_workers,coef_retail_transit_no_workers,coef_retail_transit_no_workers -util_retail_transit_workers,"Retail accessibility (0.66*PK + 0.34*OP) by transit, if 1+ workers",(num_workers>0)*(0.66*trPkRetail+0.34*trOpRetail),,coef_retail_transit_workers,coef_retail_transit_workers,coef_retail_transit_workers,coef_retail_transit_workers -util_retail_non_motor_no_workers,"Retail accessibility by non-motorized, if 0 workers",(num_workers==0)*nmRetail,,coef_retail_non_motor,coef_retail_non_motor,coef_retail_non_motor,coef_retail_non_motor -util_retail_non_motor_workers,"Retail accessibility by non-motorized, if 1+ workers",(num_workers>0)*nmRetail,,coef_retail_non_motor,coef_retail_non_motor,coef_retail_non_motor,coef_retail_non_motor +util_num_workers_clip_3,Number of workers capped at 3,@df.num_workers.clip(upper=3),,coef_cars1_num_workers_clip_3,coef_cars2_num_workers_clip_3,coef_cars3_num_workers_clip_3,coef_cars4_num_workers_clip_3 +util_hh_income_0_15k,Piecewise Linear household income $0-15k,income_in_thousands < 15,,coef_cars1_hh_income_0_15k,coef_cars2_hh_income_0_15k,coef_cars3_hh_income_0_15k,coef_cars4_hh_income_0_15k +util_hh_income_15_35k,Piecewise Linear household income $15-35k,(income_in_thousands >= 15) & (income_in_thousands<35),,coef_cars1_hh_income_15_35k,coef_cars2_hh_income_15_35k,coef_cars3_hh_income_15_35k,coef_cars4_hh_income_15_35k +util_hh_income_35_50k,Piecewise Linear household income $35-50k,(income_in_thousands >= 35) & (income_in_thousands<50),,coef_cars1_hh_income_35_50k,coef_cars2_hh_income_35_50k,coef_cars3_hh_income_35_50k,coef_cars4_hh_income_35_50k +util_hh_income_50_75k,Piecewise Linear household income $50-75k,(income_in_thousands >= 50) & (income_in_thousands<75),,coef_cars1_hh_income_50_75k,coef_cars2_hh_income_50_75k,coef_cars3_hh_income_50_75k,coef_cars4_hh_income_50_75k +util_density,Density index,@df.density_index,,coef_cars1_density,coef_cars2_density,coef_cars3_density,coef_cars4_density +util_retail_transit,Retail accessibility (0.66*PK + 0.34*OP) by transit,(0.66*trPkRetail+0.34*trOpRetail),,coef_cars1_retail_transit,coef_cars2_retail_transit,coef_cars3_retail_transit,coef_cars4_retail_transit +util_retail_non_motor,Retail accessibility by non-motorized,nmRetail,,coef_cars1_retail_non_motor,coef_cars2_retail_non_motor,coef_cars3_retail_non_motor,coef_cars4_retail_non_motor util_auto_time_saving_per_worker,Auto time savings per worker to work,"@np.where(df.num_workers > 0, df.hh_work_auto_savings_ratio / df.num_workers, 0)",,coef_cars1_auto_time_saving_per_worker,coef_cars2_auto_time_saving_per_worker,coef_cars3_auto_time_saving_per_worker,coef_cars4_auto_time_saving_per_worker +util_univ_students_GQ,University Students living in GQ households,(num_college_age > 0) & (type == 3),,coef_cars1_univ_GQ,coef_unavailable,coef_unavailable,coef_unavailable +util_constants,Alternative-specific constants,1,,coef_cars1,coef_cars2,coef_cars3,coef_cars4 +util_detroit,district specific constant,home_in_detroit,coef_detroit,0,0,,0 diff --git a/activitysim/examples/example_semcog/configs/auto_ownership_coeffs.csv b/activitysim/examples/example_semcog/configs/auto_ownership_coeffs.csv index 945d91674..0770a90fd 100755 --- a/activitysim/examples/example_semcog/configs/auto_ownership_coeffs.csv +++ b/activitysim/examples/example_semcog/configs/auto_ownership_coeffs.csv @@ -1,68 +1,71 @@ coefficient_name,value,constrain -coef_cars1_drivers_2,0.0,T -coef_cars1_drivers_3,0.0,T -coef_cars1_persons_16_17,0.0,T -coef_cars234_asc_marin,0.0,T -coef_cars1_persons_25_34,0.0,T -coef_cars1_num_workers_clip_3,0.0,T -coef_cars1_hh_income_30_up,0.0,T -coef_cars1_density_0_10_no_workers,0.0,T -coef_cars1_density_10_up_workers,-0.0006916064567687393,F -coef_retail_non_motor,-0.03,T -coef_cars4_asc,-2.1157137267630084,F -coef_cars3_asc,-0.5389664867851066,F -coef_cars34_persons_16_17,-1.0131713092471806,F -coef_cars2_asc,0.5089927738334394,F -coef_cars34_persons_18_24,-0.22633082627703238,F -coef_cars2_persons_18_24,-0.2779863655452459,F -coef_cars2_persons_16_17,-0.8499905464429038,F -coef_cars34_persons_25_34,-0.5072697829616668,F -coef_cars1_asc_county,-0.5660000000000001,F -coef_retail_transit_workers,-0.26599406864996145,F -coef_cars2_persons_25_34,-0.2845857507016052,F -coef_cars2_asc_county,-0.4429,F -coef_cars1_persons_18_24,0.3122834693531618,F -coef_cars34_density_0_10_no_workers,-1.0611910844303392,F -coef_retail_transit_no_workers,-0.4610891860644177,F -coef_cars1_asc_marin,-0.2434,F -coef_cars34_asc_county,-0.2372,F -coef_cars2_density_0_10_no_workers,-0.4334566014350984,F -coef_cars34_density_10_up_no_workers,-0.1766,T -coef_cars2_density_10_up_no_workers,0.22349472733850723,F -coef_cars2_density_10_up_workers,-0.1106,F -coef_cars1_density_10_up_no_workers,-0.6278796181279449,F -coef_cars2_hh_income_30_up,0.013802348149352129,F -coef_cars3_hh_income_30_up,0.01756826620528943,F -coef_cars4_hh_income_30_up,0.020241067403575532,F -coef_cars1_presence_children_5_17,0.2201929251562138,F -coef_cars1_hh_income_0_30k,0.08754817729196587,F -coef_cars2_hh_income_0_30k,0.11363199169081308,F -coef_cars3_hh_income_0_30k,0.10919644885632351,F -coef_cars4_hh_income_0_30k,0.12371561063030768,F -coef_retail_auto_no_workers,-0.27201647971031934,F -coef_cars34_asc_san_francisco,0.1458,F -coef_retail_auto_workers,-0.3440504516404184,F -coef_cars2_presence_children_5_17,0.3267549927594411,F -coef_cars2_num_workers_clip_3,0.7131266645999695,F -coef_cars1_presence_children_0_4,-0.13410330297845457,F -coef_cars1_asc_san_francisco,0.4259,F -coef_cars2_asc_san_francisco,0.4683,F -coef_cars1_auto_time_saving_per_worker,1.3138947141281918,F -coef_cars34_presence_children_5_17,0.09288972465342095,F -coef_cars3_auto_time_saving_per_worker,0.9830482363478317,F -coef_cars2_auto_time_saving_per_worker,1.0902251470013522,F -coef_cars3_num_workers_clip_3,1.000861534518726,F -coef_cars234_presence_children_0_4,0.049938987712858804,F -coef_cars4_auto_time_saving_per_worker,0.8990148505984551,F -coef_cars4_num_workers_clip_3,1.079450657634896,F -coef_cars1_asc,3.1493581264401556,F -coef_cars1_drivers_4_up,-1.4515192922101592,F -coef_cars4_drivers_2,2.4056683705077937,F -coef_cars2_drivers_2,2.817372734348654,F -coef_cars3_drivers_2,2.6801310124351496,F -coef_cars2_drivers_3,2.5819723625758484,F -coef_cars4_drivers_3,3.964857311371601,F -coef_cars3_drivers_3,4.277120564378806,F -coef_cars2_drivers_4_up,1.5182056527267993,F -coef_cars3_drivers_4_up,3.4916291197074343,F -coef_cars4_drivers_4_up,4.509213244436791,F +coef_cars1_auto_time_saving_per_worker,1.267731536,F +coef_cars1_density,0,T +coef_cars1_drivers_1,-0.221851119,F +coef_cars1_drivers_2,0,T +coef_cars1_drivers_3_up,-0.327406838,F +coef_cars1_hh_income_0_15k,-2.408125175,F +coef_cars1_hh_income_15_35k,-1.073613602,F +coef_cars1_hh_income_35_50k,0,T +coef_cars1_hh_income_50_75k,0,T +coef_cars1_num_workers_clip_3,-0.349958946,F +coef_cars1_persons_16_17,-0.527267751,F +coef_cars1_persons_18_24,0.275752272,F +coef_cars1_persons_25_34,0,T +coef_cars1_presence_children_0_4,0,T +coef_cars1_presence_children_5_17,0.317544897,F +coef_cars1_retail_non_motor,0.114175834,F +coef_cars1_retail_transit,-0.445187281,F +coef_cars1_univ_GQ,-3.562778707,T +coef_cars2_auto_time_saving_per_worker,0.842300469,F +coef_cars2_density,-0.050128,F +coef_cars2_drivers_1,-3.037192815,F +coef_cars2_drivers_2,0,T +coef_cars2_drivers_3_up,-0.444345635,F +coef_cars2_hh_income_0_15k,-3.914164119,F +coef_cars2_hh_income_15_35k,-2.310358534,F +coef_cars2_hh_income_35_50k,-0.771553354,F +coef_cars2_hh_income_50_75k,-0.560352604,F +coef_cars2_num_workers_clip_3,0.492740312,F +coef_cars2_persons_16_17,-1.314727214,F +coef_cars2_persons_18_24,-0.238263813,F +coef_cars2_persons_25_34,-0.256626454,F +coef_cars2_presence_children_0_4,0,T +coef_cars2_presence_children_5_17,0.471107313,F +coef_cars2_retail_non_motor,0,T +coef_cars2_retail_transit,-0.715426592,F +coef_cars3_auto_time_saving_per_worker,0.784524249,F +coef_cars3_density,-0.543254863,F +coef_cars3_drivers_1,-2.932890835,F +coef_cars3_drivers_2,0,T +coef_cars3_drivers_3_up,1.275725253,F +coef_cars3_hh_income_0_15k,-4.062511515,F +coef_cars3_hh_income_15_35k,-2.740110458,F +coef_cars3_hh_income_35_50k,-1.070997379,F +coef_cars3_hh_income_50_75k,-0.753498405,F +coef_cars3_num_workers_clip_3,0.744525851,F +coef_cars3_retail_non_motor,0,T +coef_cars3_retail_transit,-0.801748025,F +coef_cars34_persons_16_17,-1.36492373,F +coef_cars34_persons_18_24,0,T +coef_cars34_persons_25_34,-0.366690141,F +coef_cars34_presence_children_0_4,-0.452561034,F +coef_cars34_presence_children_5_17,0.329266752,F +coef_cars4_auto_time_saving_per_worker,0.464441997,F +coef_cars4_density,-0.792923152,F +coef_cars4_drivers_1,-2.569773957,F +coef_cars4_drivers_2,0,T +coef_cars4_drivers_3_up,1.673160466,F +coef_cars4_hh_income_0_15k,-4.429080438,F +coef_cars4_hh_income_15_35k,-3.076526903,F +coef_cars4_hh_income_35_50k,-1.10314316,F +coef_cars4_hh_income_50_75k,-0.804372937,F +coef_cars4_num_workers_clip_3,0.983585589,F +coef_cars4_retail_non_motor,0,T +coef_cars4_retail_transit,-0.776033768,F +coef_unavailable,-999,T +coef_cars1,2.952495312,F +coef_cars2,5.331045734,F +coef_cars3,4.309346217,F +coef_cars4,3.155918802,F +coef_detroit,0.25, diff --git a/activitysim/examples/example_semcog/configs/cdap.yaml b/activitysim/examples/example_semcog/configs/cdap.yaml index 3c4cc5719..1a9d53e6d 100755 --- a/activitysim/examples/example_semcog/configs/cdap.yaml +++ b/activitysim/examples/example_semcog/configs/cdap.yaml @@ -1,10 +1,8 @@ COEFFICIENTS: _dummy_coefficients.csv -INTERACTION_COEFFICIENTS: cdap_interaction_coefficients.csv INDIV_AND_HHSIZE1_SPEC: cdap_indiv_and_hhsize1.csv FIXED_RELATIVE_PROPORTIONS_SPEC: cdap_fixed_relative_proportions.csv - CONSTANTS: FULL: 1 PART: 2 diff --git a/activitysim/examples/example_semcog/configs/cdap_indiv_and_hhsize1.csv b/activitysim/examples/example_semcog/configs/cdap_indiv_and_hhsize1.csv index 8768a9e42..b8600ff13 100755 --- a/activitysim/examples/example_semcog/configs/cdap_indiv_and_hhsize1.csv +++ b/activitysim/examples/example_semcog/configs/cdap_indiv_and_hhsize1.csv @@ -49,6 +49,13 @@ University student interaction with off-peak accessibility to retail,(ptype == 3 Driving-age child who is in school interaction with off-peak accessibility to retail,(ptype == 6) * auOpRetail,,0.08233, Pre-driving-age child who is in school interaction with off-peak accessibility to retail,(ptype == 7) * auOpRetail,,0.08233, Pre-driving-age child who is too young for school interaction with off-peak accessibility to retail,(ptype == 8) * auOpRetail,,0.08233, +# University Student CDAP calibration,,,, +working university student in non-family housing,(ptype == 3) & (is_worker) & (hht >= 4),0.0959892286938419,-0.5653157666171066, +working university student in family housing,(ptype == 3) & (is_worker) & (hht < 4) & (type != 3),0.16088350372344598,-0.9394837517087071, +working university student in GQ housing,(ptype == 3) & (is_worker) & (hht < 4) & (type == 3),0.273268828618079,-1.2556696279944286, +non-working university student in non-family housing,(ptype == 3) & (~is_worker) & (hht >= 4),0.16573332752946932,-1.2223963004171414, +non-working university student in family housing,(ptype == 3) & (~is_worker) & (hht < 4) & (type != 3),0.058646779881048675,-0.22458840819910103, +non-working university student in GQ housing,(ptype == 3) & (~is_worker) & (hht < 4) & (type == 3),0.2231239703501062,-1.1839396062896261, # commented out because not used in mtctm1,,,, # Full-time worker interaction with usual work location is home,(ptype == 1) * usualWorkLocationIsHome,-1.758,,0.1813 # Part-time worker interaction with usual work location is home,(ptype == 2) * usualWorkLocationIsHome,-1.758,,0.1813 diff --git a/activitysim/examples/example_semcog/configs/destination_choice_size_terms.csv b/activitysim/examples/example_semcog/configs/destination_choice_size_terms.csv index ceb2a3591..1bdc4fad2 100755 --- a/activitysim/examples/example_semcog/configs/destination_choice_size_terms.csv +++ b/activitysim/examples/example_semcog/configs/destination_choice_size_terms.csv @@ -14,12 +14,12 @@ non_mandatory,social,0.487,0,0,0,0,0,0,0,0,0,0,0,0,0.244,0,0.177,1,0,0,0,0,0 non_mandatory,othdiscr,0.184,0,0,0,0,0.185,0,0,0,0,0,0,0,0.899,0.511,0.004,1.081,1,0,0,0,0 atwork,atwork,0.03,0,0,0,0.049,1,0,0,0,0.141,0,0,0.482,0.048,0.092,0.013,0,0,0.053,0,0,0 trip,work,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0 -trip,escort,0.001,0,0,0,0,0.225,0,0,0,0,0,0,0,0.144,0.144,0.144,0.144,0,0,0.465,0.166,0 -trip,shopping,0.001,0,0,0,0,0.999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -trip,eatout,0,0,0,0,0,0.742,0,0,0,0,0,0,0,0.258,0.258,0.258,0.258,0,0,0,0,0 -trip,othmaint,0.001,0,0,0,0,0.481,0,0,0,0,0,0,0,0.518,0.518,0.518,0.518,0,0,0,0,0 -trip,social,0.001,0,0,0,0,0.521,0,0,0,0,0,0,0,0.478,0.478,0.478,0.478,0,0,0,0,0 -trip,othdiscr,0.252,0,0,0,0,0.212,0,0,0,0,0,0,0,0.273,0.273,0.273,0.273,0.165,0.165,0,0.098,0 +trip,escort,0.192,0,0,0,0,0.188,0,0,0,0,0,0,0,0,0.164,0.078,0.791,0,0,1,0.768,0 +trip,shopping,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0.005,0.003,0,0,0,0 +trip,eatout,0.004,0,0,0,0,0.283,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +trip,othmaint,0.029,0,0,0,0.026,0.587,0,0,0,0.268,0,0,0.445,0.161,1,0.556,0.336,0.501,0.478,0,0,0 +trip,social,0.487,0,0,0,0,0,0,0,0,0,0,0,0,0.244,0,0.177,1,0,0,0,0,0 +trip,othdiscr,0.184,0,0,0,0,0.185,0,0,0,0,0,0,0,0.899,0.511,0.004,1.081,1,0,0,0,0 trip,univ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 # not needed as school is not chosen as an intermediate trip destination,,,,,,,,,,,,,,,,,,,,,,,0 #trip,gradeschool,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/activitysim/examples/example_semcog/configs/mandatory_tour_frequency.csv b/activitysim/examples/example_semcog/configs/mandatory_tour_frequency.csv index 17f68125a..b5b72f05d 100755 --- a/activitysim/examples/example_semcog/configs/mandatory_tour_frequency.csv +++ b/activitysim/examples/example_semcog/configs/mandatory_tour_frequency.csv @@ -99,3 +99,9 @@ util_availability_pre_driving_age_student,Unavailable: Pre-driving age child who util_availability_pre_driving_age_not_in_school,Unavailable: Pre-driving age child who is not in school,ptype == 8,coef_unavailable,coef_unavailable,,coef_unavailable,coef_unavailable util_availability_work_tours_no_usual_work_location,Unavailable: Work tours for those with no usual work location,~(workplace_zone_id > -1),coef_unavailable,coef_unavailable,,,coef_unavailable util_availability_school_tours_no_usual_school_location,Unavailable: School tours for those with no usual school location,~(school_zone_id > -1),,,coef_unavailable,coef_unavailable,coef_unavailable +util_univ_worker_non_family,working university student in non-family housing,(ptype == 3) & (is_worker) & (hht >= 4),coef_univ_worker_non_family_work1,coef_univ_worker_non_family_work2,0,coef_univ_worker_non_family_school2,coef_univ_worker_non_family_work_and_school +util_univ_worker_family,working university student in family housing,(ptype == 3) & (is_worker) & (hht < 4) & (type != 3),coef_univ_worker_family_work1,coef_univ_worker_family_work2,0,coef_univ_worker_family_school2,coef_univ_worker_family_work_and_school +util_univ_worker_GQ,working university student in GQ housing,(ptype == 3) & (is_worker) & (hht < 4) & (type == 3),coef_univ_worker_GQ_work1,coef_univ_worker_GQ_work2,0,coef_univ_worker_GQ_school2,coef_univ_worker_GQ_work_and_school +util_univ_non_worker_non_family,non_working university student in non_family housing,(ptype == 3) & (~is_worker) & (hht >= 4),coef_unavailable,coef_unavailable,0,coef_univ_non_worker_non_family_school2,coef_unavailable +util_univ_non_worker_family,non_working university student in family housing,(ptype == 3) & (~is_worker) & (hht < 4) & (type != 3),coef_unavailable,coef_unavailable,0,coef_univ_non_worker_family_school2,coef_unavailable +util_univ_non_worker_GQ,non_working university student in GQ housing,(ptype == 3) & (~is_worker) & (hht < 4) & (type == 3),coef_unavailable,coef_unavailable,0,coef_univ_non_worker_GQ_school2,coef_unavailable diff --git a/activitysim/examples/example_semcog/configs/mandatory_tour_frequency_coeffs.csv b/activitysim/examples/example_semcog/configs/mandatory_tour_frequency_coeffs.csv index d712395c0..8c8fb17db 100755 --- a/activitysim/examples/example_semcog/configs/mandatory_tour_frequency_coeffs.csv +++ b/activitysim/examples/example_semcog/configs/mandatory_tour_frequency_coeffs.csv @@ -1,5 +1,20 @@ coefficient_name,value,constrain -coef_unavailable,-999,T +coef_univ_non_worker_GQ_school2,1.1053061791972465,F +coef_univ_non_worker_family_school2,0.4144309804926236,F +coef_univ_non_worker_non_family_school2,0.6905737525503568,F +coef_univ_worker_GQ_school2,0.796660924210737,F +coef_univ_worker_GQ_work1,-1.1776031331447314,F +coef_univ_worker_GQ_work2,-1.3648970409025836,F +coef_univ_worker_GQ_work_and_school,0.14803997146655884,F +coef_univ_worker_family_school2,0.6628398162232699,F +coef_univ_worker_family_work1,-0.46637447728018944,F +coef_univ_worker_family_work2,-1.0892026364474372,F +coef_univ_worker_family_work_and_school,-0.39187199562394276,F +coef_univ_worker_non_family_school2,0.5788696920089542,F +coef_univ_worker_non_family_work1,-0.8581057975250049,F +coef_univ_worker_non_family_work2,-1.9822014482680475,F +coef_univ_worker_non_family_work_and_school,-0.538294137808463,F +coef_unavailable,-999.0,T coef_ft_worker_work2_asc,-3.3781,F coef_pt_worker_work2_asc,-3.0476,F coef_univ_work1_asc,-2.630262534,F @@ -44,11 +59,11 @@ coef_hh_income_gt_50k_worker_work_and_school,0.0347,F coef_hh_income_gt_50k_student_work_and_school,-0.0528,F coef_non_family_hh_category1,-0.25,F coef_non_family_hh_category2,-0.1792,F -coef_num_under_16_not_at_school_work2,0.1804, -coef_num_under_16_not_at_school_school2,0.0866, -coef_num_under_16_not_at_school_work_and_school,-0.1955, -coef_home_urban_work1,-0.2831, -coef_home_urban_work2,0.2308, -coef_home_urban_school1,-0.1361, -coef_home_urban_school2,0.317, -coef_home_urban_work_and_school,-0.3509, +coef_num_under_16_not_at_school_work2,0.1804,F +coef_num_under_16_not_at_school_school2,0.0866,F +coef_num_under_16_not_at_school_work_and_school,-0.1955,F +coef_home_urban_work1,-0.2831,F +coef_home_urban_work2,0.2308,F +coef_home_urban_school1,-0.1361,F +coef_home_urban_school2,0.317,F +coef_home_urban_work_and_school,-0.3509,F diff --git a/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling.yaml b/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling.yaml index 7e74373cb..540236495 100755 --- a/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling.yaml +++ b/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling.yaml @@ -20,8 +20,6 @@ SIMULATE_CHOOSER_COLUMNS: - school_zone_id - home_zone_id - TAZ - - transit_pass_ownership - - transit_pass_subsidy LOGSUM_SETTINGS: tour_mode_choice.yaml diff --git a/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling_annotate_tours_preprocessor.csv b/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling_annotate_tours_preprocessor.csv deleted file mode 100755 index 68e51af19..000000000 --- a/activitysim/examples/example_semcog/configs/mandatory_tour_scheduling_annotate_tours_preprocessor.csv +++ /dev/null @@ -1,4 +0,0 @@ -Description,Target,Expression -departure_shift,departureLinearShift1,"np.minimum(9-df.start,48)*(df.start<=9) + np.minimum(df.start-9,21)*(df.start>9)" -arrival_shift,arrivalLinearShift1,"np.minimum(30-df.end,48)*(df.end<=30) + np.minimum(df.end-30,21)*(df.end>30)" -duration_shift,durationShift,"(np.minimum(21-df.duration,47)*(df.duration<=20)) + (np.minimum(df.duration-21,20)*(df.duration>21))" diff --git a/activitysim/examples/example_semcog/configs/network_los.yaml b/activitysim/examples/example_semcog/configs/network_los.yaml index 769bffb58..0749b39f7 100755 --- a/activitysim/examples/example_semcog/configs/network_los.yaml +++ b/activitysim/examples/example_semcog/configs/network_los.yaml @@ -1,14 +1,17 @@ # read cached skims (using numpy memmap) from output directory (memmap is faster than omx ) read_skim_cache: False # write memmapped cached skims to output directory after reading from omx, for use in subsequent runs -write_skim_cache: True +write_skim_cache: False + +#alternate dir to read/write skim cache (defaults to output_dir) +#cache_dir: data/cache zone_system: 1 -taz_skims: skims*.omx +taz_skims: skims.omx skim_time_periods: time_window: 1440 period_minutes: 30 periods: [0, 6, 12, 24, 32, 48] - labels: ['EA', 'AM', 'MD', 'PM', 'EV'] + labels: ['EA', 'AM', 'MD', 'PM', 'EV'] \ No newline at end of file diff --git a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling.yaml b/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling.yaml index 34b5a9a8e..02c0e0ab4 100644 --- a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling.yaml +++ b/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling.yaml @@ -72,7 +72,7 @@ SPEC_SEGMENTS: ## alts preprocessor keyed by #ALTS_PREPROCESSOR: # escort: -# SPEC: non_mandatory_tour_scheduling_escort_annotate_alts_preprocessor.csv +# SPEC: tour_scheduling_nonmandatory_escort_annotate_alts_preprocessor.csv # DF: alt_tdd # shopping: # SPEC: non_mandatory_tour_scheduling_shopping_annotate_alts_preprocessor.csv diff --git a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_alts_preprocessor.csv b/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_alts_preprocessor.csv deleted file mode 100644 index 3f3110621..000000000 --- a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_alts_preprocessor.csv +++ /dev/null @@ -1,15 +0,0 @@ -Description,Target,Expression -#,, -departure_shift_generic,departureLinearShift1_generic,"(alt_tdd.start<=10) * np.minimum(10-alt_tdd.start,7) + (alt_tdd.start>10) * np.minimum(alt_tdd.start-10,35)" -arrival_shift_generic,arrivalLinearShift1_generic,"(alt_tdd.end<=11) * np.minimum(11-alt_tdd.end,7) + (alt_tdd.end>11) * np.minimum(alt_tdd.end-11,35)" -departure_shift2_generic,departureLinearShift2_generic,"(alt_tdd.start<=24) * np.minimum(24-alt_tdd.start,3) + (alt_tdd.start>24) * np.minimum(alt_tdd.start-24,9)" -arrival_shift2_generic,arrivalLinearShift2_generic,"(alt_tdd.end<=25) * np.minimum(25-alt_tdd.end,3) + (alt_tdd.end>25) * np.minimum(alt_tdd.end-25,9)" -duration_shift_generic,durationShift_generic,"(alt_tdd.duration<=1) * np.minimum(1-alt_tdd.duration, 0) + (alt_tdd.duration>1) * np.minimum(alt_tdd.duration-1,47)" -#,, -depConstShift1_generic,depConstShift1_generic,"(alt_tdd.start<8) * np.minimum(8-alt_tdd.start,4) + (alt_tdd.start>13) * np.minimum(alt_tdd.start-13,28)" -depConstShift2_generic,depConstShift2_generic,"(alt_tdd.start<0) * np.minimum(0-alt_tdd.start,48) + (alt_tdd.start>26) * np.minimum(alt_tdd.start-26,15)" -arrConstShift1_generic,arrConstShift1_generic,"(alt_tdd.end<8) * np.minimum(8-alt_tdd.end,2) + (alt_tdd.end>13) * np.minimum(alt_tdd.end-13,30)" -arrConstShift2_generic,arrConstShift2_generic,"(alt_tdd.end<0) * np.minimum(0-alt_tdd.end,48) + (alt_tdd.start>28) * np.minimum(alt_tdd.end-28,15)" -#,, -,origin_to_destination_distance,1 -,num_person_joint_tours,1 diff --git a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_shifts_preprocessor.csv b/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_shifts_preprocessor.csv deleted file mode 100755 index c0b407c9d..000000000 --- a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_annotate_shifts_preprocessor.csv +++ /dev/null @@ -1,15 +0,0 @@ -Description,Target,Expression -#,, -departure_shift_escort,departureLinearShift1_escort,"(alt_tdd.start<=10) * np.minimum(10-alt_tdd.start,7) + (alt_tdd.start>10) * np.minimum(alt_tdd.start-10,35)" -arrival_shift_escort,arrivalLinearShift1_escort,"(alt_tdd.end<=11) * np.minimum(11-alt_tdd.end,7) + (alt_tdd.end>11) * np.minimum(alt_tdd.end-11,35)" -departure_shift2_escort,departureLinearShift2_escort,"(alt_tdd.start<=24) * np.minimum(24-alt_tdd.start,3) + (alt_tdd.start>24) * np.minimum(alt_tdd.start-24,9)" -arrival_shift2_escort,arrivalLinearShift2_escort,"(alt_tdd.end<=25) * np.minimum(25-alt_tdd.end,3) + (alt_tdd.end>25) * np.minimum(alt_tdd.end-25,9)" -duration_shift_escort,durationShift_escort,"(alt_tdd.duration<=1) * np.minimum(1-alt_tdd.duration, 0) + (alt_tdd.duration>1) * np.minimum(alt_tdd.duration-1,47)" -#,, -depConstShift1_escort,depConstShift1_escort,"(alt_tdd.start<8) * np.minimum(8-alt_tdd.start,4) + (alt_tdd.start>13) * np.minimum(alt_tdd.start-13,28)" -depConstShift2_escort,depConstShift2_escort,"(alt_tdd.start<0) * np.minimum(0-alt_tdd.start,48) + (alt_tdd.start>26) * np.minimum(alt_tdd.start-26,15)" -arrConstShift1_escort,arrConstShift1_escort,"(alt_tdd.end<8) * np.minimum(8-alt_tdd.end,2) + (alt_tdd.end>13) * np.minimum(alt_tdd.end-13,30)" -arrConstShift2_escort,arrConstShift2_escort,"(alt_tdd.end<0) * np.minimum(0-alt_tdd.end,48) + (alt_tdd.start>28) * np.minimum(alt_tdd.end-28,15)" -,, -,origin_to_destination_distance,1 -,num_person_joint_tours,1 diff --git a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_escort_annotate_alts_preprocessor.csv b/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_escort_annotate_alts_preprocessor.csv deleted file mode 100644 index 4d07acfb8..000000000 --- a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_escort_annotate_alts_preprocessor.csv +++ /dev/null @@ -1,15 +0,0 @@ -Description,Target,Expression -#,, -departure_shift_escort,departureLinearShift1_escort,"(alt_tdd.start<=10) * np.minimum(10-alt_tdd.start,7) + (alt_tdd.start>10) * np.minimum(alt_tdd.start-10,35)" -arrival_shift_escort,arrivalLinearShift1_escort,"(alt_tdd.end<=11) * np.minimum(11-alt_tdd.end,7) + (alt_tdd.end>11) * np.minimum(alt_tdd.end-11,35)" -departure_shift2_escort,departureLinearShift2_escort,"(alt_tdd.start<=24) * np.minimum(24-alt_tdd.start,3) + (alt_tdd.start>24) * np.minimum(alt_tdd.start-24,9)" -arrival_shift2_escort,arrivalLinearShift2_escort,"(alt_tdd.end<=25) * np.minimum(25-alt_tdd.end,3) + (alt_tdd.end>25) * np.minimum(alt_tdd.end-25,9)" -duration_shift_escort,durationShift_escort,"(alt_tdd.duration<=1) * np.minimum(1-alt_tdd.duration, 0) + (alt_tdd.duration>1) * np.minimum(alt_tdd.duration-1,47)" -#,, -depConstShift1_escort,depConstShift1_escort,"(alt_tdd.start<8) * np.minimum(8-alt_tdd.start,4) + (alt_tdd.start>13) * np.minimum(alt_tdd.start-13,28)" -depConstShift2_escort,depConstShift2_escort,"(alt_tdd.start<0) * np.minimum(0-alt_tdd.start,48) + (alt_tdd.start>26) * np.minimum(alt_tdd.start-26,15)" -arrConstShift1_escort,arrConstShift1_escort,"(alt_tdd.end<8) * np.minimum(8-alt_tdd.end,2) + (alt_tdd.end>13) * np.minimum(alt_tdd.end-13,30)" -arrConstShift2_escort,arrConstShift2_escort,"(alt_tdd.end<0) * np.minimum(0-alt_tdd.end,48) + (alt_tdd.start>28) * np.minimum(alt_tdd.end-28,15)" -#,, -,origin_to_destination_distance,1 -,num_person_joint_tours,1 diff --git a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_shopping_annotate_alts_preprocessor.csv b/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_shopping_annotate_alts_preprocessor.csv deleted file mode 100644 index 50efe1c78..000000000 --- a/activitysim/examples/example_semcog/configs/non_mandatory_tour_scheduling_shopping_annotate_alts_preprocessor.csv +++ /dev/null @@ -1,15 +0,0 @@ -Description,Target,Expression -#,, -departure_shift_shopping,departureLinearShift1_shopping,"(alt_tdd.start<=10) * np.minimum(10-alt_tdd.start,7) + (alt_tdd.start>10) * np.minimum(alt_tdd.start-10,35)" -arrival_shift_shopping,arrivalLinearShift1_shopping,"(alt_tdd.end<=11) * np.minimum(11-alt_tdd.end,7) + (alt_tdd.end>11) * np.minimum(alt_tdd.end-11,35)" -departure_shift2_shopping,departureLinearShift2_shopping,"(alt_tdd.start<=24) * np.minimum(24-alt_tdd.start,3) + (alt_tdd.start>24) * np.minimum(alt_tdd.start-24,9)" -arrival_shift2_shopping,arrivalLinearShift2_shopping,"(alt_tdd.end<=25) * np.minimum(25-alt_tdd.end,3) + (alt_tdd.end>25) * np.minimum(alt_tdd.end-25,9)" -duration_shift_shopping,durationShift_shopping,"(alt_tdd.duration<=1) * np.minimum(1-alt_tdd.duration, 0) + (alt_tdd.duration>1) * np.minimum(alt_tdd.duration-1,47)" -#,, -depConstShift1_shopping,depConstShift1_shopping,"(alt_tdd.start<8) * np.minimum(8-alt_tdd.start,4) + (alt_tdd.start>13) * np.minimum(alt_tdd.start-13,28)" -depConstShift2_shopping,depConstShift2_shopping,"(alt_tdd.start<0) * np.minimum(0-alt_tdd.start,48) + (alt_tdd.start>26) * np.minimum(alt_tdd.start-26,15)" -arrConstShift1_shopping,arrConstShift1_shopping,"(alt_tdd.end<8) * np.minimum(8-alt_tdd.end,2) + (alt_tdd.end>13) * np.minimum(alt_tdd.end-13,30)" -arrConstShift2_shopping,arrConstShift2_shopping,"(alt_tdd.end<0) * np.minimum(0-alt_tdd.end,48) + (alt_tdd.start>28) * np.minimum(alt_tdd.end-28,15)" -#,, -,origin_to_destination_distance,1 -,num_person_joint_tours,1 diff --git a/activitysim/examples/example_semcog/configs/parking_location_choice_at_university.yaml b/activitysim/examples/example_semcog/configs/parking_location_choice_at_university.yaml new file mode 100644 index 000000000..92a87b00b --- /dev/null +++ b/activitysim/examples/example_semcog/configs/parking_location_choice_at_university.yaml @@ -0,0 +1,28 @@ + +# Colunn in the landuse file containing the university codes +LANDUSE_UNIV_CODE_COL_NAME: University_Name +# Specify which university codes should require parking +UNIV_CODES_THAT_REQUIRE_PARKING: + - University of Michigan + +# Parking on campus is should only be required for drive tours +# Names need to be consistent with tour modes +TOUR_MODES_THAT_REQUIRE_PARKING: + - DRIVEALONE + - SHARED2 + - SHARED3 + +# Tour Purposes that should be parked at the nearest lot instead of +# sampled based on lot size (primary_purpose field in tours table) +TOUR_PURPOSES_TO_NEAREST_LOT: + - work + - atwork + +# landuse column that contains the number of parking spaces in zone +LANDUSE_PARKING_SPACES_COL_NAME: parking_spaces +# landuse column containing the university the parking spaces belong to +# codes should match the codes in LANDUSE_UNIV_CODE_COL_NAME +LANDUSE_PARKING_UNIV_CODE_COL_NAME: University_Name + + # Random state integer to use when sampling +RANDOM_STATE: 42 diff --git a/activitysim/examples/example_semcog/configs/settings.yaml b/activitysim/examples/example_semcog/configs/settings.yaml index 54337b0fe..61c595b32 100755 --- a/activitysim/examples/example_semcog/configs/settings.yaml +++ b/activitysim/examples/example_semcog/configs/settings.yaml @@ -68,7 +68,7 @@ use_shadow_pricing: False # trace household id; comment out or leave empty for no trace # households with all tour types # [ 728370 1234067 1402924 1594625 1595333 1747572 1896849 1931818 2222690 2344951 2677154] -trace_hh_id: 1311364 +trace_hh_id: 1209443 # trace origin, destination in accessibility calculation; comment out or leave empty for no trace # trace_od: [5, 11] @@ -82,6 +82,7 @@ models: - work_from_home - add_size_tables - school_location + - university_location_zone_override - workplace_location - transit_pass_subsidy - transit_pass_ownership @@ -108,7 +109,10 @@ models: - trip_purpose - trip_destination - trip_purpose_and_destination + - trip_destination_univ_zone_override + - parking_location_choice_at_university - trip_scheduling + - stop_frequency_university_parking - trip_mode_choice - write_data_dictionary - track_skim_usage diff --git a/activitysim/examples/example_semcog/configs/stop_frequency.yaml b/activitysim/examples/example_semcog/configs/stop_frequency.yaml index a32b6cc93..d0ad7b897 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency.yaml +++ b/activitysim/examples/example_semcog/configs/stop_frequency.yaml @@ -13,34 +13,34 @@ SEGMENT_COL: primary_purpose SPEC_SEGMENTS: - primary_purpose: work SPEC: stop_frequency_work.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_work.csv - primary_purpose: school SPEC: stop_frequency_school.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_school.csv - primary_purpose: univ SPEC: stop_frequency_univ.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_univ.csv - primary_purpose: social SPEC: stop_frequency_social.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_social.csv - primary_purpose: shopping SPEC: stop_frequency_shopping.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_shopping.csv - primary_purpose: eatout SPEC: stop_frequency_eatout.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_eatout.csv - primary_purpose: escort SPEC: stop_frequency_escort.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_escort.csv - primary_purpose: othmaint SPEC: stop_frequency_othmaint.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_othmaint.csv - primary_purpose: othdiscr SPEC: stop_frequency_othdiscr.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_othdiscr.csv - primary_purpose: atwork SPEC: stop_frequency_atwork.csv - COEFFICIENTS: _dummy_coefficients.csv + COEFFICIENTS: stop_frequency_coefficients_atwork.csv CONSTANTS: TRANSIT_MODES: diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_annotate_tours_preprocessor.csv b/activitysim/examples/example_semcog/configs/stop_frequency_annotate_tours_preprocessor.csv index c7693b2d2..bf7da530d 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_annotate_tours_preprocessor.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_annotate_tours_preprocessor.csv @@ -20,6 +20,7 @@ Number of Adults (>= 16 years old),num_adult,"reindex_i(_HH_PERSON_COUNT('age >= ,tour_mode_is_transit,df.tour_mode.isin(TRANSIT_MODES) ,tour_mode_is_drive_transit,df.tour_mode.isin(DRIVE_TO_TRANSIT_MODES) ,tour_mode_is_non_motorized,df.tour_mode.isin(NONMOTORIZED_MODES) +Major University Students as determined by univ location zone override model,is_major_univ_student,df.original_school_zone_id.notna() #,, #num_work_tours already defined,, school but not university,num_school_tours,"reindex_i(df[primary_purpose==SCHOOL_TOUR].groupby('person_id').size(), df.person_id)" diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_atwork.csv b/activitysim/examples/example_semcog/configs/stop_frequency_atwork.csv index 47baa8adc..b93d2fce8 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_atwork.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_atwork.csv @@ -1,13 +1,13 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH ,income_in_thousands<50000,,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45 -Number of eating tours tours undertaken by the person,num_eatout_tours,,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28 -Subtour departure less than or equal to 11AM,start<19,,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31 -Subtour return time greater or equal to 2PM,end>24,,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34 -Subtour duration in hours (integer),end-start,,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56 -dummy for subtour origin (tour destination) at Exurban or Rual (AreaTypes = 6 or 7),destination_area_type >5,,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27 -Primary Destination Accessibility (LOG of it),pracc,,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18 -subtour distance in miles (from tour destination to subtour primary destination one way),distance_in_miles,,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02 -Alternative specific constant for outbound stops,1,,,,,-3.896,-3.896,-3.896,-3.896,-5.709,-5.709,-5.709,-5.709,-7.361,-7.361,-7.361,-7.361 -Alternative specific constant for return stops,1,,-3.671,-5.388,-6.21,,-3.671,-5.388,-6.21,,-3.671,-5.388,-6.21,,-3.671,-5.388,-6.21 -Alternative specific constant for the total number of stops,1,,,0,0,,0,0,2.127,0,0,2.127,2.127,0,2.127,2.127,2.127 -Phase1_Calibration,1,,-0.214873516,-0.08829587,-0.021076701,-0.583908707,1.759594513,1.768617768,0.015908847,-0.496833561,0.742087614,0.721158833,-0.038026423,1.210255745,0.858858431,2.537970801,3.355148354 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh_,Middle to Low Income HH ,income_in_thousands<50000,,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_ +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,num_eatout_tours,,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person,coef_number_of_eating_tours_tours_undertaken_by_the_person +util_subtour_departure_less_than_or_equal_to_11am,Subtour departure less than or equal to 11AM,start<12,,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am,coef_subtour_departure_less_than_or_equal_to_11am +util_subtour_return_time_greater_or_equal_to_2pm,Subtour return time greater or equal to 2PM,end>16,,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm,coef_subtour_return_time_greater_or_equal_to_2pm +util_subtour_duration_in_hours_integer_,Subtour duration in hours (integer),end-start,,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_,coef_subtour_duration_in_hours_integer_ +util_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,dummy for subtour origin (tour destination) at Exurban or Rual (AreaTypes = 6 or 7),destination_area_type >5,,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_ +util_primary_destination_accessibility_log_of_it_,Primary Destination Accessibility (LOG of it),pracc,,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_,coef_primary_destination_accessibility_log_of_it_ +util_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,subtour distance in miles (from tour destination to subtour primary destination one way),distance_in_miles,,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_ +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,1,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,1,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,1,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +util_Phase1_Calibration,Phase1_Calibration,1,,-0.214873516,-0.08829587,-0.021076701,-0.583908707,1.759594513,1.768617768,0.015908847,-0.496833561,0.742087614,0.721158833,-0.038026423,1.210255745,0.858858431,2.537970801,3.355148354 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_atwork.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_atwork.csv new file mode 100644 index 000000000..09cd0fd29 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_atwork.csv @@ -0,0 +1,17 @@ +Description,value,coefficient_name +Middle to Low Income HH ,0.45,coef_middle_to_low_income_hh_ +Number of eating tours tours undertaken by the person,-0.28,coef_number_of_eating_tours_tours_undertaken_by_the_person +Subtour departure less than or equal to 11AM,0.31,coef_subtour_departure_less_than_or_equal_to_11am +Subtour return time greater or equal to 2PM,0.34,coef_subtour_return_time_greater_or_equal_to_2pm +Subtour duration in hours (integer),0.56,coef_subtour_duration_in_hours_integer_ +dummy for subtour origin (tour destination) at Exurban or Rual (AreaTypes = 6 or 7),0.27,coef_dummy_for_subtour_origin_tour_destination_at_exurban_or_rual_areatypes_6_or_7_ +Primary Destination Accessibility (LOG of it),0.18,coef_primary_destination_accessibility_log_of_it_ +subtour distance in miles (from tour destination to subtour primary destination one way),0.02,coef_subtour_distance_in_miles_from_tour_destination_to_subtour_primary_destination_one_way_ +Alternative specific constant for return stops,-3.6710000000000003,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops,-5.388,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops,-6.21,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for outbound stops,-3.8960000000000004,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for the total number of stops,2.127,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for outbound stops,-5.709,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops,-7.361000000000001,coef_alternative_specific_constant_for_outbound_stops_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_eatout.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_eatout.csv new file mode 100644 index 000000000..a8cd76292 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_eatout.csv @@ -0,0 +1,33 @@ +Description,value,coefficient_name +Number of Vehicles,-0.19,coef_number_of_vehicles +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.73,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.28,coef_number_of_work_tours_undertaken_by_the_person +Number of shop tours undertaken by the person,-0.24,coef_number_of_shop_tours_undertaken_by_the_person +At least one kid and one adult participate in the tour,0.37,coef_at_least_one_kid_and_one_adult_participate_in_the_tour +Arrival later than 17:00.,-0.45,coef_arrival_later_than_17_00_ +Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,1.31,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_ +dummy for distance in miles,-0.01,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-1.761,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops on joint tours,-1.329,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in +Dummy for a return visiting tour,-0.64,coef_dummy_for_a_return_visiting_tour +Alternative specific constant for return stops,-3.697,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops on joint tours,-2.7960000000000003,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in +Alternative specific constant for the total number of stops on joint tours,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in +Alternative specific constant for return stops,-4.717,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for return stops on joint tours,-3.3789999999999996,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +Number of persons participating in the tour.Outgoing stops interaction,-0.46,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction +Alternative specific constant for outbound stops,-2.19,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops on joint tours,-1.7830000000000001,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in +Dummy for an outbound visiting tour,-0.69,coef_dummy_for_an_outbound_visiting_tour +Dummy for a visiting tour with both outbound and return leg,0.44,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg +Alternative specific constant for the total number of stops,0.94,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for the total number of stops on joint tours,0.518,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in +Alternative specific constant for outbound stops,-4.516,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops on joint tours,-4.067,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in +Alternative specific constant for the total number of stops,2.026,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for the total number of stops on joint tours,1.4969999999999999,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +Alternative specific constant for outbound stops,-5.255,coef_alternative_specific_constant_for_outbound_stops_3out_0in +Alternative specific constant for outbound stops on joint tours,-4.998,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_escort.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_escort.csv new file mode 100644 index 000000000..e78dcf2a2 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_escort.csv @@ -0,0 +1,28 @@ +Description,value,coefficient_name +Number of HH Persons,-0.24,coef_number_of_hh_persons +Number of Students in HH,0.19,coef_number_of_students_in_hh +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.91,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.29,coef_number_of_work_tours_undertaken_by_the_person +Number of escort tours tours undertaken by the person,-0.15,coef_number_of_escort_tours_tours_undertaken_by_the_person +Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,0.59,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +dummy for distance less than 5 Miles,0.32,coef_dummy_for_distance_less_than_5_miles +dummy for distance in miles,0.01,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-0.968,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops on joint tours,-1.329,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in +Alternative specific constant for return stops,-2.41,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops on joint tours,-2.7960000000000003,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in +Alternative specific constant for the total number of stops on joint tours,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in +Alternative specific constant for return stops,-3.0239999999999996,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for return stops on joint tours,-3.3789999999999996,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +Alternative specific constant for outbound stops,-2.173,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops on joint tours,-1.7830000000000001,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in +Alternative specific constant for the total number of stops on joint tours,0.518,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in +Alternative specific constant for outbound stops,-4.294,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops on joint tours,-4.067,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in +Alternative specific constant for the total number of stops,-1.807,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for the total number of stops on joint tours,1.4969999999999999,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +Alternative specific constant for outbound stops,-4.758,coef_alternative_specific_constant_for_outbound_stops_3out_0in +Alternative specific constant for outbound stops on joint tours,-4.998,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othdiscr.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othdiscr.csv new file mode 100644 index 000000000..ccc3d25eb --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othdiscr.csv @@ -0,0 +1,30 @@ +Description,value,coefficient_name +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-2.4578,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.6153,coef_number_of_work_tours_undertaken_by_the_person +Number of shool tours tours undertaken by the person,-0.8176,coef_number_of_shool_tours_tours_undertaken_by_the_person +Number of shop tours undertaken by the person,-0.629,coef_number_of_shop_tours_undertaken_by_the_person +Number of maintenace tours tours undertaken by the person,-0.3715,coef_number_of_maintenace_tours_tours_undertaken_by_the_person +Arrival later than 17:00.,-0.6383,coef_arrival_later_than_17_00_ +Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,0.8335,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +dummy for distance less than 10 Miles ,0.3756,coef_dummy_for_distance_less_than_10_miles_ +dummy for distance in miles,-0.0225,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-0.9209999999999999,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops on joint tours,-1.329,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in +Alternative specific constant for return stops,-2.336,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops on joint tours,-2.7960000000000003,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in +Alternative specific constant for the total number of stops on joint tours,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in +Alternative specific constant for return stops,-2.927,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for return stops on joint tours,-3.3789999999999996,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +Alternative specific constant for outbound stops,-1.581,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops on joint tours,-1.7830000000000001,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in +Alternative specific constant for the total number of stops,0.863,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for the total number of stops on joint tours,0.518,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in +Alternative specific constant for outbound stops,-3.323,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops on joint tours,-4.067,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in +Alternative specific constant for the total number of stops,0.9390000000000001,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for the total number of stops on joint tours,1.4969999999999999,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +Alternative specific constant for outbound stops,-4.623,coef_alternative_specific_constant_for_outbound_stops_3out_0in +Alternative specific constant for outbound stops on joint tours,-4.998,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othmaint.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othmaint.csv new file mode 100644 index 000000000..1ef7c5e24 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_othmaint.csv @@ -0,0 +1,38 @@ +Description,value,coefficient_name +Middle to Low Income HH ,0.17,coef_middle_to_low_income_hh_ +Mid to High Income HH,0.23,coef_mid_to_high_income_hh +High Income HH,0.24,coef_high_income_hh +Number of HH Persons,-0.31,coef_number_of_hh_persons +Number of Students in HH,0.21,coef_number_of_students_in_hh +Presence of Kids between 0 and 4 (including) years old,0.74,coef_presence_of_kids_between_0_and_4_including_years_old +Dummy for female,0.3012,coef_dummy_for_female +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.4329,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.364,coef_number_of_work_tours_undertaken_by_the_person +Number of university tours tours undertaken by the person,-0.6252,coef_number_of_university_tours_tours_undertaken_by_the_person +Number of shool tours tours undertaken by the person,-1.4135,coef_number_of_shool_tours_tours_undertaken_by_the_person +Number of shop tours undertaken by the person,-0.1428,coef_number_of_shop_tours_undertaken_by_the_person +Number of maintenace tours undertaken by the houshold,-0.0468,coef_number_of_maintenace_tours_undertaken_by_the_houshold +Number of persons participating in the tour.Return stops interaction,0.4904,coef_number_of_persons_participating_in_the_tour_return_stops_interaction +Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,0.5134,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +dummy for distance less than 20 Miles ,-0.408,coef_dummy_for_distance_less_than_20_miles_ +dummy for distance in miles,0.0273,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-0.585,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops on joint tours,-1.329,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in +Alternative specific constant for return stops,-1.48,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops on joint tours,-2.7960000000000003,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in +Alternative specific constant for the total number of stops on joint tours,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in +Alternative specific constant for return stops,-2.4619999999999997,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for return stops on joint tours,-3.3789999999999996,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +Alternative specific constant for outbound stops,-1.761,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops on joint tours,-1.7830000000000001,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in +Alternative specific constant for the total number of stops,0.414,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for the total number of stops on joint tours,0.518,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in +Alternative specific constant for outbound stops,-3.661,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops on joint tours,-4.067,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in +Alternative specific constant for the total number of stops,0.488,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for the total number of stops on joint tours,1.4969999999999999,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +Alternative specific constant for outbound stops,-5.426,coef_alternative_specific_constant_for_outbound_stops_3out_0in +Alternative specific constant for outbound stops on joint tours,-4.998,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_school.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_school.csv new file mode 100644 index 000000000..9eab1b104 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_school.csv @@ -0,0 +1,21 @@ +Description,value,coefficient_name +Number of HH Persons,-0.506,coef_number_of_hh_persons +Presence of kids between 5 and 15 (including) years old,0.3299,coef_presence_of_kids_between_5_and_15_including_years_old +Number of Cars > Number of Workers,0.5331,coef_number_of_cars_number_of_workers +Dummy for female,0.4099,coef_dummy_for_female +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.8163,coef_dummy_for_walking_to_all_stops +Number of escort tours tours undertaken by the person,1.2365,coef_number_of_escort_tours_tours_undertaken_by_the_person +Arrival later than 17:00.,1.8377,coef_arrival_later_than_17_00_ +Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,0.9549,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +dummy for distance in miles,0.0438,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-1.206,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops,-2.6719999999999997,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops,-3.364,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for outbound stops,-2.123,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for the total number of stops,0.701,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for outbound stops,-3.798,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for the total number of stops,1.135,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for outbound stops,-5.85,coef_alternative_specific_constant_for_outbound_stops_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_shopping.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_shopping.csv new file mode 100644 index 000000000..62ce58d76 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_shopping.csv @@ -0,0 +1,33 @@ +Description,value,coefficient_name +Number of HH Persons,-0.1522,coef_number_of_hh_persons +Num kids between 5 and 15 (including) years old,0.0482,coef_num_kids_between_5_and_15_including_years_old +Dummy for female,0.1721,coef_dummy_for_female +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.4908,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.5479999999999999,coef_number_of_work_tours_undertaken_by_the_person +Number of university tours tours undertaken by the person,-0.6709,coef_number_of_university_tours_tours_undertaken_by_the_person +Number of maintenace tours tours undertaken by the person,-0.1977,coef_number_of_maintenace_tours_tours_undertaken_by_the_person +Number of shop tours undertaken by the houshold,-0.0733,coef_number_of_shop_tours_undertaken_by_the_houshold +Dummy for only adults participate in the tour,0.1902,coef_dummy_for_only_adults_participate_in_the_tour +Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,0.9056,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +dummy for distance less than 5 Miles,0.3768,coef_dummy_for_distance_less_than_5_miles +dummy for distance in miles,0.0289,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-1.179,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops on joint tours,-1.329,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in +Alternative specific constant for return stops,-2.305,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops on joint tours,-2.7960000000000003,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in +Alternative specific constant for the total number of stops on joint tours,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in +Alternative specific constant for return stops,-3.0239999999999996,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for return stops on joint tours,-3.3789999999999996,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +Alternative specific constant for outbound stops,-1.339,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops on joint tours,-1.7830000000000001,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in +Alternative specific constant for the total number of stops,0.252,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for the total number of stops on joint tours,0.518,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in +Alternative specific constant for outbound stops,-3.11,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops on joint tours,-4.067,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in +Alternative specific constant for the total number of stops,0.514,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for the total number of stops on joint tours,1.4969999999999999,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +Alternative specific constant for outbound stops,-4.487,coef_alternative_specific_constant_for_outbound_stops_3out_0in +Alternative specific constant for outbound stops on joint tours,-4.998,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_social.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_social.csv new file mode 100644 index 000000000..ea05f6d1f --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_social.csv @@ -0,0 +1,33 @@ +Description,value,coefficient_name +Number of Vehicles,-0.19,coef_number_of_vehicles +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.73,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.28,coef_number_of_work_tours_undertaken_by_the_person +Number of shop tours undertaken by the person,-0.24,coef_number_of_shop_tours_undertaken_by_the_person +At least one kid and one adult participate in the tour,0.37,coef_at_least_one_kid_and_one_adult_participate_in_the_tour +Arrival later than 17:00.,-0.45,coef_arrival_later_than_17_00_ +Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,1.31,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_ +dummy for distance in miles,-0.01,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-1.12,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops on joint tours,-1.329,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in +Dummy for a return visiting tour,-0.64,coef_dummy_for_a_return_visiting_tour +Alternative specific constant for return stops,-2.764,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops on joint tours,-2.7960000000000003,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in +Alternative specific constant for the total number of stops on joint tours,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in +Alternative specific constant for return stops,-3.451,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for return stops on joint tours,-3.3789999999999996,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +Number of persons participating in the tour.Outgoing stops interaction,-0.46,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction +Alternative specific constant for outbound stops,-1.081,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops on joint tours,-1.7830000000000001,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in +Dummy for an outbound visiting tour,-0.69,coef_dummy_for_an_outbound_visiting_tour +Dummy for a visiting tour with both outbound and return leg,0.44,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg +Alternative specific constant for the total number of stops,0.496,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for the total number of stops on joint tours,0.518,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in +Alternative specific constant for outbound stops,-2.8739999999999997,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for outbound stops on joint tours,-4.067,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in +Alternative specific constant for the total number of stops,0.882,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for the total number of stops on joint tours,1.4969999999999999,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +Alternative specific constant for outbound stops,-4.552,coef_alternative_specific_constant_for_outbound_stops_3out_0in +Alternative specific constant for outbound stops on joint tours,-4.998,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_univ.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_univ.csv new file mode 100644 index 000000000..cfdbbce41 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_univ.csv @@ -0,0 +1,20 @@ +Description,value,coefficient_name +Number of HH Persons,-0.2827,coef_number_of_hh_persons +Presence of kids between 5 and 15 (including) years old,0.6823,coef_presence_of_kids_between_5_and_15_including_years_old +Number of Vehicles,0.1703,coef_number_of_vehicles +Dummy for female,0.7349,coef_dummy_for_female +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Number of escort tours tours undertaken by the person,0.9018,coef_number_of_escort_tours_tours_undertaken_by_the_person +Arrival later than 17:00.,0.389,coef_arrival_later_than_17_00_ +Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,0.8434,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +HH accesibility for inbound tours. Interaction,0.2481,coef_hh_accesibility_for_inbound_tours_interaction +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-2.003,coef_alternative_specific_constant_for_return_stops_0out_1in +Alternative specific constant for return stops,-3.51,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops,-3.677,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for outbound stops,-2.628,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for the total number of stops,1.272,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in +Alternative specific constant for outbound stops,-3.741,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for the total number of stops,1.871,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for outbound stops,-4.981,coef_alternative_specific_constant_for_outbound_stops_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_work.csv b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_work.csv new file mode 100644 index 000000000..dd3ebe7d1 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_coefficients_work.csv @@ -0,0 +1,34 @@ +Description,value,coefficient_name +Middle to Low Income HH,0.17,coef_middle_to_low_income_hh +Mid to High Income HH,0.23,coef_mid_to_high_income_hh +High Income HH,0.24,coef_high_income_hh +Number of HH Persons,-0.31,coef_number_of_hh_persons +Number of Students in HH,0.21,coef_number_of_students_in_hh +Presence of Kids between 0 and 4 (including) years old,0.74,coef_presence_of_kids_between_0_and_4_including_years_old +Num kids between 5 and 15 (including) years old,0.08,coef_num_kids_between_5_and_15_including_years_old +Presence of kids between 5 and 15 (including) years old,0.26,coef_presence_of_kids_between_5_and_15_including_years_old +Number of Adults (>= 16 years old),0.03,coef_number_of_adults_16_years_old_ +Number of Cars > Number of Workers,0.16,coef_number_of_cars_number_of_workers +Dummy for female,0.22,coef_dummy_for_female +Dummy for all stops made by transit,-0.7,coef_dummy_for_all_stops_made_by_transit +Dummy for walking to all stops,-1.54,coef_dummy_for_walking_to_all_stops +Number of work tours undertaken by the person,-0.15,coef_number_of_work_tours_undertaken_by_the_person +Number of university tours tours undertaken by the person,-0.48,coef_number_of_university_tours_tours_undertaken_by_the_person +Number of school tours tours undertaken by the person,-1.55,coef_number_of_school_tours_tours_undertaken_by_the_person +Number of escort tours tours undertaken by the person,0.2,coef_number_of_escort_tours_tours_undertaken_by_the_person +Number of shop tours undertaken by the houshold,-0.05,coef_number_of_shop_tours_undertaken_by_the_houshold +AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,-1.93,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours +Evening Arrival (>=19:00) Interacted with return tours,0.31,coef_evening_arrival_19_00_interacted_with_return_tours +Dummy for the duration of the tour being equal or greater than or equal to 11 hours,0.6,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours +dummy for distance less than 20 Miles,-0.22,coef_dummy_for_distance_less_than_20_miles +dummy for distance in miles,0.01,coef_dummy_for_distance_in_miles +No stops if tour mode is driveTransit,-999.0,coef_no_stops_if_tour_mode_is_drivetransit +Alternative specific constant for return stops,-0.445,coef_alternative_specific_constant_for_return_stops_0out_1in +Number of subtours in the tour,0.19,coef_number_of_subtours_in_the_tour +Alternative specific constant for return stops,-1.775,coef_alternative_specific_constant_for_return_stops_0out_2in +Alternative specific constant for the total number of stops,0.0,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in +Alternative specific constant for return stops,-2.1390000000000002,coef_alternative_specific_constant_for_return_stops_0out_3in +Alternative specific constant for outbound stops,-0.833,coef_alternative_specific_constant_for_outbound_stops_1out_0in +Alternative specific constant for outbound stops,-2.613,coef_alternative_specific_constant_for_outbound_stops_2out_0in +Alternative specific constant for the total number of stops,0.695,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +Alternative specific constant for outbound stops,-3.9339999999999997,coef_alternative_specific_constant_for_outbound_stops_3out_0in diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_eatout.csv b/activitysim/examples/example_semcog/configs/stop_frequency_eatout.csv index 81fb521ef..d4a277520 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_eatout.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_eatout.csv @@ -1,54 +1,53 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,,,,,,,,,,,,,,, -Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,,,,,,,,,,,,,,, -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19 -Dummy for female,~is_joint & female,,,,,,,,,,,,,,,, -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73 -Number of work tours undertaken by the person,~is_joint * num_work_tours,,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28 -Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,,,,,,,,,,,,,,, -Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,,,,,,,,,,,,,,, -Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24 -Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46 -Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -At least one kid and one adult participate in the tour,composition=='mixed',,0.37,0.37,0.37,,0.37,0.37,0.37,,0.37,0.37,0.37,,0.37,0.37,0.37 -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45 -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31 -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 20 Miles ,(distance_in_miles < 20),,,,,,,,,,,,,,,, -dummy for distance in miles,distance_in_miles,,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,~is_joint,,,,,-2.19,-2.19,-2.19,-2.19,-4.516,-4.516,-4.516,-4.516,-5.255,-5.255,-5.255,-5.255 -Alternative specific constant for return stops,~is_joint,,-1.761,-3.697,-4.717,,-1.761,-3.697,-4.717,,-1.761,-3.697,-4.717,,-1.761,-3.697,-4.717 -Alternative specific constant for the total number of stops,~is_joint,,,0,0,,0,0,0.94,0,0,0.94,2.026,0,0.94,2.026,2.026 -Alternative specific constant for outbound stops on joint tours,is_joint,,,,,-1.783,-1.783,-1.783,-1.783,-4.067,-4.067,-4.067,-4.067,-4.998,-4.998,-4.998,-4.998 -Alternative specific constant for return stops on joint tours,is_joint,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379 -Alternative specific constant for the total number of stops on joint tours,is_joint,,,0,0,,0,0,0.518,0,0,0.518,1.497,0,0.518,1.497,1.497 -Dummy for an outbound visiting tour,primary_purpose == 'social',,,,,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69 -Dummy for a return visiting tour,primary_purpose == 'social',,-0.64,-0.64,-0.64,,-0.64,-0.64,-0.64,,-0.64,-0.64,-0.64,,-0.64,-0.64,-0.64 -Dummy for a visiting tour with both outbound and return leg,primary_purpose == 'social',,,,,,0.44,0.44,0.44,,0.44,0.44,0.44,,0.44,0.44,0.44 -Phase1_Calibration,~is_joint,,0.402777606,0.769044419,1.547375234,0.17724742,1.523737838,1.704085866,1.219450496,1.50935493,2.583402672,2.411844468,0.759903236,1.610165394,2.324582352,2.016696053,2.783482815 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh_,Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,,,,,,,,,,,,,,, +util_number_of_full_time_workes_in_hh,Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,,,,,,,,,,,,,,, +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_4_and_15_including_years_old,Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles +util_dummy_for_female,Dummy for female,~is_joint & female,,,,,,,,,,,,,,,, +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,~is_joint * num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,,,,,,,,,,,,,,, +util_number_of_shool_tours_tours_undertaken_by_the_person,Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,,,,,,,,,,,,,,, +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction +util_number_of_persons_participating_in_the_tour_return_stops_interaction,Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_at_least_one_kid_and_one_adult_participate_in_the_tour,At least one kid and one adult participate in the tour,composition=='mixed',,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_ +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_ +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_20_miles_,dummy for distance less than 20 Miles ,(distance_in_miles < 20),,,,,,,,,,,,,,,, +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,~is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,~is_joint,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,~is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_alternative_specific_constant_for_outbound_stops_on_joint_tours,Alternative specific constant for outbound stops on joint tours,is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in +util_alternative_specific_constant_for_return_stops_on_joint_tours,Alternative specific constant for return stops on joint tours,is_joint,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours,Alternative specific constant for the total number of stops on joint tours,is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +util_dummy_for_an_outbound_visiting_tour,Dummy for an outbound visiting tour,primary_purpose == 'social',,,,,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour +util_dummy_for_a_return_visiting_tour,Dummy for a return visiting tour,primary_purpose == 'social',,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour +util_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,Dummy for a visiting tour with both outbound and return leg,primary_purpose == 'social',,,,,,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg +util_Phase1_Calibration,Phase1_Calibration,~is_joint,,0.402777606,0.769044419,1.547375234,0.17724742,1.523737838,1.704085866,1.219450496,1.50935493,2.583402672,2.411844468,0.759903236,1.610165394,2.324582352,2.016696053,2.783482815 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_escort.csv b/activitysim/examples/example_semcog/configs/stop_frequency_escort.csv index f0924ab20..17df69cc3 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_escort.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_escort.csv @@ -1,48 +1,47 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24 -Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19 -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 5 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, -Dummy for female,female,,,,,,,,,,,,,,,, -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91,-1.91 -Number of work tours undertaken by the person,num_work_tours,,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29 -Number of university tours tours undertaken by the person,num_univ_tours,,,,,,,,,,,,,,,, -Number of school tours tours undertaken by the person,num_school_tours,,,,,,,,,,,,,,,, -Number of escort tours tours undertaken by the person,num_escort_tours,,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15 -Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, -Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,,,,,,,,,,,,,,, -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59 -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 5 Miles,(distance_in_miles < 5),,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32 -dummy for distance in miles,distance_in_miles,,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,~is_joint,,,,,-2.173,-2.173,-2.173,-2.173,-4.294,-4.294,-4.294,-4.294,-4.758,-4.758,-4.758,-4.758 -Alternative specific constant for return stops,~is_joint,,-0.968,-2.41,-3.024,,-0.968,-2.41,-3.024,,-0.968,-2.41,-3.024,,-0.968,-2.41,-3.024 -Alternative specific constant for the total number of stops,~is_joint,,,0,0,,0,0,0,0,0,0,-1.807,0,0,-1.807,-1.807 -Alternative specific constant for outbound stops on joint tours,is_joint,,,,,-1.783,-1.783,-1.783,-1.783,-4.067,-4.067,-4.067,-4.067,-4.998,-4.998,-4.998,-4.998 -Alternative specific constant for return stops on joint tours,is_joint,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379 -Alternative specific constant for the total number of stops on joint tours,is_joint,,,0,0,,0,0,0.518,0,0,0.518,1.497,0,0.518,1.497,1.497 -Phase1_Calibration,~is_joint,,-0.281471428,-0.016095822,0.633091127,0.54790928,0.034142435,0.648536014,1.179253849,1.588769694,1.014803541,1.362137736,4.47587972,1.689728522,1.349848675,3.365045965,4.461548606 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh,Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons +util_number_of_full_time_workers_in_hh,Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_5_and_15_including_years_old,Num kids between 5 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, +util_dummy_for_female,Dummy for female,female,,,,,,,,,,,,,,,, +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,num_univ_tours,,,,,,,,,,,,,,,, +util_number_of_school_tours_tours_undertaken_by_the_person,Number of school tours tours undertaken by the person,num_school_tours,,,,,,,,,,,,,,,, +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,num_escort_tours,,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,,,,,,,,,,,,,,, +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_5_miles,dummy for distance less than 5 Miles,(distance_in_miles < 5),,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,~is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,~is_joint,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,~is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_alternative_specific_constant_for_outbound_stops_on_joint_tours,Alternative specific constant for outbound stops on joint tours,is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in +util_alternative_specific_constant_for_return_stops_on_joint_tours,Alternative specific constant for return stops on joint tours,is_joint,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours,Alternative specific constant for the total number of stops on joint tours,is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +util_Phase1_Calibration,Phase1_Calibration,~is_joint,,-0.281471428,-0.016095822,0.633091127,0.54790928,0.034142435,0.648536014,1.179253849,1.588769694,1.014803541,1.362137736,4.47587972,1.689728522,1.349848675,3.365045965,4.461548606 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_othdiscr.csv b/activitysim/examples/example_semcog/configs/stop_frequency_othdiscr.csv index 6384dcfdf..6665ea6e1 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_othdiscr.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_othdiscr.csv @@ -1,50 +1,49 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,,,,,,,,,,,,,,, -Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,,,,,,,,,,,,,,, -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, -Dummy for female,~is_joint & female,,,,,,,,,,,,,,,, -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578,-2.4578 -Number of work tours undertaken by the person,~is_joint * num_work_tours,,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153,-0.6153 -Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,,,,,,,,,,,,,,, -Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176,-0.8176 -Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629,-0.629 -Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715,-0.3715 -Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383,-0.6383 -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335,0.8335 -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 10 Miles ,(distance_in_miles < 10),,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756,0.3756 -dummy for distance in miles,distance_in_miles,,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225,-0.0225 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,~is_joint,,,,,-1.581,-1.581,-1.581,-1.581,-3.323,-3.323,-3.323,-3.323,-4.623,-4.623,-4.623,-4.623 -Alternative specific constant for return stops,~is_joint,,-0.921,-2.336,-2.927,,-0.921,-2.336,-2.927,,-0.921,-2.336,-2.927,,-0.921,-2.336,-2.927 -Alternative specific constant for the total number of stops,~is_joint,,,0,0,,0,0,0.863,0,0,0.863,0.939,0,0.863,0.939,0.939 -Alternative specific constant for outbound stops on joint tours,is_joint,,,,,-1.783,-1.783,-1.783,-1.783,-4.067,-4.067,-4.067,-4.067,-4.998,-4.998,-4.998,-4.998 -Alternative specific constant for return stops on joint tours,is_joint,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379 -Alternative specific constant for the total number of stops on joint tours,is_joint,,,0,0,,0,0,0.518,0,0,0.518,1.497,0,0.518,1.497,1.497 -Phase1_Calibration,~is_joint,,0.187263987,0.670000983,0.992092361,0.283823906,0.461537002,0.958158373,-0.156485013,0.806611419,0.872137091,0.343003767,0.7657564,2.063744949,1.13525473,1.376716611,2.113754844 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh_,Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,,,,,,,,,,,,,,, +util_number_of_full_time_workes_in_hh,Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,,,,,,,,,,,,,,, +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_4_and_15_including_years_old,Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, +util_dummy_for_female,Dummy for female,~is_joint & female,,,,,,,,,,,,,,,, +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,~is_joint * num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,,,,,,,,,,,,,,, +util_number_of_shool_tours_tours_undertaken_by_the_person,Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_number_of_persons_participating_in_the_tour_return_stops_interaction,Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_ +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_10_miles_,dummy for distance less than 10 Miles ,(distance_in_miles < 10),,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_,coef_dummy_for_distance_less_than_10_miles_ +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,~is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,~is_joint,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,~is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_alternative_specific_constant_for_outbound_stops_on_joint_tours,Alternative specific constant for outbound stops on joint tours,is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in +util_alternative_specific_constant_for_return_stops_on_joint_tours,Alternative specific constant for return stops on joint tours,is_joint,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours,Alternative specific constant for the total number of stops on joint tours,is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +util_Phase1_Calibration,Phase1_Calibration,~is_joint,,0.187263987,0.670000983,0.992092361,0.283823906,0.461537002,0.958158373,-0.156485013,0.806611419,0.872137091,0.343003767,0.7657564,2.063744949,1.13525473,1.376716611,2.113754844 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_othmaint.csv b/activitysim/examples/example_semcog/configs/stop_frequency_othmaint.csv index b29838cb5..59094fa1b 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_othmaint.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_othmaint.csv @@ -1,51 +1,50 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17 -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23 -High Income HH,(income_in_thousands>=100000),,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24 -Number of HH Persons,hhsize,,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31 -Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21 -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74 -Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, -Dummy for female,~is_joint & female,,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012,0.3012 -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329,-1.4329 -Number of work tours undertaken by the person,~is_joint * num_work_tours,,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364,-0.364 -Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252,-0.6252 -Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135,-1.4135 -Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428,-0.1428 -Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -Number of maintenace tours undertaken by the houshold,num_hh_maint_tours,,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468,-0.0468 -Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,0.4904,0.4904,0.4904,,0.4904,0.4904,0.4904,,0.4904,0.4904,0.4904,,0.4904,0.4904,0.4904 -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,,,,,,,,,,,,,,, -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134,0.5134 -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 20 Miles ,(distance_in_miles < 20),,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408,-0.408 -dummy for distance in miles,distance_in_miles,,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273,0.0273 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,~is_joint,,,,,-1.761,-1.761,-1.761,-1.761,-3.661,-3.661,-3.661,-3.661,-5.426,-5.426,-5.426,-5.426 -Alternative specific constant for return stops,~is_joint,,-0.585,-1.48,-2.462,,-0.585,-1.48,-2.462,,-0.585,-1.48,-2.462,,-0.585,-1.48,-2.462 -Alternative specific constant for the total number of stops,~is_joint,,,0,0,,0,0,0.414,0,0,0.414,0.488,0,0.414,0.488,0.488 -Alternative specific constant for outbound stops on joint tours,is_joint,,,,,-1.783,-1.783,-1.783,-1.783,-4.067,-4.067,-4.067,-4.067,-4.998,-4.998,-4.998,-4.998 -Alternative specific constant for return stops on joint tours,is_joint,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379 -Alternative specific constant for the total number of stops on joint tours,is_joint,,,0,0,,0,0,0.518,0,0,0.518,1.497,0,0.518,1.497,1.497 -Phase1_Calibration,~is_joint,,0.475190752,0.530588025,1.389497026,0.960593185,0.775245847,1.122815367,1.226361438,1.683900584,1.594911845,1.101961687,2.302278146,3.35277309,2.734475828,2.746850954,3.93916549 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh_,Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_,coef_middle_to_low_income_hh_ +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh +util_number_of_hh_persons,Number of HH Persons,hhsize,,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons +util_number_of_full_time_workes_in_hh,Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old +util_num_kids_between_4_and_15_including_years_old,Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, +util_dummy_for_female,Dummy for female,~is_joint & female,,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,~is_joint * num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person +util_number_of_shool_tours_tours_undertaken_by_the_person,Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person,coef_number_of_shool_tours_tours_undertaken_by_the_person +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_number_of_maintenace_tours_undertaken_by_the_houshold,Number of maintenace tours undertaken by the houshold,num_hh_maint_tours,,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold,coef_number_of_maintenace_tours_undertaken_by_the_houshold +util_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_number_of_persons_participating_in_the_tour_return_stops_interaction,Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction,coef_number_of_persons_participating_in_the_tour_return_stops_interaction +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,,,,,,,,,,,,,,, +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_20_miles_,dummy for distance less than 20 Miles ,(distance_in_miles < 20),,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_,coef_dummy_for_distance_less_than_20_miles_ +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,~is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,~is_joint,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,~is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_alternative_specific_constant_for_outbound_stops_on_joint_tours,Alternative specific constant for outbound stops on joint tours,is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in +util_alternative_specific_constant_for_return_stops_on_joint_tours,Alternative specific constant for return stops on joint tours,is_joint,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours,Alternative specific constant for the total number of stops on joint tours,is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +util_Phase1_Calibration,Phase1_Calibration,~is_joint,,0.475190752,0.530588025,1.389497026,0.960593185,0.775245847,1.122815367,1.226361438,1.683900584,1.594911845,1.101961687,2.302278146,3.35277309,2.734475828,2.746850954,3.93916549 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_school.csv b/activitysim/examples/example_semcog/configs/stop_frequency_school.csv index da2963b96..1a026bf6b 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_school.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_school.csv @@ -1,45 +1,44 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506,-0.506 -Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,,,,,,,,,,,,,,, -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 5 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299,0.3299 -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331,0.5331 -Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, -Dummy for female,female,,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099,0.4099 -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163,-1.8163 -Number of work tours undertaken by the person,num_work_tours,,,,,,,,,,,,,,,, -Number of university tours tours undertaken by the person,num_univ_tours,,,,,,,,,,,,,,,, -Number of school tours tours undertaken by the person,num_school_tours,,,,,,,,,,,,,,,, -Number of escort tours tours undertaken by the person,num_escort_tours,,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365,1.2365 -Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, -Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377,1.8377 -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549,0.9549 -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 15 Miles,(distance_in_miles < 15),,,,,,,,,,,,,,,, -dummy for distance in miles,distance_in_miles,,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438,0.0438 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,1,,,,,-2.123,-2.123,-2.123,-2.123,-3.798,-3.798,-3.798,-3.798,-5.85,-5.85,-5.85,-5.85 -Alternative specific constant for return stops,1,,-1.206,-2.672,-3.364,,-1.206,-2.672,-3.364,,-1.206,-2.672,-3.364,,-1.206,-2.672,-3.364 -Alternative specific constant for the total number of stops,1,,,0,0,,0,0,0.701,0,0,0.701,1.135,0,0.701,1.135,1.135 -Phase1_Calibration,1,,-0.462185603,0.034598859,0.143710811,-0.107820253,0.247416913,0.525399532,0.065742876,-0.264881606,-0.844194184,-0.191651123,-0.295391166,1.390171934,-1.256414914,0.034312538,0.662067578 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh,Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons +util_number_of_full_time_workers_in_hh,Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,,,,,,,,,,,,,,, +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_5_and_15_including_years_old,Num kids between 5 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers +util_number_of_vehicles,Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, +util_dummy_for_female,Dummy for female,female,,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,num_work_tours,,,,,,,,,,,,,,,, +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,num_univ_tours,,,,,,,,,,,,,,,, +util_number_of_school_tours_tours_undertaken_by_the_person,Number of school tours tours undertaken by the person,num_school_tours,,,,,,,,,,,,,,,, +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,num_escort_tours,,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_ +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_15_miles,dummy for distance less than 15 Miles,(distance_in_miles < 15),,,,,,,,,,,,,,,, +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,1,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,1,,coef_alternative_specific_constant_for_return_stops_0out_1in,-2.672,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,-2.672,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,-2.672,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,-2.672,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,1,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_Phase1_Calibration,Phase1_Calibration,1,,-0.462185603,0.034598859,0.143710811,-0.107820253,0.247416913,0.525399532,0.065742876,-0.264881606,-0.844194184,-0.191651123,-0.295391166,1.390171934,-1.256414914,0.034312538,0.662067578 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_shopping.csv b/activitysim/examples/example_semcog/configs/stop_frequency_shopping.csv index eeb66016c..0a2dacf18 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_shopping.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_shopping.csv @@ -1,51 +1,50 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522,-0.1522 -Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,,,,,,,,,,,,,,, -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 5 and 15 (including) years old,num_age_5_15,,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482,0.0482 -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, -Dummy for female,~is_joint & female,,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721,0.1721 -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908,-1.4908 -Number of work tours undertaken by the person,~is_joint * num_work_tours,,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548,-0.548 -Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709,-0.6709 -Number of school tours tours undertaken by the person,~is_joint * num_school_tours,,,,,,,,,,,,,,,, -Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,,,,,,,,,,,,,,, -Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977,-0.1977 -Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733,-0.0733 -Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -Dummy for only adults participate in the tour,composition=='adults',,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902,0.1902 -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,,,,,,,,,,,,,,, -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056,0.9056 -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 5 Miles,(distance_in_miles < 5),,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768,0.3768 -dummy for distance in miles,distance_in_miles,,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,~is_joint,,,,,-1.339,-1.339,-1.339,-1.339,-3.11,-3.11,-3.11,-3.11,-4.487,-4.487,-4.487,-4.487 -Alternative specific constant for return stops,~is_joint,,-1.179,-2.305,-3.024,,-1.179,-2.305,-3.024,,-1.179,-2.305,-3.024,,-1.179,-2.305,-3.024 -Alternative specific constant for the total number of stops,~is_joint,,,0,0,,0,0,0.252,0,0,0.252,0.514,0,0.252,0.514,0.514 -Alternative specific constant for outbound stops on joint tours,is_joint,,,,,-1.783,-1.783,-1.783,-1.783,-4.067,-4.067,-4.067,-4.067,-4.998,-4.998,-4.998,-4.998 -Alternative specific constant for return stops on joint tours,is_joint,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379 -Alternative specific constant for the total number of stops on joint tours,is_joint,,,0,0,,0,0,0.518,0,0,0.518,1.497,0,0.518,1.497,1.497 -Phase1_Calibration,~is_joint,,0.061908526,0.211807872,0.269959028,0.159052037,0.386325269,0.209133272,0.563685874,1.002319475,1.182476858,1.537241286,1.004078003,2.038636069,1.69019331,2.060858768,2.809711477 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh,Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons +util_number_of_full_time_workers_in_hh,Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,,,,,,,,,,,,,,, +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_5_and_15_including_years_old,Num kids between 5 and 15 (including) years old,num_age_5_15,,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, +util_dummy_for_female,Dummy for female,~is_joint & female,,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,~is_joint * num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person +util_number_of_school_tours_tours_undertaken_by_the_person,Number of school tours tours undertaken by the person,~is_joint * num_school_tours,,,,,,,,,,,,,,,, +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,,,,,,,,,,,,,,, +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person,coef_number_of_maintenace_tours_tours_undertaken_by_the_person +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold +util_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_number_of_persons_participating_in_the_tour_return_stops_interaction,Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_dummy_for_only_adults_participate_in_the_tour,Dummy for only adults participate in the tour,composition=='adults',,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour,coef_dummy_for_only_adults_participate_in_the_tour +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,,,,,,,,,,,,,,, +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_5_miles,dummy for distance less than 5 Miles,(distance_in_miles < 5),,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles,coef_dummy_for_distance_less_than_5_miles +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,~is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,~is_joint,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,~is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_alternative_specific_constant_for_outbound_stops_on_joint_tours,Alternative specific constant for outbound stops on joint tours,is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in +util_alternative_specific_constant_for_return_stops_on_joint_tours,Alternative specific constant for return stops on joint tours,is_joint,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours,Alternative specific constant for the total number of stops on joint tours,is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +util_Phase1_Calibration,Phase1_Calibration,~is_joint,,0.061908526,0.211807872,0.269959028,0.159052037,0.386325269,0.209133272,0.563685874,1.002319475,1.182476858,1.537241286,1.004078003,2.038636069,1.69019331,2.060858768,2.809711477 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_social.csv b/activitysim/examples/example_semcog/configs/stop_frequency_social.csv index 82031d49b..f6193fea5 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_social.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_social.csv @@ -1,54 +1,53 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,,,,,,,,,,,,,,, -Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,,,,,,,,,,,,,,, -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19 -Dummy for female,~is_joint & female,,,,,,,,,,,,,,,, -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73,-1.73 -Number of work tours undertaken by the person,~is_joint * num_work_tours,,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28 -Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,,,,,,,,,,,,,,, -Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,,,,,,,,,,,,,,, -Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24 -Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46 -Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, -At least one kid and one adult participate in the tour,composition=='mixed',,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37 -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45 -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31 -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 20 Miles ,(distance_in_miles < 20),,,,,,,,,,,,,,,, -dummy for distance in miles,distance_in_miles,,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,~is_joint,,,,,-1.081,-1.081,-1.081,-1.081,-2.874,-2.874,-2.874,-2.874,-4.552,-4.552,-4.552,-4.552 -Alternative specific constant for return stops,~is_joint,,-1.12,-2.764,-3.451,,-1.12,-2.764,-3.451,,-1.12,-2.764,-3.451,,-1.12,-2.764,-3.451 -Alternative specific constant for the total number of stops,~is_joint,,,0,0,,0,0,0.496,0,0,0.496,0.882,0,0.496,0.882,0.882 -Alternative specific constant for outbound stops on joint tours,is_joint,,,,,-1.783,-1.783,-1.783,-1.783,-4.067,-4.067,-4.067,-4.067,-4.998,-4.998,-4.998,-4.998 -Alternative specific constant for return stops on joint tours,is_joint,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379,,-1.329,-2.796,-3.379 -Alternative specific constant for the total number of stops on joint tours,is_joint,,,0,0,,0,0,0.518,0,0,0.518,1.497,0,0.518,1.497,1.497 -Dummy for an outbound visiting tour,primary_purpose == 'social',,,,,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69 -Dummy for a return visiting tour,primary_purpose == 'social',,-0.64,-0.64,-0.64,,-0.64,-0.64,-0.64,,-0.64,-0.64,-0.64,,-0.64,-0.64,-0.64 -Dummy for a visiting tour with both outbound and return leg,primary_purpose == 'social',,,,,,0.44,0.44,0.44,,0.44,0.44,0.44,,0.44,0.44,0.44 -Phase1_Calibration,~is_joint,,0.38246443,0.839705649,1.208071759,0.577945215,0.470848758,0.683396345,0.561543342,1.335624596,0.972779572,1.949517699,0.318404726,3.210420697,0.539522475,0.864775287,3.503722118 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh_,Middle to Low Income HH ,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,,,,,,,,,,,,,,, +util_number_of_full_time_workes_in_hh,Number of full time workes in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,,,,,,,,,,,,,,, +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_4_and_15_including_years_old,Num kids between 4 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles +util_dummy_for_female,Dummy for female,~is_joint & female,,,,,,,,,,,,,,,, +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,~is_joint * num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,~is_joint * num_univ_tours,,,,,,,,,,,,,,,, +util_number_of_shool_tours_tours_undertaken_by_the_person,Number of shool tours tours undertaken by the person,~is_joint * num_school_tours,,,,,,,,,,,,,,,, +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,~is_joint * num_escort_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,~is_joint * num_shop_tours,,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person,coef_number_of_shop_tours_undertaken_by_the_person +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,~is_joint * num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,~is_joint * num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,~is_joint * num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,Number of persons participating in the tour.Outgoing stops interaction,is_joint * number_of_participants,,,,,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction,coef_number_of_persons_participating_in_the_tour_outgoing_stops_interaction +util_number_of_persons_participating_in_the_tour_return_stops_interaction,Number of persons participating in the tour.Return stops interaction,is_joint * number_of_participants,,,,,,,,,,,,,,,, +util_at_least_one_kid_and_one_adult_participate_in_the_tour,At least one kid and one adult participate in the tour,composition=='mixed',,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour,coef_at_least_one_kid_and_one_adult_participate_in_the_tour +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_ +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_ +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_20_miles_,dummy for distance less than 20 Miles ,(distance_in_miles < 20),,,,,,,,,,,,,,,, +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,~is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,~is_joint,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,~is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_alternative_specific_constant_for_outbound_stops_on_joint_tours,Alternative specific constant for outbound stops on joint tours,is_joint,,,,,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_1out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_2out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in,coef_alternative_specific_constant_for_outbound_stops_on_joint_tours_3out_0in +util_alternative_specific_constant_for_return_stops_on_joint_tours,Alternative specific constant for return stops on joint tours,is_joint,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in,,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_1in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_return_stops_on_joint_tours_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours,Alternative specific constant for the total number of stops on joint tours,is_joint,,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_on_joint_tours_2out_3in +util_dummy_for_an_outbound_visiting_tour,Dummy for an outbound visiting tour,primary_purpose == 'social',,,,,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour,coef_dummy_for_an_outbound_visiting_tour +util_dummy_for_a_return_visiting_tour,Dummy for a return visiting tour,primary_purpose == 'social',,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour,coef_dummy_for_a_return_visiting_tour +util_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,Dummy for a visiting tour with both outbound and return leg,primary_purpose == 'social',,,,,,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg,coef_dummy_for_a_visiting_tour_with_both_outbound_and_return_leg +util_Phase1_Calibration,Phase1_Calibration,~is_joint,,0.38246443,0.839705649,1.208071759,0.577945215,0.470848758,0.683396345,0.561543342,1.335624596,0.972779572,1.949517699,0.318404726,3.210420697,0.539522475,0.864775287,3.503722118 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_univ.csv b/activitysim/examples/example_semcog/configs/stop_frequency_univ.csv index 725233c68..411fb9502 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_univ.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_univ.csv @@ -1,45 +1,45 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, -High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, -Number of HH Persons,hhsize,,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827,-0.2827 -Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,,,,,,,,,,,,,,, -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, -Num kids between 5 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823,0.6823 -Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, -Number of Vehicles,auto_ownership,,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703,0.1703 -Dummy for female,female,,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349,0.7349 -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,,,,,,,,,,,,,,, -Number of work tours undertaken by the person,num_work_tours,,,,,,,,,,,,,,,, -Number of university tours tours undertaken by the person,num_univ_tours,,,,,,,,,,,,,,,, -Number of school tours tours undertaken by the person,num_school_tours,,,,,,,,,,,,,,,, -Number of escort tours tours undertaken by the person,num_escort_tours,,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018,0.9018 -Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, -Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,,,,,,,,,,,,,,, -Arrival later than 17:00.,(end > 28),,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389,0.389 -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434,0.8434 -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481,0.2481 -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 20 Miles,(distance_in_miles < 20),,,,,,,,,,,,,,,, -dummy for distance in miles,distance_in_miles,,,,,,,,,,,,,,,, -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,1,,,,,-2.628,-2.628,-2.628,-2.628,-3.741,-3.741,-3.741,-3.741,-4.981,-4.981,-4.981,-4.981 -Alternative specific constant for return stops,1,,-2.003,-3.51,-3.677,,-2.003,-3.51,-3.677,,-2.003,-3.51,-3.677,,-2.003,-3.51,-3.677 -Alternative specific constant for the total number of stops,1,,,0,0,,0,0,1.272,0,0,1.272,1.871,0,1.272,1.871,1.871 -Phase1_Calibration,1,,0.420011539,0.781344394,0.733748807,0.712121201,1.545847839,1.973538669,0.675841505,0.652388889,0.802044327,0.807649045,0.537484229,1.764449963,1.356930627,0.668833391,1.667362221 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh,Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,,,,,,,,,,,,,,, +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,,,,,,,,,,,,,,, +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,,,,,,,,,,,,,,, +util_number_of_hh_persons,Number of HH Persons,hhsize,,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons +util_number_of_full_time_workers_in_hh,Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,,,,,,,,,,,,,,, +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,,,,,,,,,,,,,,, +util_num_kids_between_5_and_15_including_years_old,Num kids between 5 and 15 (including) years old,num_age_5_15,,,,,,,,,,,,,,,, +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,,,,,,,,,,,,,,, +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,,,,,,,,,,,,,,, +util_number_of_vehicles,Number of Vehicles,auto_ownership,,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles,coef_number_of_vehicles +util_dummy_for_female,Dummy for female,female,,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,,,,,,,,,,,,,,, +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,num_work_tours,,,,,,,,,,,,,,,, +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,num_univ_tours,,,,,,,,,,,,,,,, +util_number_of_school_tours_tours_undertaken_by_the_person,Number of school tours tours undertaken by the person,num_school_tours,,,,,,,,,,,,,,,, +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,num_escort_tours,,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,,,,,,,,,,,,,,, +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>5) & (start<8),,,,,,,,,,,,,,,, +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 16),,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_,coef_arrival_later_than_17_00_ +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 18),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 10),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 8),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_ +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 2),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction,coef_hh_accesibility_for_inbound_tours_interaction +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_20_miles,dummy for distance less than 20 Miles,(distance_in_miles < 20),,,,,,,,,,,,,,,, +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,,,,,,,,,,,,,,, +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,1,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,1,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,1,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_1out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_Phase1_Calibration,Phase1_Calibration,1,,0.420011539,0.781344394,0.733748807,0.712121201,1.545847839,1.973538669,0.675841505,0.652388889,0.802044327,0.807649045,0.537484229,1.764449963,1.356930627,0.668833391,1.667362221 +util_Major University Calibration,Major University Calibration,is_major_univ_student,,-0.199248949,0.652388897,0.625258509,-1.850257358,-1.049976118,-0.922350027,0.617946267,-1.566065939,-0.401448626,-0.508496898,-0.026438159,-3.878745091,-5,0.876560807,-1.094489763 diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_university_parking.yaml b/activitysim/examples/example_semcog/configs/stop_frequency_university_parking.yaml new file mode 100644 index 000000000..0cf1111c6 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/stop_frequency_university_parking.yaml @@ -0,0 +1,3 @@ + +# name of parking purpose +PARKING_TRIP_NAME: parking diff --git a/activitysim/examples/example_semcog/configs/stop_frequency_work.csv b/activitysim/examples/example_semcog/configs/stop_frequency_work.csv index f10d875a1..012e62ccd 100755 --- a/activitysim/examples/example_semcog/configs/stop_frequency_work.csv +++ b/activitysim/examples/example_semcog/configs/stop_frequency_work.csv @@ -1,46 +1,45 @@ -Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in -Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17 -Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23 -High Income HH,(income_in_thousands>=100000),,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24 -Number of HH Persons,hhsize,,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31 -Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, -Number of Students in HH,num_student,,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21 -Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, -Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74 -Num kids between 5 and 15 (including) years old,num_age_5_15,,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08 -Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26 -Number of Adults (>= 16 years old),num_adult,,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03 -Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, -Number of Cars > Number of Workers,more_cars_than_workers,,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16 -Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, -Dummy for female,female,,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22 -Dummy for all stops made by transit,tour_mode_is_transit,,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7 -Dummy for walking to all stops,tour_mode_is_non_motorized,,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54,-1.54 -Number of work tours undertaken by the person,num_work_tours,,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15 -Number of university tours tours undertaken by the person,num_univ_tours,,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48 -Number of school tours tours undertaken by the person,num_school_tours,,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55,-1.55 -Number of escort tours tours undertaken by the person,num_escort_tours,,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2 -Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, -Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, -Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, -Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, -Number of shop tours undertaken by the houshold,num_hh_shop_tours,,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05 -AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93,-1.93 -Arrival later than 17:00.,(end > 28),,,,,,,,,,,,,,,, -Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31 -Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6 -Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,,,,,,,,,,,,,,, -Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, -HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, -Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, -dummy for distance less than 20 Miles,(distance_in_miles < 20),,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22 -dummy for distance in miles,distance_in_miles,,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01 -#distance in miles * Number of stops,distance_in_miles * @@numStopsAlt,,,,,,,,,,,,,,,, -No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Alternative specific constant for outbound stops,1,,,,,-0.833,-0.833,-0.833,-0.833,-2.613,-2.613,-2.613,-2.613,-3.934,-3.934,-3.934,-3.934 -Alternative specific constant for return stops,1,,-0.445,-1.775,-2.139,,-0.445,-1.775,-2.139,,-0.445,-1.775,-2.139,,-0.445,-1.775,-2.139 -Alternative specific constant for the total number of stops,1,,,0,0,,0,0,0,0,0,0,0.695,0,0,0.695,0.695 -Number of subtours in the tour,num_atwork_subtours,,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19 -Phase1_Calibration,1,,0.223196473,0.325510562,0.203854333,-0.303375802,-0.391244072,-0.093964049,-0.096568307,-0.097190886,-0.494486563,0.334444913,-0.145593481,0.40493641,-0.229067675,0.390561162,0.076806162 +Label,Description,Expression,0out_0in,0out_1in,0out_2in,0out_3in,1out_0in,1out_1in,1out_2in,1out_3in,2out_0in,2out_1in,2out_2in,2out_3in,3out_0in,3out_1in,3out_2in,3out_3in +util_middle_to_low_income_hh,Middle to Low Income HH,(income_in_thousands>19999) & (income_in_thousands<50000),,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh,coef_middle_to_low_income_hh +util_mid_to_high_income_hh,Mid to High Income HH,(income_in_thousands>=50000) & (income_in_thousands<100000),,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh,coef_mid_to_high_income_hh +util_high_income_hh,High Income HH,(income_in_thousands>=100000),,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh,coef_high_income_hh +util_number_of_hh_persons,Number of HH Persons,hhsize,,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons,coef_number_of_hh_persons +util_number_of_full_time_workers_in_hh,Number of full time workers in HH,num_full,,,,,,,,,,,,,,,, +util_number_of_students_in_hh,Number of Students in HH,num_student,,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh,coef_number_of_students_in_hh +util_num_kids_between_0_and_4_including_years_old,Num Kids between 0 and 4 (including) years old,num_age_0_4,,,,,,,,,,,,,,,, +util_presence_of_kids_between_0_and_4_including_years_old,Presence of Kids between 0 and 4 (including) years old,(num_age_0_4 > 0),,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old,coef_presence_of_kids_between_0_and_4_including_years_old +util_num_kids_between_5_and_15_including_years_old,Num kids between 5 and 15 (including) years old,num_age_5_15,,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old,coef_num_kids_between_5_and_15_including_years_old +util_presence_of_kids_between_5_and_15_including_years_old,Presence of kids between 5 and 15 (including) years old,(num_age_5_15 > 0),,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old,coef_presence_of_kids_between_5_and_15_including_years_old +util_number_of_adults_16_years_old_,Number of Adults (>= 16 years old),num_adult,,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_,coef_number_of_adults_16_years_old_ +util_dummy_for_single_parent_household,Dummy for single parent household,(num_adult == 1) & (num_age_0_4 + num_age_5_15 > 0),,,,,,,,,,,,,,,, +util_number_of_cars_number_of_workers,Number of Cars > Number of Workers,more_cars_than_workers,,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers,coef_number_of_cars_number_of_workers +util_number_of_vehicles,Number of Vehicles,auto_ownership,,,,,,,,,,,,,,,, +util_dummy_for_female,Dummy for female,female,,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female,coef_dummy_for_female +util_dummy_for_all_stops_made_by_transit,Dummy for all stops made by transit,tour_mode_is_transit,,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit,coef_dummy_for_all_stops_made_by_transit +util_dummy_for_walking_to_all_stops,Dummy for walking to all stops,tour_mode_is_non_motorized,,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops,coef_dummy_for_walking_to_all_stops +util_number_of_work_tours_undertaken_by_the_person,Number of work tours undertaken by the person,num_work_tours,,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person,coef_number_of_work_tours_undertaken_by_the_person +util_number_of_university_tours_tours_undertaken_by_the_person,Number of university tours tours undertaken by the person,num_univ_tours,,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person,coef_number_of_university_tours_tours_undertaken_by_the_person +util_number_of_school_tours_tours_undertaken_by_the_person,Number of school tours tours undertaken by the person,num_school_tours,,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person,coef_number_of_school_tours_tours_undertaken_by_the_person +util_number_of_escort_tours_tours_undertaken_by_the_person,Number of escort tours tours undertaken by the person,num_escort_tours,,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person,coef_number_of_escort_tours_tours_undertaken_by_the_person +util_number_of_shop_tours_undertaken_by_the_person,Number of shop tours undertaken by the person,num_shop_tours,,,,,,,,,,,,,,,, +util_number_of_maintenace_tours_tours_undertaken_by_the_person,Number of maintenace tours tours undertaken by the person,num_maint_tours,,,,,,,,,,,,,,,, +util_number_of_eating_tours_tours_undertaken_by_the_person,Number of eating tours tours undertaken by the person,num_eatout_tours,,,,,,,,,,,,,,,, +util_number_of_visit_tours_tours_undertaken_by_the_person,Number of visit tours tours undertaken by the person,num_social_tours,,,,,,,,,,,,,,,, +util_number_of_shop_tours_undertaken_by_the_houshold,Number of shop tours undertaken by the houshold,num_hh_shop_tours,,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold,coef_number_of_shop_tours_undertaken_by_the_houshold +util_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,AM Peak departure between 6AM and 7 AM (including) Interacted with outbound tours,(start>6) & (start<11),,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours,coef_am_peak_departure_between_6am_and_7_am_including_interacted_with_outbound_tours +util_arrival_later_than_17_00_,Arrival later than 17:00.,(end > 28),,,,,,,,,,,,,,,, +util_evening_arrival_19_00_interacted_with_return_tours,Evening Arrival (>=19:00) Interacted with return tours,(end > 32),,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours,coef_evening_arrival_19_00_interacted_with_return_tours +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,Dummy for the duration of the tour being equal or greater than or equal to 11 hours,(duration > 21),,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours,coef_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_11_hours +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_9_hours_,Dummy for the duration of the tour being equal or greater than or equal to 9 hours ,(duration > 17),,,,,,,,,,,,,,,, +util_dummy_for_the_duration_of_the_tour_being_equal_or_greater_than_or_equal_to_3_hours_,Dummy for the duration of the tour being equal or greater than or equal to 3 hours ,(duration > 5),,,,,,,,,,,,,,,, +util_hh_accesibility_for_outbound_tours_interaction,HH accesibility for outbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_hh_accesibility_for_inbound_tours_interaction,HH accesibility for inbound tours. Interaction,hhacc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_outbound_tours_interaction,Primary Destination Accessibility for outbound tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_primary_destination_accessibility_for_return_tours_interaction,Primary Destination Accessibility for return tours. Interaction,pracc,,,,,,,,,,,,,,,, +util_dummy_for_distance_less_than_20_miles,dummy for distance less than 20 Miles,(distance_in_miles < 20),,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles,coef_dummy_for_distance_less_than_20_miles +util_dummy_for_distance_in_miles,dummy for distance in miles,distance_in_miles,,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles,coef_dummy_for_distance_in_miles +util_no_stops_if_tour_mode_is_drivetransit,No stops if tour mode is driveTransit,tour_mode_is_drive_transit,,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit,coef_no_stops_if_tour_mode_is_drivetransit +util_alternative_specific_constant_for_outbound_stops,Alternative specific constant for outbound stops,1,,,,,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_1out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_2out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in,coef_alternative_specific_constant_for_outbound_stops_3out_0in +util_alternative_specific_constant_for_return_stops,Alternative specific constant for return stops,1,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in,,coef_alternative_specific_constant_for_return_stops_0out_1in,coef_alternative_specific_constant_for_return_stops_0out_2in,coef_alternative_specific_constant_for_return_stops_0out_3in +util_alternative_specific_constant_for_the_total_number_of_stops,Alternative specific constant for the total number of stops,1,,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_0out_2in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in,coef_alternative_specific_constant_for_the_total_number_of_stops_2out_3in +util_number_of_subtours_in_the_tour,Number of subtours in the tour,num_atwork_subtours,,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour,coef_number_of_subtours_in_the_tour +util_Phase1_Calibration,Phase1_Calibration,1,,0.223196473,0.325510562,0.203854333,-0.303375802,-0.391244072,-0.093964049,-0.096568307,-0.097190886,-0.494486563,0.334444913,-0.145593481,0.40493641,-0.229067675,0.390561162,0.076806162 diff --git a/activitysim/examples/example_semcog/configs/tour_departure_and_duration_segments.csv b/activitysim/examples/example_semcog/configs/tour_departure_and_duration_segments.csv index ad710ded1..917f87564 100644 --- a/activitysim/examples/example_semcog/configs/tour_departure_and_duration_segments.csv +++ b/activitysim/examples/example_semcog/configs/tour_departure_and_duration_segments.csv @@ -1,24 +1,60 @@ tour_purpose,time_period,start,end -work,EA,3,5 -work,AM,8,11 -work,MD,14,22 -work,PM,26,30 -work,EV,33,44 -#,,, -school,EA,3,5 -school,AM,8,11 -school,MD,14,22 -school,PM,26,30 -school,EV,33,44 -#,,, -univ,EA,3,5 -univ,AM,8,11 -univ,MD,14,22 -univ,PM,26,30 -univ,EV,33,44 -#,,, -,EA,3,5 -,AM,8,11 -,MD,14,22 -,PM,26,30 -,EV,33,44 +work,EA,1,6 +work,AM,9,10 +work,MD,13,24 +work,PM,25,27 +work,EV,35,33 +#,,, +school,EA,1,6 +school,AM,9,10 +school,MD,13,24 +school,PM,25,27 +school,EV,35,33 +#,,, +univ,EA,1,6 +univ,AM,9,10 +univ,MD,13,24 +univ,PM,25,27 +univ,EV,35,33 +#,,, +shopping,EA,1,6 +shopping,AM,9,10 +shopping,MD,13,24 +shopping,PM,25,27 +shopping,EV,35,33 +#,,, +escort,EA,1,6 +escort,AM,9,10 +escort,MD,13,24 +escort,PM,25,27 +escort,EV,35,33 +#,,, +othmaint,EA,1,6 +othmaint,AM,9,10 +othmaint,MD,13,24 +othmaint,PM,25,27 +othmaint,EV,35,33 +#,,, +othdiscr,EA,1,6 +othdiscr,AM,9,10 +othdiscr,MD,13,24 +othdiscr,PM,25,27 +othdiscr,EV,35,33 +#,,, +social,EA,1,6 +social,AM,9,10 +social,MD,13,24 +social,PM,25,27 +social,EV,35,33 +#,,, +eatout,EA,1,6 +eatout,AM,9,10 +eatout,MD,13,24 +eatout,PM,25,27 +eatout,EV,35,33 +#,,, +atwork,EA,1,6 +atwork,AM,9,10 +atwork,MD,13,24 +atwork,PM,25,27 +atwork,EV,35,33 diff --git a/activitysim/examples/example_semcog/configs/tour_mode_choice.csv b/activitysim/examples/example_semcog/configs/tour_mode_choice.csv index 412e80344..1dedfb667 100755 --- a/activitysim/examples/example_semcog/configs/tour_mode_choice.csv +++ b/activitysim/examples/example_semcog/configs/tour_mode_choice.csv @@ -5,29 +5,26 @@ util_DRIVEALONE_Unavailable_for_persons_less_than_16,DRIVEALONE - Unavailable fo util_DRIVEALONE_Unavailable_forJoint_tours,DRIVEALONE - Unavailable for joint tours,is_joint == True,-999,,,,,,,,,,,,,,,,, util_DRIVEALONE_Unavailable_if_didn't_drive_to_work,DRIVEALONE - Unavailable if didn't drive to work,is_atwork_subtour & ~work_tour_is_SOV,-999,,,,,,,,,,,,,,,,, util_DRIVEALONE_In_vehicle_time,DRIVEALONE - In-vehicle time,@odt_skims['SOV_TIME'] + dot_skims['SOV_TIME'],coef_ivt,,,,,,,,,,,,,,,,, -util_DRIVEALONE_Terminal_time,DRIVEALONE - Terminal time,@2 * walktimeshort_multiplier * df.terminal_time,0,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Terminal_time,DRIVEALONE - Terminal time,@2 * walktimeshort_multiplier * df.terminal_time,coef_ivt,,,,,,,,,,,,,,,,, util_DRIVEALONE_Operating_cost_,DRIVEALONE - Operating cost ,@ivt_cost_multiplier * df.ivot * costPerMile * (odt_skims['SOV_DIST'] + dot_skims['SOV_DIST']),coef_ivt,,,,,,,,,,,,,,,,, util_DRIVEALONE_Parking_cost_,DRIVEALONE - Parking cost ,@ivt_cost_multiplier * df.ivot * df.daily_parking_cost,coef_ivt,,,,,,,,,,,,,,,,, -util_DRIVEALONE_Bridge_toll_,DRIVEALONE - Bridge toll ,@ivt_cost_multiplier * df.ivot * (odt_skims['SOV_BTOLL'] + dot_skims['SOV_BTOLL']),0,,,,,,,,,,,,,,,,, util_DRIVEALONE_Person_is_between_16_and_19_years_old,DRIVEALONE - Person is between 16 and 19 years old,@(df.age >= 16) & (df.age <= 19),coef_age1619_da_multiplier,,,,,,,,,,,,,,,,, #Shared_ride_2,#Shared ride 2,,,,,,,,,,,,,,,,,,, util_SHARED2_Unavailable,SHARED2 - Unavailable,hov2_available == False,,-999,,,,,,,,,,,,,,,, util_SHARED2_Unavailable_based_on_party_size,SHARED2 - Unavailable based on party size,is_joint & (number_of_participants > 2),,-999,,,,,,,,,,,,,,,, util_SHARED2_In_vehicle_time,SHARED2 - In-vehicle time,@(odt_skims['HOV2_TIME'] + dot_skims['HOV2_TIME']),,coef_ivt,,,,,,,,,,,,,,,, -util_SHARED2_Terminal_time,SHARED2 - Terminal time,@2 * walktimeshort_multiplier * df.terminal_time,,0,,,,,,,,,,,,,,,, +util_SHARED2_Terminal_time,SHARED2 - Terminal time,@2 * walktimeshort_multiplier * df.terminal_time,,coef_ivt,,,,,,,,,,,,,,,, util_SHARED2_Operating_cost,SHARED2 - Operating cost,@ivt_cost_multiplier * df.ivot * costPerMile * (odt_skims['HOV2_DIST'] + dot_skims['HOV2_DIST']),,coef_ivt,,,,,,,,,,,,,,,, util_SHARED2_Parking_cost,SHARED2 - Parking cost,@ivt_cost_multiplier * df.ivot * df.daily_parking_cost / costShareSr2,,coef_ivt,,,,,,,,,,,,,,,, -util_SHARED2_Bridge_toll,SHARED2 - Bridge toll,@ivt_cost_multiplier * df.ivot * (odt_skims['HOV2_BTOLL'] + dot_skims['HOV2_BTOLL']) / costShareSr2,,0,,,,,,,,,,,,,,,, util_SHARED2_One_person_household,SHARED2 - One person household,@(df.hhsize == 1),,coef_hhsize1_sr_multiplier,,,,,,,,,,,,,,,, util_SHARED2_Two_person_household,SHARED2 - Two person household,@(df.hhsize == 2),,coef_hhsize2_sr_multiplier,,,,,,,,,,,,,,,, util_SHARED2_Person_is_16_years_old_or_older,SHARED2 - Person is 16 years old or older,@(df.age >= 16),,coef_age16p_sr_multiplier,,,,,,,,,,,,,,,, #Shared_ride_3+,#Shared ride 3+,,,,,,,,,,,,,,,,,,, util_SHARED3_Unavailable,SHARED3 - Unavailable,hov3_available == False,,,-999,,,,,,,,,,,,,,, util_SHARED3_In_vehicle_time,SHARED3 - In-vehicle time,@(odt_skims['HOV3_TIME'] + dot_skims['HOV3_TIME']),,,coef_ivt,,,,,,,,,,,,,,, -util_SHARED3_Terminal_time,SHARED3 - Terminal time,@2 * walktimeshort_multiplier * df.terminal_time,,,0,,,,,,,,,,,,,,, +util_SHARED3_Terminal_time,SHARED3 - Terminal time,@2 * walktimeshort_multiplier * df.terminal_time,,,coef_ivt,,,,,,,,,,,,,,, util_SHARED3_Operating_cost,SHARED3 - Operating cost,@ivt_cost_multiplier * df.ivot * costPerMile * (odt_skims['HOV3_DIST'] + dot_skims['HOV3_DIST']),,,coef_ivt,,,,,,,,,,,,,,, util_SHARED3_Parking_cost,SHARED3 - Parking cost,@ivt_cost_multiplier * df.ivot * df.daily_parking_cost / costShareSr3,,,coef_ivt,,,,,,,,,,,,,,, -util_SHARED3_Bridge_toll,SHARED3 - Bridge toll,@ivt_cost_multiplier * df.ivot * (odt_skims['HOV3_BTOLL'] + dot_skims['HOV3_BTOLL']) / costShareSr3,,,0,,,,,,,,,,,,,,, util_SHARED3_One_person_household,SHARED3 - One person household,@(df.hhsize == 1),,,coef_hhsize1_sr_multiplier,,,,,,,,,,,,,,, util_SHARED3_Two_person_household,SHARED3 - Two person household,@(df.hhsize == 2),,,coef_hhsize2_sr_multiplier,,,,,,,,,,,,,,, util_SHARED3_Person_is_16_years_old_or_older,SHARED3 - Person is 16 years old or older,@(df.age >= 16),,,coef_age16p_sr_multiplier,,,,,,,,,,,,,,, @@ -54,7 +51,7 @@ util_WALK_LOC_number_of_transfers,WALK_LOC - number of transfers,@xfers_wlk_mult util_WALK_LOC_Walk_access_time,WALK_LOC - Walk access time,@wacc_multiplier * 2 * df.origin_walk_time,,,,,,coef_ivt,,,,,,,,,,,, util_WALK_LOC_Walk_egress_time,WALK_LOC - Walk egress time,@wegr_multiplier * 2 * df.destination_walk_time,,,,,,coef_ivt,,,,,,,,,,,, util_WALK_LOC_Walk_other_time,WALK_LOC - Walk other time,@waux_multiplier * (odt_skims['WLK_LOC_WAUX'] + dot_skims['WLK_LOC_WAUX']),,,,,,coef_ivt,,,,,,,,,,,, -util_WALK_LOC_Fare,WALK_LOC - Fare,@ivt_cost_multiplier * df.fare_discount_percent * df.ivot * (odt_skims['WLK_LOC_FARE'] + dot_skims['WLK_LOC_FARE']),,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Fare,WALK_LOC - Fare,@ivt_cost_multiplier * df.ivot * (odt_skims['WLK_LOC_FARE'] + dot_skims['WLK_LOC_FARE']),,,,,,coef_ivt,,,,,,,,,,,, util_WALK_LOC_Destination_zone_densityIndex,WALK_LOC - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,coef_ivt,,,,,,,,,,,, util_WALK_LOC_Topology,WALK_LOC - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,coef_ivt,,,,,,,,,,,, util_WALK_LOC_Person_is_less_than_10_years_old,WALK_LOC - Person is less than 10 years old,@(df.age <= 10),,,,,,coef_age010_trn_multiplier,,,,,,,,,,,, @@ -73,7 +70,7 @@ util_WALK_PRM_number_of_transfers,WALK_PRM - number of transfers,@xfers_wlk_mult util_WALK_PRM_Walk_access_time,WALK_PRM - Walk access time,@wacc_multiplier * 2 * df.origin_walk_time,,,,,,,coef_ivt,,,,,,,,,,, util_WALK_PRM_Walk_egress_time,WALK_PRM - Walk egress time,@wegr_multiplier * 2 * df.destination_walk_time,,,,,,,coef_ivt,,,,,,,,,,, util_WALK_PRM_Walk_other_time,WALK_PRM - Walk other time,@waux_multiplier * (odt_skims['WLK_PRM_WAUX'] + dot_skims['WLK_PRM_WAUX']),,,,,,,coef_ivt,,,,,,,,,,, -util_WALK_PRM_Fare,WALK_PRM - Fare,@ivt_cost_multiplier * df.fare_discount_percent * df.ivot * (odt_skims['WLK_PRM_FARE'] + dot_skims['WLK_PRM_FARE']),,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Fare,WALK_PRM - Fare,@ivt_cost_multiplier * df.ivot * (odt_skims['WLK_PRM_FARE'] + dot_skims['WLK_PRM_FARE']),,,,,,,coef_ivt,,,,,,,,,,, util_WALK_PRM_Destination_zone_densityIndex,WALK_PRM - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,coef_ivt,,,,,,,,,,, util_WALK_PRM_Topology,WALK_PRM - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,coef_ivt,,,,,,,,,,, util_WALK_PRM_Person_is_less_than_10_years_old,WALK_PRM - Person is less than 10 years old,@(df.age <= 10),,,,,,,coef_age010_trn_multiplier,,,,,,,,,,, @@ -93,7 +90,7 @@ util_WALK_MIX_number_of_transfers,WALK_MIX - number of transfers,@xfers_wlk_mult util_WALK_MIX_Walk_access_time,WALK_MIX - Walk access time,@wacc_multiplier * 2 * df.origin_walk_time,,,,,,,,coef_ivt,,,,,,,,,, util_WALK_MIX_Walk_egress_time,WALK_MIX - Walk egress time,@wegr_multiplier * 2 * df.destination_walk_time,,,,,,,,coef_ivt,,,,,,,,,, util_WALK_MIX_Walk_other_time,WALK_MIX - Walk other time,@waux_multiplier * (odt_skims['WLK_MIX_WAUX'] + dot_skims['WLK_MIX_WAUX']),,,,,,,,coef_ivt,,,,,,,,,, -util_WALK_MIX_Fare,WALK_MIX - Fare,@ivt_cost_multiplier * df.fare_discount_percent * df.ivot * (odt_skims['WLK_MIX_FARE'] + dot_skims['WLK_MIX_FARE']),,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Fare,WALK_MIX - Fare,@ivt_cost_multiplier * df.ivot * (odt_skims['WLK_MIX_FARE'] + dot_skims['WLK_MIX_FARE']),,,,,,,,coef_ivt,,,,,,,,,, util_WALK_MIX_Destination_zone_densityIndex,WALK_MIX - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,coef_ivt,,,,,,,,,, util_WALK_MIX_Topology,WALK_MIX - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,coef_age010_trn_multiplier,,,,,,,,,, util_WALK_MIX_Person_is_less_than_10_years_old,WALK_MIX - Person is less than 10 years old,@(df.age <= 10),,,,,,,,1,,,,,,,,,, @@ -109,7 +106,7 @@ util_PNR_LOC_PNR_time,PNR_LOC - PNR time,@dtim_multiplier * (odt_skims['PNR_LOC_ util_PNR_LOC_Walk_access_time,PNR_LOC - Walk access time,@wacc_multiplier * df.destination_walk_time,,,,,,,,,coef_ivt,,,,,,,,, util_PNR_LOC_Walk_egress_time_(at_attraction_end),PNR_LOC - Walk egress time (at attraction end),@wegr_multiplier * df.destination_walk_time,,,,,,,,,coef_ivt,,,,,,,,, util_PNR_LOC_Walk_other_time,PNR_LOC - Walk other time,@waux_multiplier * (odt_skims['PNR_LOC_WAUX'] + dot_skims['PNRE_LOC_WAUX']),,,,,,,,,coef_ivt,,,,,,,,, -util_PNR_LOC_Fare_and_operating_cost,PNR_LOC - Fare and operating cost,@ivt_cost_multiplier * df.ivot * (df.fare_discount_percent * (odt_skims['PNR_LOC_FARE'] + dot_skims['PNRE_LOC_FARE']) + ((odt_skims['PNR_LOC_DDIST']+dot_skims['PNRE_LOC_DDIST']) * costPerMile)),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_Fare_and_operating_cost,PNR_LOC - Fare and operating cost,@ivt_cost_multiplier * df.ivot * ((odt_skims['PNR_LOC_FARE'] + dot_skims['PNRE_LOC_FARE']) + ((odt_skims['PNR_LOC_DDIST']+dot_skims['PNRE_LOC_DDIST']) * costPerMile)),,,,,,,,,coef_ivt,,,,,,,,, util_PNR_LOC_Ratio_of_PNR_access_distance_to_OD_distance,PNR_LOC - Ratio of PNR access distance to OD distance,@dacc_ratio * ((odt_skims['PNR_LOC_DDIST']+ dot_skims['PNRE_LOC_DDIST'])/ (od_skims['DIST']*2)),,,,,,,,,coef_ivt,,,,,,,,, util_PNR_LOC_Destination_zone_densityIndex,PNR_LOC - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,,coef_ivt,,,,,,,,, util_PNR_LOC_Topology,PNR_LOC - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,,coef_ivt,,,,,,,,, @@ -131,7 +128,7 @@ util_PNR_PRM_PNR_time,PNR_PRM - PNR time,@dtim_multiplier * (odt_skims['PNR_PRM_ util_PNR_PRM_Walk_access_time_(at_attraction_end),PNR_PRM - Walk access time (at attraction end),@wacc_multiplier * df.destination_walk_time,,,,,,,,,,coef_ivt,,,,,,,, util_PNR_PRM_Walk_egress_time_(at_attraction_end),PNR_PRM - Walk egress time (at attraction end),@wegr_multiplier * df.destination_walk_time,,,,,,,,,,coef_ivt,,,,,,,, util_PNR_PRM_Walk_other_time,PNR_PRM - Walk other time,@waux_multiplier * (odt_skims['PNR_PRM_WAUX'] + dot_skims['PNRE_PRM_WAUX']),,,,,,,,,,coef_ivt,,,,,,,, -util_PNR_PRM_Fare_and_operating_cost,PNR_PRM - Fare and operating cost,@ivt_cost_multiplier * df.ivot * (df.fare_discount_percent * (odt_skims['PNR_PRM_FARE']+dot_skims['PNRE_PRM_FARE']) + ((odt_skims['PNR_PRM_DDIST']+dot_skims['PNRE_PRM_DDIST']) *costPerMile)),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_Fare_and_operating_cost,PNR_PRM - Fare and operating cost,@ivt_cost_multiplier * df.ivot * ((odt_skims['PNR_PRM_FARE']+dot_skims['PNRE_PRM_FARE']) + ((odt_skims['PNR_PRM_DDIST']+dot_skims['PNRE_PRM_DDIST']) *costPerMile)),,,,,,,,,,coef_ivt,,,,,,,, util_PNR_PRM_Ratio_of_PNR_access_distance_to_OD_distance,PNR_PRM - Ratio of PNR access distance to OD distance,@dacc_ratio * ((odt_skims['PNR_PRM_DDIST']+ dot_skims['PNRE_PRM_DDIST'])/ (od_skims['DIST']*2)),,,,,,,,,,coef_ivt,,,,,,,, util_PNR_PRM_Destination_zone_densityIndex,PNR_PRM - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,,,coef_ivt,,,,,,,, util_PNR_PRM_Topology,PNR_PRM - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,,,coef_ivt,,,,,,,, @@ -154,7 +151,7 @@ util_PNR_MIX_PNR_time,PNR_MIX - PNR time,@dtim_multiplier * (odt_skims['PNR_MIX_ util_PNR_MIX_Walk_access_time_(at_attraction_end),PNR_MIX - Walk access time (at attraction end),@wacc_multiplier * df.destination_walk_time,,,,,,,,,,,coef_ivt,,,,,,, util_PNR_MIX_Walk_egress_ime_(at_attraction_end),PNR_MIX - Walk egress ime (at attraction end),@wegr_multiplier * df.destination_walk_time,,,,,,,,,,,coef_ivt,,,,,,, util_PNR_MIX_Walk_other_time,PNR_MIX - Walk other time,@waux_multiplier * (odt_skims['PNR_MIX_WAUX'] + dot_skims['PNRE_MIX_WAUX']),,,,,,,,,,,coef_ivt,,,,,,, -util_PNR_MIX_Fare_and_operating_cost,PNR_MIX - Fare and operating cost,@ivt_cost_multiplier * df.ivot * (df.fare_discount_percent * (odt_skims['PNR_MIX_FARE']+dot_skims['PNRE_MIX_FARE']) + ((odt_skims['PNR_MIX_DDIST']+dot_skims['PNRE_MIX_DDIST']) *costPerMile)),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_Fare_and_operating_cost,PNR_MIX - Fare and operating cost,@ivt_cost_multiplier * df.ivot * ((odt_skims['PNR_MIX_FARE']+dot_skims['PNRE_MIX_FARE']) + ((odt_skims['PNR_MIX_DDIST']+dot_skims['PNRE_MIX_DDIST']) *costPerMile)),,,,,,,,,,,coef_ivt,,,,,,, util_PNR_MIX_Ratio_of_PNR_access_distance_to_OD_distance,PNR_MIX - Ratio of PNR access distance to OD distance,@dacc_ratio * ((odt_skims['PNR_MIX_DDIST']+ dot_skims['PNRE_MIX_DDIST'])/ (od_skims['DIST']*2)),,,,,,,,,,,coef_ivt,,,,,,, util_PNR_MIX_Destination_zone_densityIndex,PNR_MIX - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,,,,coef_ivt,,,,,,, util_PNR_MIX_Topology,PNR_MIX - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,,,,coef_ivt,,,,,,, @@ -171,7 +168,7 @@ util_KNR_LOC_KNR_time,KNR_LOC - KNR time,@dtim_multiplier * (odt_skims['KNR_LOC_ util_KNR_LOC_Walk_access_time,KNR_LOC - Walk access time,@wacc_multiplier * df.destination_walk_time,,,,,,,,,,,,coef_ivt,,,,,, util_KNR_LOC_Walk_egress_time_(at_attraction_end),KNR_LOC - Walk egress time (at attraction end),@wegr_multiplier * df.destination_walk_time,,,,,,,,,,,,coef_ivt,,,,,, util_KNR_LOC_Walk_other_time,KNR_LOC - Walk other time,@waux_multiplier * (odt_skims['KNR_LOC_WAUX'] + dot_skims['KNRE_LOC_WAUX']),,,,,,,,,,,,coef_ivt,,,,,, -util_KNR_LOC_Fare_and_operating_cost,KNR_LOC - Fare and operating cost,@ivt_cost_multiplier * df.ivot * (df.fare_discount_percent * (odt_skims['KNR_LOC_FARE'] + dot_skims['KNRE_LOC_FARE']) + ((odt_skims['KNR_LOC_DDIST']+dot_skims['KNRE_LOC_DDIST']) * costPerMile)),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_Fare_and_operating_cost,KNR_LOC - Fare and operating cost,@ivt_cost_multiplier * df.ivot * ((odt_skims['KNR_LOC_FARE'] + dot_skims['KNRE_LOC_FARE']) + ((odt_skims['KNR_LOC_DDIST']+dot_skims['KNRE_LOC_DDIST']) * costPerMile)),,,,,,,,,,,,coef_ivt,,,,,, util_KNR_LOC_Ratio_of_KNR_access_distance_to_OD_distance,KNR_LOC - Ratio of KNR access distance to OD distance,@dacc_ratio * ((odt_skims['KNR_LOC_DDIST']+ dot_skims['KNRE_LOC_DDIST'])/ (od_skims['DIST']*2)),,,,,,,,,,,,coef_ivt,,,,,, util_KNR_LOC_Destination_zone_densityIndex,KNR_LOC - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,,,,,coef_ivt,,,,,, util_KNR_LOC_Topology,KNR_LOC - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,,,,,coef_ivt,,,,,, @@ -193,7 +190,7 @@ util_KNR_PRM_KNR_time,KNR_PRM - KNR time,@dtim_multiplier * (odt_skims['KNR_PRM_ util_KNR_PRM_Walk_access_time_(at_attraction_end),KNR_PRM - Walk access time (at attraction end),@wacc_multiplier * df.destination_walk_time,,,,,,,,,,,,,coef_ivt,,,,, util_KNR_PRM_Walk_egress_time_(at_attraction_end),KNR_PRM - Walk egress time (at attraction end),@wegr_multiplier * df.destination_walk_time,,,,,,,,,,,,,coef_ivt,,,,, util_KNR_PRM_Walk_other_time,KNR_PRM - Walk other time,@waux_multiplier * (odt_skims['KNR_PRM_WAUX'] + dot_skims['KNRE_PRM_WAUX']),,,,,,,,,,,,,coef_ivt,,,,, -util_KNR_PRM_Fare_and_operating_cost,KNR_PRM - Fare and operating cost,@ivt_cost_multiplier * df.ivot * (df.fare_discount_percent * (odt_skims['KNR_PRM_FARE']+dot_skims['KNRE_PRM_FARE']) + ((odt_skims['KNR_PRM_DDIST']+dot_skims['KNRE_PRM_DDIST']) *costPerMile)),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_Fare_and_operating_cost,KNR_PRM - Fare and operating cost,@ivt_cost_multiplier * df.ivot * ((odt_skims['KNR_PRM_FARE']+dot_skims['KNRE_PRM_FARE']) + ((odt_skims['KNR_PRM_DDIST']+dot_skims['KNRE_PRM_DDIST']) *costPerMile)),,,,,,,,,,,,,coef_ivt,,,,, util_KNR_PRM_Ratio_of_KNR_access_distance_to_OD_distance,KNR_PRM - Ratio of KNR access distance to OD distance,@dacc_ratio * ((odt_skims['KNR_PRM_DDIST']+ dot_skims['KNRE_PRM_DDIST'])/ (od_skims['DIST']*2)),,,,,,,,,,,,,coef_ivt,,,,, util_KNR_PRM_Destination_zone_densityIndex,KNR_PRM - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,,,,,,coef_ivt,,,,, util_KNR_PRM_Topology,KNR_PRM - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,,,,,,coef_ivt,,,,, @@ -216,7 +213,7 @@ util_KNR_MIX_KNR_time,KNR_MIX - KNR time,@dtim_multiplier * (odt_skims['KNR_MIX_ util_KNR_MIX_Walk_access_time_(at_attraction_end),KNR_MIX - Walk access time (at attraction end),@wacc_multiplier * df.destination_walk_time,,,,,,,,,,,,,,coef_ivt,,,, util_KNR_MIX_Walk_egress_ime_(at_attraction_end),KNR_MIX - Walk egress ime (at attraction end),@wegr_multiplier * df.destination_walk_time,,,,,,,,,,,,,,coef_ivt,,,, util_KNR_MIX_Walk_other_time,KNR_MIX - Walk other time,@waux_multiplier * (odt_skims['KNR_MIX_WAUX'] + dot_skims['KNRE_MIX_WAUX']),,,,,,,,,,,,,,coef_ivt,,,, -util_KNR_MIX_Fare_and_operating_cost,KNR_MIX - Fare and operating cost,@ivt_cost_multiplier * df.ivot * (df.fare_discount_percent * (odt_skims['KNR_MIX_FARE']+dot_skims['KNRE_MIX_FARE']) + ((odt_skims['KNR_MIX_DDIST']+dot_skims['KNRE_MIX_DDIST']) *costPerMile)),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_Fare_and_operating_cost,KNR_MIX - Fare and operating cost,@ivt_cost_multiplier * df.ivot * ((odt_skims['KNR_MIX_FARE']+dot_skims['KNRE_MIX_FARE']) + ((odt_skims['KNR_MIX_DDIST']+dot_skims['KNRE_MIX_DDIST']) *costPerMile)),,,,,,,,,,,,,,coef_ivt,,,, util_KNR_MIX_Ratio_of_KNR_access_distance_to_OD_distance,KNR_MIX - Ratio of KNR access distance to OD distance,@dacc_ratio * ((odt_skims['KNR_MIX_DDIST']+ dot_skims['KNRE_MIX_DDIST'])/ (od_skims['DIST']*2)),,,,,,,,,,,,,,coef_ivt,,,, util_KNR_MIX_Destination_zone_densityIndex,KNR_MIX - Destination zone densityIndex,@density_index_multiplier * df.dest_density_index,,,,,,,,,,,,,,coef_ivt,,,, util_KNR_MIX_Topology,KNR_MIX - Topology,@coef_topology_trn_multiplier * df.dest_topology,,,,,,,,,,,,,,coef_ivt,,,, @@ -263,6 +260,9 @@ util_PNR_to_Transit_Auto_sufficient,PNR to Transit - Auto Sufficient,@(df.is_ind util_KNR_to_Transit_Zero_auto,KNR to Transit - Zero auto,@(df.is_indiv & (df.auto_ownership == 0)),,,,,,,,,,,,knr_transit_ASC_no_auto,knr_transit_ASC_no_auto,knr_transit_ASC_no_auto,,,, util_KNR_to_Transit_Auto_deficient,KNR to Transit - Auto deficient,@(df.is_indiv & (df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,knr_transit_ASC_auto_deficient,knr_transit_ASC_auto_deficient,knr_transit_ASC_auto_deficient,,,, util_KNR_to_Transit_Auto_sufficient,KNR to Transit - Auto Sufficient,@(df.is_indiv & (df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,knr_transit_ASC_auto_sufficient,knr_transit_ASC_auto_sufficient,knr_transit_ASC_auto_sufficient,,,, +util_ridehail_Zero_auto,ridehail - Zero auto,@(df.is_indiv & (df.auto_ownership == 0)),,,,,,,,,,,,,,,,ridehail_ASC_no_auto,ridehail_ASC_no_auto,ridehail_ASC_no_auto +util_ridehail_Auto_deficient,ridehail - Auto deficient,@(df.is_indiv & (df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,ridehail_ASC_auto_deficient,ridehail_ASC_auto_deficient,ridehail_ASC_auto_deficient +util_ridehail_Auto_sufficient,ridehail - Auto sufficient,@(df.is_indiv & (df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,ridehail_ASC_auto_sufficient,ridehail_ASC_auto_sufficient,ridehail_ASC_auto_sufficient util_Taxi_Zero_auto,Taxi - Zero auto,@(df.is_indiv & (df.auto_ownership == 0)),,,,,,,,,,,,,,,,taxi_ASC_no_auto,, util_Taxi_Auto_deficient,Taxi - Auto deficient,@(df.is_indiv & (df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,taxi_ASC_auto_deficient,, util_Taxi_Auto_sufficient,Taxi - Auto sufficient,@(df.is_indiv & (df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,taxi_ASC_auto_sufficient,, @@ -294,6 +294,9 @@ util_Joint_PNR_to_Transit_Auto_sufficient,Joint - PNR to Transit - Auto Sufficie util_Joint_KNR_to_Transit_Zero_auto,Joint - KNR to Transit - Zero auto,@(df.is_joint & (df.auto_ownership == 0)),,,,,,,,,,,,joint_knr_transit_ASC_no_auto,joint_knr_transit_ASC_no_auto,joint_knr_transit_ASC_no_auto,,,, util_Joint_KNR_to_Transit_Auto_deficient,Joint - KNR to Transit - Auto deficient,@(df.is_joint & (df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,joint_knr_transit_ASC_auto_deficient,joint_knr_transit_ASC_auto_deficient,joint_knr_transit_ASC_auto_deficient,,,, util_Joint_KNR_to_Transit_Auto_sufficient,Joint - KNR to Transit - Auto Sufficient,@(df.is_joint & (df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,joint_knr_transit_ASC_auto_sufficient,joint_knr_transit_ASC_auto_sufficient,joint_knr_transit_ASC_auto_sufficient,,,, +util_Joint_ridehail_Zero_auto,Joint - ridehail - Zero auto,@(df.is_joint & (df.auto_ownership == 0)),,,,,,,,,,,,,,,,joint_ridehail_ASC_no_auto,joint_ridehail_ASC_no_auto,joint_ridehail_ASC_no_auto +util_Joint_ridehail_Auto_deficient,Joint - ridehail - Auto deficient,@(df.is_joint & (df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,joint_ridehail_ASC_auto_deficient,joint_ridehail_ASC_auto_deficient,joint_ridehail_ASC_auto_deficient +util_Joint_ridehail_Auto_sufficient,Joint - ridehail - Auto sufficient,@(df.is_joint & (df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,joint_ridehail_ASC_auto_sufficient,joint_ridehail_ASC_auto_sufficient,joint_ridehail_ASC_auto_sufficient util_Joint_Taxi_Zero_auto,Joint - Taxi - Zero auto,@(df.is_joint & (df.auto_ownership == 0)),,,,,,,,,,,,,,,,joint_taxi_ASC_no_auto,, util_Joint_Taxi_Auto_deficient,Joint - Taxi - Auto deficient,@(df.is_joint & (df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,joint_taxi_ASC_auto_deficient,, util_Joint_Taxi_Auto_sufficient,Joint - Taxi - Auto sufficient,@(df.is_joint & (df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,,joint_taxi_ASC_auto_sufficient,, @@ -321,3 +324,6 @@ School_Bus_Wait_Time,School Bus - Wait Time,@short_i_wait_multiplier*10,,,,,,,,, util_schoolbus_ASC_no_auto,School Bus No Auto ASC,@(df.auto_ownership == 0),,,,,,,,,,,,,,,schoolbus_ASC_no_auto,,, util_schoolbus_ASC_auto_deficient,School Bus Auto Deficient ASC,@((df.auto_ownership < df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,schoolbus_ASC_auto_deficient,,, util_schoolbus_ASC_auto_sufficient,School Bus Auto Sufficient ASC,@((df.auto_ownership >= df.num_workers) & (df.auto_ownership > 0)),,,,,,,,,,,,,,,schoolbus_ASC_auto_sufficient,,, +util_umt_unavailable_wlk,UMT unavailable for non affiliates WALK,@((odt_skims['WLK_LOC_IVTT_UMT'] + dot_skims['WLK_LOC_IVTT_UMT'])>0) & (df.umich_affiliate==False),,,,,,-999,,,,,,,,,,,, +util_umt_unavailable_pnr,UMT unavailable for non affiliates PNR,@((odt_skims['PNR_LOC_IVTT_UMT'] + dot_skims['PNRE_LOC_IVTT_UMT'])>0) & (df.umich_affiliate==False),,,,,,,,,-999,,,,,,,,, +util_umt_unavailable_knr,UMT unavailable for non affiliates KNR,@((odt_skims['KNR_LOC_IVTT_UMT'] + dot_skims['KNRE_LOC_IVTT_UMT'])>0) & (df.umich_affiliate==False),,,,,,,,,,,,-999,,,,,, diff --git a/activitysim/examples/example_semcog/configs/tour_mode_choice.yaml b/activitysim/examples/example_semcog/configs/tour_mode_choice.yaml index 179aaf506..37f86fc95 100755 --- a/activitysim/examples/example_semcog/configs/tour_mode_choice.yaml +++ b/activitysim/examples/example_semcog/configs/tour_mode_choice.yaml @@ -145,27 +145,6 @@ CONSTANTS: drvtrn_distpen_0_multiplier: 270 drvtrn_distpen_max: 15 density_index_multiplier: -0.2 - - transit_nopass_fare_discount_percent: - 1: 1.0 - 2: 1.0 - 3: 0.62 - 4: 1.0 - 5: 0.54 - 6: 0.62 - 7: 0.62 - 8: 1.0 - transit_pass_fare_discount_percent: - 1: 0.32 - 2: 0.49 - 3: 0.03 - 4: 0.54 - 5: 0.17 - 6: 0.37 - 7: 0.36 - 8: 1.0 - transit_subsidy_fare_discount_percent_worktour: 0.9 - # joint_sr2_ASC_no_auto: 0 # joint_sr2_ASC_auto_deficient: 0 # joint_sr2_ASC_auto_sufficient: 0 @@ -199,6 +178,6 @@ LOGSUM_CHOOSER_COLUMNS: - num_workers - value_of_time - free_parking_at_work - - transit_pass_ownership - - transit_pass_subsidy + - umich_affiliate + MODE_CHOICE_LOGSUM_COLUMN_NAME: mode_choice_logsum \ No newline at end of file diff --git a/activitysim/examples/example_semcog/configs/tour_mode_choice_annotate_choosers_preprocessor.csv b/activitysim/examples/example_semcog/configs/tour_mode_choice_annotate_choosers_preprocessor.csv index d2d31869f..75d3f3f08 100755 --- a/activitysim/examples/example_semcog/configs/tour_mode_choice_annotate_choosers_preprocessor.csv +++ b/activitysim/examples/example_semcog/configs/tour_mode_choice_annotate_choosers_preprocessor.csv @@ -83,16 +83,4 @@ local,_DF_IS_TOUR,'tour_type' in df.columns destination in central business district,destination_in_cbd,"(reindex(land_use.AreaType, df[dest_col_name]) < setting('cbd_threshold')) * 1" #,,FIXME diagnostic #,sov_dist_rt,(odt_skims['SOV_DIST'] + dot_skims['SOV_DIST']) -#,,fare discounts (no discount for use in logsums) -,ptype,df.ptype if _DF_IS_TOUR else 1 -,transit_pass_ownership,df.transit_pass_ownership if _DF_IS_TOUR else 0 -,transit_pass_subsidy,df.transit_pass_subsidy if _DF_IS_TOUR else 0 -,tour_type,df.tour_type if _DF_IS_TOUR else 'other' -,fare_nopass_discount_percent,"ptype.map({k: v for k, v in transit_nopass_fare_discount_percent.items()})" -,fare_pass_discount_percent,"ptype.map({k: v for k, v in transit_pass_fare_discount_percent.items()})" -,fare_subsidy_discount_percent,"np.where(tour_type=='work', transit_subsidy_fare_discount_percent_worktour, 1)" -,fare_discount_percent_ff,"np.where((transit_pass_ownership == False) & (transit_pass_subsidy == False), fare_nopass_discount_percent, 1)" -,fare_discount_percent_tf,"np.where((transit_pass_ownership == True) & (transit_pass_subsidy == False), fare_pass_discount_percent, 1)" -,fare_discount_percent_ft,"np.where((transit_pass_ownership == False) & (transit_pass_subsidy == True), fare_nopass_discount_percent * (1-fare_subsidy_discount_percent), 1)" -,fare_discount_percent_tt,"np.where((transit_pass_ownership == True ) & (transit_pass_subsidy == True), fare_pass_discount_percent * (1-fare_subsidy_discount_percent), 1)" -,fare_discount_percent,fare_discount_percent_ff * fare_discount_percent_tf * fare_discount_percent_ft * fare_discount_percent_tt \ No newline at end of file +,umich_affiliate,"df.get('umich_worker', default=False) | df.get('umich_student', default=False)" diff --git a/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs.csv b/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs.csv index 9f7f8f44e..7121f4873 100755 --- a/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs.csv +++ b/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs.csv @@ -1,5 +1,5 @@ coefficient_name,value,constrain -coef_nest_root,1,T +coef_nest_root,1.0,T coef_nest_AUTO,0.72,T coef_nest_AUTO_DRIVEALONE,0.35,T coef_nest_AUTO_SHAREDRIDE2,0.35,T @@ -15,179 +15,209 @@ coef_ivt_eatout_escort_othdiscr_othmaint_shopping_social,-0.0175,F coef_ivt_school_univ,-0.0224,F coef_ivt_work,-0.0134,F coef_ivt_atwork,-0.0188,F -coef_topology_walk_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_work,15,F +coef_topology_walk_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_work,15.0,F coef_topology_walk_multiplier_atwork,7.5,F -coef_topology_bike_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_work,20,F -coef_topology_bike_multiplier_atwork,10,F +coef_topology_bike_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_work,20.0,F +coef_topology_bike_multiplier_atwork,10.0,F coef_topology_trn_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_work,2.2,F -coef_topology_trn_multiplier_atwork,2,F -coef_age1619_da_multiplier_eatout_escort_othdiscr_othmaint_shopping_social_work,0,F +coef_topology_trn_multiplier_atwork,2.0,F +coef_age1619_da_multiplier_eatout_escort_othdiscr_othmaint_shopping_social_work,0.0,F coef_age1619_da_multiplier_school_univ,-1.3813,F coef_age1619_da_multiplier_atwork,0.0032336,F -coef_age010_trn_multiplier_eatout_escort_othdiscr_othmaint_shopping_social_work,0,F +coef_age010_trn_multiplier_eatout_escort_othdiscr_othmaint_shopping_social_work,0.0,F coef_age010_trn_multiplier_school_univ,-1.5548,F coef_age010_trn_multiplier_atwork,0.000722,F coef_age16p_sr_multiplier_eatout_escort_othdiscr_othmaint_shopping_social,-1.366,F -coef_age16p_sr_multiplier_school_univ_work_atwork,0,F -coef_hhsize1_sr_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_atwork,0,F +coef_age16p_sr_multiplier_school_univ_work_atwork,0.0,F +coef_hhsize1_sr_multiplier_eatout_escort_othdiscr_othmaint_school_shopping_social_univ_atwork,0.0,F coef_hhsize1_sr_multiplier_work,-0.734588,F -coef_hhsize2_sr_multiplier_eatout_escort_othdiscr_othmaint_shopping_social_work_atwork,0,F +coef_hhsize2_sr_multiplier_eatout_escort_othdiscr_othmaint_shopping_social_work_atwork,0.0,F coef_hhsize2_sr_multiplier_school_univ,-0.6359,F -walk_ASC_no_auto_eatout,6.589427019,F -walk_ASC_no_auto_escort,4.880440839,F -walk_ASC_no_auto_othdiscr,4.730904319,F -walk_ASC_no_auto_othmaint,3.366533039,F -walk_ASC_no_auto_school,12.00708155,F -walk_ASC_no_auto_shopping,4.456111339,F -walk_ASC_no_auto_social,3.332401219,F -walk_ASC_no_auto_univ,3.063248695,F -walk_ASC_no_auto_work,4.43703301,F -walk_ASC_no_auto_atwork,0.421704944,F -walk_ASC_auto_deficient_eatout,2.887675213,F -walk_ASC_auto_deficient_escort,-1.356970662,F -walk_ASC_auto_deficient_othdiscr,1.862477713,F -walk_ASC_auto_deficient_othmaint,0.914116298,F -walk_ASC_auto_deficient_school,1.097961688,F -walk_ASC_auto_deficient_shopping,1.815249198,F -walk_ASC_auto_deficient_social,2.483254213,F -walk_ASC_auto_deficient_univ,2.850042543,F -walk_ASC_auto_deficient_work,1.637904594,F -walk_ASC_auto_deficient_atwork,-17.85938696,F -walk_ASC_auto_sufficient_eatout,1.896049479,F -walk_ASC_auto_sufficient_escort,-1.53483226,F -walk_ASC_auto_sufficient_othdiscr,1.607706779,F -walk_ASC_auto_sufficient_othmaint,0.07673774,F -walk_ASC_auto_sufficient_school,-1.384129543,F -walk_ASC_auto_sufficient_shopping,0.00804064,F -walk_ASC_auto_sufficient_social,2.051577779,F -walk_ASC_auto_sufficient_univ,2.131895451,F -walk_ASC_auto_sufficient_work,-0.633007823,F -walk_ASC_auto_sufficient_atwork,0.1438828,F -bike_ASC_no_auto_eatout,1.477690443,F -bike_ASC_no_auto_escort,-2.060060749,F -bike_ASC_no_auto_othdiscr,0.233196283,F -bike_ASC_no_auto_othmaint,0.195584651,F -bike_ASC_no_auto_school,0,F -bike_ASC_no_auto_shopping,-0.509693249,F -bike_ASC_no_auto_social,0.630202693,F -bike_ASC_no_auto_univ,1.297297637,F -bike_ASC_no_auto_work,2.338049977,F -bike_ASC_no_auto_atwork,18.45901812,F -bike_ASC_auto_deficient_eatout,-0.743790882,F -bike_ASC_auto_deficient_escort,-3.511021918,F -bike_ASC_auto_deficient_othdiscr,0.732851378,F -bike_ASC_auto_deficient_othmaint,-0.501558818,F -bike_ASC_auto_deficient_school,-0.465024971,F -bike_ASC_auto_deficient_shopping,0.141061422,F -bike_ASC_auto_deficient_social,1.459841118,F -bike_ASC_auto_deficient_univ,0.950303703,F -bike_ASC_auto_deficient_work,0.224440057,F -bike_ASC_auto_deficient_atwork,-3.8074083,F -bike_ASC_auto_sufficient_eatout,-0.885432566,F -bike_ASC_auto_sufficient_escort,-4.318656917,F -bike_ASC_auto_sufficient_othdiscr,-0.756545166,F -bike_ASC_auto_sufficient_othmaint,-2.063850917,F -bike_ASC_auto_sufficient_school,-2.878621083,F -bike_ASC_auto_sufficient_shopping,-1.821758817,F -bike_ASC_auto_sufficient_social,-1.053156466,F -bike_ASC_auto_sufficient_univ,-0.119499054,F -bike_ASC_auto_sufficient_work,-1.806805644,F -bike_ASC_auto_sufficient_atwork,-0.106470168,F -sr2_ASC_auto_deficient_eatout,0.413083337,F -sr2_ASC_auto_deficient_escort,0.664157519,F -sr2_ASC_auto_deficient_othdiscr,0.485000137,F -sr2_ASC_auto_deficient_othmaint,0.926310219,F -sr2_ASC_auto_deficient_school,0.100573545,F -sr2_ASC_auto_deficient_shopping,0.908255079,F -sr2_ASC_auto_deficient_social,1.680701637,F -sr2_ASC_auto_deficient_univ,0.078542755,F -sr2_ASC_auto_deficient_work,-0.304765262,F -sr2_ASC_auto_deficient_atwork,-20.27957549,F -sr2_ASC_auto_sufficient_eatout,0.899117605,F -sr2_ASC_auto_sufficient_escort,0.075825052,F -sr2_ASC_auto_sufficient_othdiscr,0.533158225,F -sr2_ASC_auto_sufficient_othmaint,0.334003882,F -sr2_ASC_auto_sufficient_school,-1.897992866,F -sr2_ASC_auto_sufficient_shopping,0.273532122,F -sr2_ASC_auto_sufficient_social,0.559914555,F -sr2_ASC_auto_sufficient_univ,-0.53703344,F -sr2_ASC_auto_sufficient_work,-0.766476766,F -sr2_ASC_auto_sufficient_atwork,-1.621794475,F -sr3p_ASC_no_auto_eatout,2.190553045,F -sr3p_ASC_no_auto_escort,0.209802522,F -sr3p_ASC_no_auto_othdiscr,2.140722265,F -sr3p_ASC_no_auto_othmaint,1.219543822,F -sr3p_ASC_no_auto_school,9.926556957,F -sr3p_ASC_no_auto_shopping,1.742939742,F -sr3p_ASC_no_auto_social,0.464863045,F -sr3p_ASC_no_auto_univ,-0.087322435,F -sr3p_ASC_no_auto_work,-1.064082,F -sr3p_ASC_no_auto_atwork,-0.940776326,F -sr3p_ASC_auto_deficient_eatout,0.140990485,F -sr3p_ASC_auto_deficient_escort,0.409243052,F -sr3p_ASC_auto_deficient_othdiscr,1.142034725,F -sr3p_ASC_auto_deficient_othmaint,-0.531961788,F -sr3p_ASC_auto_deficient_school,0.587171252,F -sr3p_ASC_auto_deficient_shopping,0.744060546,F -sr3p_ASC_auto_deficient_social,1.595662425,F -sr3p_ASC_auto_deficient_univ,0.335943236,F -sr3p_ASC_auto_deficient_work,-0.800161676,F -sr3p_ASC_auto_deficient_atwork,-20.24587122,F -sr3p_ASC_auto_sufficient_eatout,0.665638218,F -sr3p_ASC_auto_sufficient_escort,0.017050265,F -sr3p_ASC_auto_sufficient_othdiscr,0.407280668,F -sr3p_ASC_auto_sufficient_othmaint,-0.001035875,F -sr3p_ASC_auto_sufficient_school,-1.294501505,F -sr3p_ASC_auto_sufficient_shopping,-0.0031085,F -sr3p_ASC_auto_sufficient_social,0.324957478,F -sr3p_ASC_auto_sufficient_univ,-0.702604136,F -sr3p_ASC_auto_sufficient_work,-1.404899513,F -sr3p_ASC_auto_sufficient_atwork,-2.062496761,F -walk_transit_ASC_no_auto_eatout,1.388223363,F -walk_transit_ASC_no_auto_escort,-3.242571633,F -walk_transit_ASC_no_auto_othdiscr,1.038365063,F -walk_transit_ASC_no_auto_othmaint,1.538982067,F -walk_transit_ASC_no_auto_school,9.278859746,F -walk_transit_ASC_no_auto_shopping,1.081384067,F -walk_transit_ASC_no_auto_social,0.176051663,F -walk_transit_ASC_no_auto_univ,3.321119594,F -walk_transit_ASC_no_auto_work,3.061409806,F -walk_transit_ASC_no_auto_atwork,-2.75530458,F -walk_transit_ASC_auto_deficient_eatout,-0.710721656,F -walk_transit_ASC_auto_deficient_escort,-3.220750388,F -walk_transit_ASC_auto_deficient_othdiscr,0.281329984,F -walk_transit_ASC_auto_deficient_othmaint,-1.319772188,F -walk_transit_ASC_auto_deficient_school,1.023632747,F -walk_transit_ASC_auto_deficient_shopping,0.892296712,F -walk_transit_ASC_auto_deficient_social,0.302686454,F -walk_transit_ASC_auto_deficient_univ,2.231442966,F -walk_transit_ASC_auto_deficient_work,0.186141441,F -walk_transit_ASC_auto_deficient_atwork,-22.64172131,F -walk_transit_ASC_auto_sufficient_eatout,-3.537966973,F -walk_transit_ASC_auto_sufficient_escort,-6.313884394,F -walk_transit_ASC_auto_sufficient_othdiscr,-3.231644303,F -walk_transit_ASC_auto_sufficient_othmaint,-2.926154591,F -walk_transit_ASC_auto_sufficient_school,-3.421589964,F -walk_transit_ASC_auto_sufficient_shopping,-3.582717191,F -walk_transit_ASC_auto_sufficient_social,-2.770652273,F -walk_transit_ASC_auto_sufficient_univ,-0.179769816,F -walk_transit_ASC_auto_sufficient_work,-2.912845227,F -walk_transit_ASC_auto_sufficient_atwork,-6.453181068,F -joint_walk_ASC_no_auto_all,-0.039874578,F -joint_walk_ASC_auto_deficient_all,0.010741394,F -joint_walk_ASC_auto_sufficient_all,-1.975332928,F -joint_bike_ASC_no_auto_all,-2.221523576,F -joint_bike_ASC_auto_deficient_all,-2.104028545,F -joint_bike_ASC_auto_sufficient_all,-5.415064076,F -joint_sr2_ASC_no_auto_all,0,T -joint_sr2_ASC_auto_deficient_all,0,T -joint_sr2_ASC_auto_sufficient_all,0,T -joint_sr3p_ASC_no_auto_all,-1.057362954,F -joint_sr3p_ASC_auto_deficient_all,-1.358121204,F -joint_sr3p_ASC_auto_sufficient_all,-2.71447634,F -joint_walk_transit_ASC_no_auto_all,-2.489686956,F -joint_walk_transit_ASC_auto_deficient_all,-3.485773675,F -joint_walk_transit_ASC_auto_sufficient_all,-15.264534,F +walk_ASC_no_auto_eatout,6.684086442545027,F +walk_ASC_no_auto_escort,4.704949300518323,F +walk_ASC_no_auto_othdiscr,4.825563742545027,F +walk_ASC_no_auto_othmaint,3.1910415005183235,F +walk_ASC_no_auto_school,12.294553657204029,F +walk_ASC_no_auto_shopping,4.280619800518322,F +walk_ASC_no_auto_social,3.4270606425450283,F +walk_ASC_no_auto_univ,4.913693244383623,F +walk_ASC_no_auto_work,5.0529975618352845,F +walk_ASC_no_auto_atwork,3.4558225997658356,F +walk_ASC_auto_deficient_eatout,3.046383862698903,F +walk_ASC_auto_deficient_escort,-1.4551002551565733,F +walk_ASC_auto_deficient_othdiscr,2.021186362698901,F +walk_ASC_auto_deficient_othmaint,0.8159867048434268,F +walk_ASC_auto_deficient_school,1.2071442982780545,F +walk_ASC_auto_deficient_shopping,1.7171196048434267,F +walk_ASC_auto_deficient_social,2.641962862698902,F +walk_ASC_auto_deficient_univ,4.517206113163259,F +walk_ASC_auto_deficient_work,1.8063448899343095,F +walk_ASC_auto_deficient_atwork,0.086038372747542,F +walk_ASC_auto_sufficient_eatout,1.9919635877561934,F +walk_ASC_auto_sufficient_escort,-1.5707984892594498,F +walk_ASC_auto_sufficient_othdiscr,1.7036208877561936,F +walk_ASC_auto_sufficient_othmaint,0.04077151074054905,F +walk_ASC_auto_sufficient_school,-1.1958511340031424,F +walk_ASC_auto_sufficient_shopping,-0.02792558925945097,F +walk_ASC_auto_sufficient_social,2.1474918877561944,F +walk_ASC_auto_sufficient_univ,3.8083309940646233,F +walk_ASC_auto_sufficient_work,-0.44626258806780716,F +walk_ASC_auto_sufficient_atwork,1.0808185860731192,F +bike_ASC_no_auto_eatout,1.18636112785728,F +bike_ASC_no_auto_escort,-1.9849201337429099,F +bike_ASC_no_auto_othdiscr,-0.05813303214272021,F +bike_ASC_no_auto_othmaint,0.270725266257091,F +bike_ASC_no_auto_school,0.0,F +bike_ASC_no_auto_shopping,-0.43455263374290914,F +bike_ASC_no_auto_social,0.33887337785727994,F +bike_ASC_no_auto_univ,1.426837866500245,F +bike_ASC_no_auto_work,2.7747805391552025,F +bike_ASC_no_auto_atwork,1.7882786242639075,F +bike_ASC_auto_deficient_eatout,-0.6733998807256852,F +bike_ASC_auto_deficient_escort,-3.3860832989747167,F +bike_ASC_auto_deficient_othdiscr,0.8032423792743145,F +bike_ASC_auto_deficient_othmaint,-0.37662019897471655,F +bike_ASC_auto_deficient_school,-0.36250866327651515,F +bike_ASC_auto_deficient_shopping,0.2660000410252833,F +bike_ASC_auto_deficient_social,1.530232119274315,F +bike_ASC_auto_deficient_univ,0.9843132273211448,F +bike_ASC_auto_deficient_work,0.24432073165751067,F +bike_ASC_auto_deficient_atwork,-8.0,F +bike_ASC_auto_sufficient_eatout,-0.8877184308014794,F +bike_ASC_auto_sufficient_escort,-4.322583017259498,F +bike_ASC_auto_sufficient_othdiscr,-0.7588310308014794,F +bike_ASC_auto_sufficient_othmaint,-2.0677770172594965,F +bike_ASC_auto_sufficient_school,-2.8356591648501075,F +bike_ASC_auto_sufficient_shopping,-1.825684917259496,F +bike_ASC_auto_sufficient_social,-1.0554423308014793,F +bike_ASC_auto_sufficient_univ,-0.025061145213054956,F +bike_ASC_auto_sufficient_work,-1.7914154053662767,F +bike_ASC_auto_sufficient_atwork,-3.7441631749944397,F +sr2_ASC_auto_deficient_eatout,0.28226258656944736,F +sr2_ASC_auto_deficient_escort,0.7378433429112182,F +sr2_ASC_auto_deficient_othdiscr,0.35417938656944725,F +sr2_ASC_auto_deficient_othmaint,0.9999960429112179,F +sr2_ASC_auto_deficient_school,-0.013709049290811643,F +sr2_ASC_auto_deficient_shopping,0.9819409029112179,F +sr2_ASC_auto_deficient_social,1.549880886569448,F +sr2_ASC_auto_deficient_univ,0.12193335254117087,F +sr2_ASC_auto_deficient_work,-0.34142787124223123,F +sr2_ASC_auto_deficient_atwork,-1.3255467924647442,F +sr2_ASC_auto_sufficient_eatout,0.8467603999769094,F +sr2_ASC_auto_sufficient_escort,0.06315946459640823,F +sr2_ASC_auto_sufficient_othdiscr,0.4808010199769094,F +sr2_ASC_auto_sufficient_othmaint,0.32133829459640845,F +sr2_ASC_auto_sufficient_school,-1.9323210638955746,F +sr2_ASC_auto_sufficient_shopping,0.26086653459640846,F +sr2_ASC_auto_sufficient_social,0.5075573499769095,F +sr2_ASC_auto_sufficient_univ,-0.5357469628745126,F +sr2_ASC_auto_sufficient_work,-0.7659014329164703,F +sr2_ASC_auto_sufficient_atwork,-0.8417604819418119,F +sr3p_ASC_no_auto_eatout,1.9968829569100788,F +sr3p_ASC_no_auto_escort,0.1600883019246557,F +sr3p_ASC_no_auto_othdiscr,1.9470521769100786,F +sr3p_ASC_no_auto_othmaint,1.169829601924656,F +sr3p_ASC_no_auto_school,9.706893787355295,F +sr3p_ASC_no_auto_shopping,1.6932255219246553,F +sr3p_ASC_no_auto_social,0.2711929569100783,F +sr3p_ASC_no_auto_univ,-0.26200008301213074,F +sr3p_ASC_no_auto_work,-1.1396121396862118,F +sr3p_ASC_no_auto_atwork,0.7381052591275287,F +sr3p_ASC_auto_deficient_eatout,0.18090488828715956,F +sr3p_ASC_auto_deficient_escort,0.48775622443604183,F +sr3p_ASC_auto_deficient_othdiscr,1.1819491282871584,F +sr3p_ASC_auto_deficient_othmaint,-0.4534486155639584,F +sr3p_ASC_auto_deficient_school,0.5265437923878011,F +sr3p_ASC_auto_deficient_shopping,0.8225737184360418,F +sr3p_ASC_auto_deficient_social,1.63557682828716,F +sr3p_ASC_auto_deficient_univ,0.438868037159753,F +sr3p_ASC_auto_deficient_work,-0.7878742060150077,F +sr3p_ASC_auto_deficient_atwork,-1.2230412338112964,F +sr3p_ASC_auto_sufficient_eatout,0.6549528028939663,F +sr3p_ASC_auto_sufficient_escort,0.00831138560334946,F +sr3p_ASC_auto_sufficient_othdiscr,0.3965952528939664,F +sr3p_ASC_auto_sufficient_othmaint,-0.009774754396650546,F +sr3p_ASC_auto_sufficient_school,-1.319749059404703,F +sr3p_ASC_auto_sufficient_shopping,-0.01184737939665054,F +sr3p_ASC_auto_sufficient_social,0.31427206289396636,F +sr3p_ASC_auto_sufficient_univ,-0.7220414569145546,F +sr3p_ASC_auto_sufficient_work,-1.4103432402863412,F +sr3p_ASC_auto_sufficient_atwork,-1.2823315371064934,F +walk_transit_ASC_no_auto_eatout,1.1845858792853836,F +walk_transit_ASC_no_auto_escort,-3.28124327564757,F +walk_transit_ASC_no_auto_othdiscr,0.8347275792853842,F +walk_transit_ASC_no_auto_othmaint,1.5003104243524317,F +walk_transit_ASC_no_auto_school,8.790275497145238,F +walk_transit_ASC_no_auto_shopping,1.0427124243524315,F +walk_transit_ASC_no_auto_social,-0.027585820714615718,F +walk_transit_ASC_no_auto_univ,2.2793054581400156,F +walk_transit_ASC_no_auto_work,3.5998406661926747,F +walk_transit_ASC_no_auto_atwork,-0.6868757710612157,F +walk_transit_ASC_auto_deficient_eatout,-0.7049541055865113,F +walk_transit_ASC_auto_deficient_escort,-3.2298656983632004,F +walk_transit_ASC_auto_deficient_othdiscr,0.2870975344134888,F +walk_transit_ASC_auto_deficient_othmaint,-1.3288874983632015,F +walk_transit_ASC_auto_deficient_school,0.9166244102192423,F +walk_transit_ASC_auto_deficient_shopping,0.8831814016367993,F +walk_transit_ASC_auto_deficient_social,0.3084540044134889,F +walk_transit_ASC_auto_deficient_univ,1.5820498055317573,F +walk_transit_ASC_auto_deficient_work,0.17750884327685468,F +walk_transit_ASC_auto_deficient_atwork,-4.783270103689359,F +walk_transit_ASC_auto_sufficient_eatout,-3.4604695241093983,F +walk_transit_ASC_auto_sufficient_escort,-6.347268252451367,F +walk_transit_ASC_auto_sufficient_othdiscr,-3.1541468541093978,F +walk_transit_ASC_auto_sufficient_othmaint,-2.959538449451366,F +walk_transit_ASC_auto_sufficient_school,-3.685322270583466,F +walk_transit_ASC_auto_sufficient_shopping,-3.6161010494513666,F +walk_transit_ASC_auto_sufficient_social,-2.6931548241093983,F +walk_transit_ASC_auto_sufficient_univ,-3.3162261360876033,F +walk_transit_ASC_auto_sufficient_work,-2.9359294736641837,F +walk_transit_ASC_auto_sufficient_atwork,-6.182656928177575,F +ridehail_ASC_no_auto_eatout,-1.9616991127600099,F +ridehail_ASC_no_auto_escort,0.3580254664246319,F +ridehail_ASC_no_auto_othdiscr,-1.9616991127600099,F +ridehail_ASC_no_auto_othmaint,0.3580254664246319,F +ridehail_ASC_no_auto_school,0.0,F +ridehail_ASC_no_auto_shopping,0.3580254664246319,F +ridehail_ASC_no_auto_social,-1.9616991127600099,F +ridehail_ASC_no_auto_univ,-2.0,F +ridehail_ASC_no_auto_work,-4.897086749080796,F +ridehail_ASC_no_auto_atwork,-5.849850781695405,F +ridehail_ASC_auto_deficient_eatout,3.379696103633375,F +ridehail_ASC_auto_deficient_escort,-3.796248690655429,F +ridehail_ASC_auto_deficient_othdiscr,3.379696103633375,F +ridehail_ASC_auto_deficient_othmaint,-3.796248690655429,F +ridehail_ASC_auto_deficient_school,-8.0,F +ridehail_ASC_auto_deficient_shopping,-3.796248690655429,F +ridehail_ASC_auto_deficient_social,3.379696103633375,F +ridehail_ASC_auto_deficient_univ,-5.22251033140313,F +ridehail_ASC_auto_deficient_work,-0.6207918376572183,F +ridehail_ASC_auto_deficient_atwork,1.0890766602300388,F +ridehail_ASC_auto_sufficient_eatout,1.4946319260625365,F +ridehail_ASC_auto_sufficient_escort,-4.044466851532704,F +ridehail_ASC_auto_sufficient_othdiscr,1.4946319260625365,F +ridehail_ASC_auto_sufficient_othmaint,-4.044466851532704,F +ridehail_ASC_auto_sufficient_school,-8.0,F +ridehail_ASC_auto_sufficient_shopping,-4.044466851532704,F +ridehail_ASC_auto_sufficient_social,1.4946319260625365,F +ridehail_ASC_auto_sufficient_univ,-3.6856734464343224,F +ridehail_ASC_auto_sufficient_work,-1.012463223074331,F +ridehail_ASC_auto_sufficient_atwork,-0.8903326822472148,F +joint_walk_ASC_no_auto_all,0.32879136138390835,F +joint_walk_ASC_auto_deficient_all,-0.1198797166054244,F +joint_walk_ASC_auto_sufficient_all,-2.146780501450932,F +joint_bike_ASC_no_auto_all,-2.1462297146330056,F +joint_bike_ASC_auto_deficient_all,-2.034598478331639,F +joint_bike_ASC_auto_sufficient_all,-5.444698018807197,F +joint_sr2_ASC_no_auto_all,0.0,T +joint_sr2_ASC_auto_deficient_all,0.0,T +joint_sr2_ASC_auto_sufficient_all,0.0,T +joint_sr3p_ASC_no_auto_all,-1.1419351850282873,F +joint_sr3p_ASC_auto_deficient_all,-1.202301164551077,F +joint_sr3p_ASC_auto_sufficient_all,-2.738451029670537,F +joint_walk_transit_ASC_no_auto_all,-2.5779753134344774,F +joint_walk_transit_ASC_auto_deficient_all,-3.7218555190021467,F +joint_walk_transit_ASC_auto_sufficient_all,-7.983672229167563,F walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,0.525,F walk_transit_CBD_ASC_school_univ,0.672,F walk_transit_CBD_ASC_work,0.804,F @@ -196,98 +226,98 @@ drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,0.525,F drive_transit_CBD_ASC_school_univ,0.672,F drive_transit_CBD_ASC_work,1.1,F drive_transit_CBD_ASC_atwork,0.564,F -joint_knr_transit_ASC_auto_deficient_all,-3.534648371,F -joint_knr_transit_ASC_auto_sufficient_all,-8.843788241,F -joint_knr_transit_ASC_no_auto_all,-3.987873766,F -joint_pnr_transit_ASC_auto_deficient_all,-5.146470604,F -joint_pnr_transit_ASC_auto_sufficient_all,-8.812715084,F -joint_pnr_transit_ASC_no_auto_all,0,T -knr_transit_ASC_auto_deficient_atwork,-23.01220348,F -knr_transit_ASC_auto_deficient_eatout,-1.841465519,F -knr_transit_ASC_auto_deficient_escort,-3.212214291,F -knr_transit_ASC_auto_deficient_othdiscr,-0.849413879,F -knr_transit_ASC_auto_deficient_othmaint,-1.311236091,F -knr_transit_ASC_auto_deficient_school,2.329981301,F -knr_transit_ASC_auto_deficient_shopping,0.900832809,F -knr_transit_ASC_auto_deficient_social,-0.828057409,F -knr_transit_ASC_auto_deficient_univ,0.781396375,F -knr_transit_ASC_auto_deficient_work,-1.44770466,F -knr_transit_ASC_auto_sufficient_atwork,-4.401027,F -knr_transit_ASC_auto_sufficient_eatout,-4.103602632,F -knr_transit_ASC_auto_sufficient_escort,-6.720817468,F -knr_transit_ASC_auto_sufficient_othdiscr,-3.797279962,F -knr_transit_ASC_auto_sufficient_othmaint,-3.333087668,F -knr_transit_ASC_auto_sufficient_school,-2.273708088,F -knr_transit_ASC_auto_sufficient_shopping,-3.989650268,F -knr_transit_ASC_auto_sufficient_social,-3.336287932,F -knr_transit_ASC_auto_sufficient_univ,-1.714133165,F -knr_transit_ASC_auto_sufficient_work,-4.698155028,F -knr_transit_ASC_no_auto_atwork,-0.580585596,F -knr_transit_ASC_no_auto_eatout,0.219095046,F -knr_transit_ASC_no_auto_escort,0.32982881,F -knr_transit_ASC_no_auto_othdiscr,0.219095046,F -knr_transit_ASC_no_auto_othmaint,0.32982881,F -knr_transit_ASC_no_auto_school,0.38894965,F -knr_transit_ASC_no_auto_shopping,0.32982881,F -knr_transit_ASC_no_auto_social,0.219095046,F -knr_transit_ASC_no_auto_univ,2.400389489,F -knr_transit_ASC_no_auto_work,1.821801152,F -local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,0,F -local_ASC_school_univ,0,F -local_ASC_work,0,F -mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,0,F -mix_ASC_school_univ,0,F -mix_ASC_work,0,F +joint_knr_transit_ASC_auto_deficient_all,-2.0348439198294166,F +joint_knr_transit_ASC_auto_sufficient_all,-9.138574539092835,F +joint_knr_transit_ASC_no_auto_all,-1.782137075922288,F +joint_pnr_transit_ASC_auto_deficient_all,-4.6479960980614585,F +joint_pnr_transit_ASC_auto_sufficient_all,-8.108068716254577,F +joint_pnr_transit_ASC_no_auto_all,0.0,T +knr_transit_ASC_auto_deficient_atwork,-4.177443840078651,F +knr_transit_ASC_auto_deficient_eatout,-1.9059653400591208,F +knr_transit_ASC_auto_deficient_escort,-2.8065340341804976,F +knr_transit_ASC_auto_deficient_othdiscr,-0.9139137000591202,F +knr_transit_ASC_auto_deficient_othmaint,-0.9055558341804972,F +knr_transit_ASC_auto_deficient_school,3.1174139500526667,F +knr_transit_ASC_auto_deficient_shopping,1.3065130658195017,F +knr_transit_ASC_auto_deficient_social,-0.89255723005912,F +knr_transit_ASC_auto_deficient_univ,1.2290068347741672,F +knr_transit_ASC_auto_deficient_work,-1.343388588941459,F +knr_transit_ASC_auto_sufficient_atwork,-8.401027000000001,F +knr_transit_ASC_auto_sufficient_eatout,-3.4079071358167456,F +knr_transit_ASC_auto_sufficient_escort,-6.002459200930282,F +knr_transit_ASC_auto_sufficient_othdiscr,-3.101584465816747,F +knr_transit_ASC_auto_sufficient_othmaint,-2.614729400930281,F +knr_transit_ASC_auto_sufficient_school,-2.0660739583211183,F +knr_transit_ASC_auto_sufficient_shopping,-3.2712920009302815,F +knr_transit_ASC_auto_sufficient_social,-2.640592435816747,F +knr_transit_ASC_auto_sufficient_univ,-3.6038687383115167,F +knr_transit_ASC_auto_sufficient_work,-4.5200615795523404,F +knr_transit_ASC_no_auto_atwork,1.774854635119083,F +knr_transit_ASC_no_auto_eatout,-0.02121192807798697,F +knr_transit_ASC_no_auto_escort,0.20430112572154696,F +knr_transit_ASC_no_auto_othdiscr,-0.02121192807798697,F +knr_transit_ASC_no_auto_othmaint,0.20430112572154696,F +knr_transit_ASC_no_auto_school,10.884265852160249,F +knr_transit_ASC_no_auto_shopping,0.20430112572154696,F +knr_transit_ASC_no_auto_social,-0.02121192807798697,F +knr_transit_ASC_no_auto_univ,1.9610448778747198,F +knr_transit_ASC_no_auto_work,2.403570049638307,F +local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,0.0,F +local_ASC_school_univ,0.0,F +local_ASC_work,0.0,F +mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,0.0,F +mix_ASC_school_univ,0.0,F +mix_ASC_work,0.0,F pnr_transit_ASC_auto_deficient_atwork,-998.8196,F -pnr_transit_ASC_auto_deficient_eatout,-0.430359164,F -pnr_transit_ASC_auto_deficient_escort,-1.239230126,F -pnr_transit_ASC_auto_deficient_othdiscr,-0.710234464,F -pnr_transit_ASC_auto_deficient_othmaint,-0.384955706,F -pnr_transit_ASC_auto_deficient_school,1.14553143,F -pnr_transit_ASC_auto_deficient_shopping,-0.504015206,F -pnr_transit_ASC_auto_deficient_social,0.532554236,F -pnr_transit_ASC_auto_deficient_univ,1.899678681,F -pnr_transit_ASC_auto_deficient_work,-0.99603153,F +pnr_transit_ASC_auto_deficient_eatout,-0.8473777218829159,F +pnr_transit_ASC_auto_deficient_escort,-1.3529536168460206,F +pnr_transit_ASC_auto_deficient_othdiscr,-1.1272530218829155,F +pnr_transit_ASC_auto_deficient_othmaint,-0.49867919684602025,F +pnr_transit_ASC_auto_deficient_school,2.056012286710677,F +pnr_transit_ASC_auto_deficient_shopping,-0.6177386968460202,F +pnr_transit_ASC_auto_deficient_social,0.11553567811708425,F +pnr_transit_ASC_auto_deficient_univ,2.191844547130541,F +pnr_transit_ASC_auto_deficient_work,-0.8991779643288407,F pnr_transit_ASC_auto_sufficient_atwork,-999.21466,F -pnr_transit_ASC_auto_sufficient_eatout,-7.21057228,F -pnr_transit_ASC_auto_sufficient_escort,-6.200504711,F -pnr_transit_ASC_auto_sufficient_othdiscr,-6.61964812,F -pnr_transit_ASC_auto_sufficient_othmaint,-4.224027811,F -pnr_transit_ASC_auto_sufficient_school,-3.608979199,F -pnr_transit_ASC_auto_sufficient_shopping,-3.770973811,F -pnr_transit_ASC_auto_sufficient_social,-6.85691217,F -pnr_transit_ASC_auto_sufficient_univ,0.143230071,F -pnr_transit_ASC_auto_sufficient_work,-2.571689178,F -pnr_transit_ASC_no_auto_atwork,0,F -pnr_transit_ASC_no_auto_eatout,0,F -pnr_transit_ASC_no_auto_escort,0,F -pnr_transit_ASC_no_auto_othdiscr,0,F -pnr_transit_ASC_no_auto_othmaint,0,F -pnr_transit_ASC_no_auto_school,0,F -pnr_transit_ASC_no_auto_shopping,0,F -pnr_transit_ASC_no_auto_social,0,F -pnr_transit_ASC_no_auto_univ,0,F -pnr_transit_ASC_no_auto_work,0,F -premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,0,F -premium_ASC_school_univ,0,F -premium_ASC_work,0,F -schoolbus_ASC_auto_deficient_school,0.835683653,F -schoolbus_ASC_auto_sufficient_school,-1.200290369,F -schoolbus_ASC_no_auto_school,10.43589235,F -schoolbus_ASC_not_school,0,T -sr2_ASC_no_auto_atwork,-0.963211851,F -sr2_ASC_no_auto_eatout,1.502329299,F -sr2_ASC_no_auto_escort,1.796584262,F -sr2_ASC_no_auto_othdiscr,1.502329299,F -sr2_ASC_no_auto_othmaint,1.796584262,F -sr2_ASC_no_auto_school,8.462111263,F -sr2_ASC_no_auto_shopping,1.796584262,F -sr2_ASC_no_auto_social,1.502329299,F -sr2_ASC_no_auto_univ,0.438511398,F -sr2_ASC_no_auto_work,0.768381772,F +pnr_transit_ASC_auto_sufficient_eatout,-3.9796753511570757,F +pnr_transit_ASC_auto_sufficient_escort,-6.12779478635659,F +pnr_transit_ASC_auto_sufficient_othdiscr,-3.388751191157075,F +pnr_transit_ASC_auto_sufficient_othmaint,-4.151317886356593,F +pnr_transit_ASC_auto_sufficient_school,-2.542027777633866,F +pnr_transit_ASC_auto_sufficient_shopping,-3.698263886356593,F +pnr_transit_ASC_auto_sufficient_social,-3.626015241157077,F +pnr_transit_ASC_auto_sufficient_univ,0.36644700944036057,F +pnr_transit_ASC_auto_sufficient_work,-2.7321366526920587,F +pnr_transit_ASC_no_auto_atwork,0.0,F +pnr_transit_ASC_no_auto_eatout,0.0,F +pnr_transit_ASC_no_auto_escort,0.0,F +pnr_transit_ASC_no_auto_othdiscr,0.0,F +pnr_transit_ASC_no_auto_othmaint,0.0,F +pnr_transit_ASC_no_auto_school,0.0,F +pnr_transit_ASC_no_auto_shopping,0.0,F +pnr_transit_ASC_no_auto_social,0.0,F +pnr_transit_ASC_no_auto_univ,0.0,F +pnr_transit_ASC_no_auto_work,0.0,F +premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,0.0,F +premium_ASC_school_univ,0.0,F +premium_ASC_work,0.0,F +schoolbus_ASC_auto_deficient_school,0.7649323634400337,F +schoolbus_ASC_auto_sufficient_school,-1.2316629800282746,F +schoolbus_ASC_no_auto_school,10.202350232061889,F +schoolbus_ASC_not_school,0.0,T +sr2_ASC_no_auto_atwork,0.8607227228062228,F +sr2_ASC_no_auto_eatout,1.280425652447873,F +sr2_ASC_no_auto_escort,1.5428070628025052,F +sr2_ASC_no_auto_othdiscr,1.280425652447873,F +sr2_ASC_no_auto_othmaint,1.5428070628025052,F +sr2_ASC_no_auto_school,8.269693241466205,F +sr2_ASC_no_auto_shopping,1.5428070628025052,F +sr2_ASC_no_auto_social,1.280425652447873,F +sr2_ASC_no_auto_univ,0.1665384936061438,F +sr2_ASC_no_auto_work,0.698903144114968,F taxi_ASC_no_auto_eatout_othdiscr_social,0.9923,F taxi_ASC_no_auto_escort_othmaint_shopping,1.8939,F -taxi_ASC_no_auto_school_univ,-7,T +taxi_ASC_no_auto_school_univ,-7.0,T taxi_ASC_no_auto_work,4.7291,F taxi_ASC_no_auto_atwork,4.1021,F taxi_ASC_auto_deficient_eatout_othdiscr_social,-3.1317,F @@ -304,7 +334,7 @@ taxi_ASC_auto_sufficient_work,-4.8509,F taxi_ASC_auto_sufficient_atwork,-2.8804,F tnc_single_ASC_no_auto_eatout_othdiscr_social,1.6852,F tnc_single_ASC_no_auto_escort_othmaint_shopping,1.8605,F -tnc_single_ASC_no_auto_school,-7,T +tnc_single_ASC_no_auto_school,-7.0,T tnc_single_ASC_no_auto_univ,-2.519,F tnc_single_ASC_no_auto_work,5.7855,F tnc_single_ASC_no_auto_atwork,4.4982,F @@ -322,7 +352,7 @@ tnc_single_ASC_auto_sufficient_work,-4.1946,F tnc_single_ASC_auto_sufficient_atwork,-2.7988,F tnc_shared_ASC_no_auto_eatout_othdiscr_social,0.6464,F tnc_shared_ASC_no_auto_escort_othmaint_shopping,0.9361,F -tnc_shared_ASC_no_auto_school,-7,T +tnc_shared_ASC_no_auto_school,-7.0,T tnc_shared_ASC_no_auto_univ,-5.8116,F tnc_shared_ASC_no_auto_work,3.2429,F tnc_shared_ASC_no_auto_atwork,3.3672,F @@ -338,6 +368,9 @@ tnc_shared_ASC_auto_sufficient_school,-3.7219,F tnc_shared_ASC_auto_sufficient_univ,-0.9068,F tnc_shared_ASC_auto_sufficient_work,-5.3575,F tnc_shared_ASC_auto_sufficient_atwork,-3.5397,F +joint_ridehail_ASC_no_auto_all,-4.0,F +joint_ridehail_ASC_auto_deficient_all,6.850788149869782,F +joint_ridehail_ASC_auto_sufficient_all,7.769808078741043,F joint_taxi_ASC_no_auto_all,-4.5792,F joint_taxi_ASC_auto_deficient_all,-9.8157,F joint_taxi_ASC_auto_sufficient_all,-11.7099,T diff --git a/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs_template.csv b/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs_template.csv index e1204a156..4cd2760ab 100755 --- a/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs_template.csv +++ b/activitysim/examples/example_semcog/configs/tour_mode_choice_coeffs_template.csv @@ -83,15 +83,14 @@ joint_tnc_shared_ASC_auto_sufficient,joint_tnc_shared_ASC_auto_sufficient_all,jo local_ASC,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,local_ASC_school_univ,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,local_ASC_school_univ,local_ASC_work,local_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork premium_ASC,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,premium_ASC_school_univ,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,premium_ASC_school_univ,premium_ASC_work,premium_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork mix_ASC,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,mix_ASC_school_univ,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,mix_ASC_school_univ,mix_ASC_work,mix_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# walk_light_rail_ASC,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_light_rail_ASC_school_univ,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_light_rail_ASC_school_univ,walk_light_rail_ASC_work,walk_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# drive_light_rail_ASC,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_light_rail_ASC_school_univ,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_light_rail_ASC_school_univ,drive_light_rail_ASC_work,drive_light_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# walk_ferry_ASC,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_ferry_ASC_school_univ,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,walk_ferry_ASC_school_univ,walk_ferry_ASC_work,walk_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# drive_ferry_ASC,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_ferry_ASC_school_univ,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,drive_ferry_ASC_school_univ,drive_ferry_ASC_work,drive_ferry_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# express_bus_ASC,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,express_bus_ASC_school_univ,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,express_bus_ASC_school_univ,express_bus_ASC_work,express_bus_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# heavy_rail_ASC,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,heavy_rail_ASC_school_univ,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,heavy_rail_ASC_school_univ,heavy_rail_ASC_work,heavy_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork -# commuter_rail_ASC,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,commuter_rail_ASC_school_univ,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork,commuter_rail_ASC_school_univ,commuter_rail_ASC_work,commuter_rail_ASC_eatout_escort_othdiscr_othmaint_shopping_social_atwork walk_transit_CBD_ASC,walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,walk_transit_CBD_ASC_school_univ,walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,walk_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,walk_transit_CBD_ASC_school_univ,walk_transit_CBD_ASC_work,walk_transit_CBD_ASC_atwork drive_transit_CBD_ASC,drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,drive_transit_CBD_ASC_school_univ,drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,drive_transit_CBD_ASC_eatout_escort_othdiscr_othmaint_shopping_social,drive_transit_CBD_ASC_school_univ,drive_transit_CBD_ASC_work,drive_transit_CBD_ASC_atwork schoolbus_ASC_no_auto,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_no_auto_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school schoolbus_ASC_auto_deficient,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_auto_deficient_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school schoolbus_ASC_auto_sufficient,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_auto_sufficient_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school,schoolbus_ASC_not_school +ridehail_ASC_no_auto,ridehail_ASC_no_auto_eatout,ridehail_ASC_no_auto_escort,ridehail_ASC_no_auto_othdiscr,ridehail_ASC_no_auto_othmaint,ridehail_ASC_no_auto_school,ridehail_ASC_no_auto_shopping,ridehail_ASC_no_auto_social,ridehail_ASC_no_auto_univ,ridehail_ASC_no_auto_work,ridehail_ASC_no_auto_atwork +ridehail_ASC_auto_deficient,ridehail_ASC_auto_deficient_eatout,ridehail_ASC_auto_deficient_escort,ridehail_ASC_auto_deficient_othdiscr,ridehail_ASC_auto_deficient_othmaint,ridehail_ASC_auto_deficient_school,ridehail_ASC_auto_deficient_shopping,ridehail_ASC_auto_deficient_social,ridehail_ASC_auto_deficient_univ,ridehail_ASC_auto_deficient_work,ridehail_ASC_auto_deficient_atwork +ridehail_ASC_auto_sufficient,ridehail_ASC_auto_sufficient_eatout,ridehail_ASC_auto_sufficient_escort,ridehail_ASC_auto_sufficient_othdiscr,ridehail_ASC_auto_sufficient_othmaint,ridehail_ASC_auto_sufficient_school,ridehail_ASC_auto_sufficient_shopping,ridehail_ASC_auto_sufficient_social,ridehail_ASC_auto_sufficient_univ,ridehail_ASC_auto_sufficient_work,ridehail_ASC_auto_sufficient_atwork +joint_ridehail_ASC_no_auto,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all,joint_ridehail_ASC_no_auto_all +joint_ridehail_ASC_auto_deficient,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all,joint_ridehail_ASC_auto_deficient_all +joint_ridehail_ASC_auto_sufficient,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all,joint_ridehail_ASC_auto_sufficient_all diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_atwork.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_atwork.csv index 1b1be59ad..5f60d18d6 100755 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_atwork.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_atwork.csv @@ -19,22 +19,22 @@ util_Subtour_purpose_Eatout_Departure_after_1230_pm_Linear,Subtour purpose: Eat- util_Subtour_purpose_Eatout_Duration_less_than_0p5_hours_depart_and_arrive_in_the_same_period,Subtour purpose: Eat-out - Duration less than 0.5 hours (depart and arrive in the same period),"@np.where(((df.tour_type == 'eat') & (df.duration<1)), (np.where((df.duration <= 1), np.minimum(1 - df.duration, 47), 0) + np.where((df.duration > 1), np.minimum(df.duration - 1, 47), 0)), 0)",coef_Subtour_purpose_Eatout_Duration_less_than_0p5_hours_depart_and_arrive_in_the_same_period util__Departure_constants,# Departure constants,,coef__Departure_constants util_Shift_for_every_30_minutes_before_1030_am_Linear,Shift for every 30 minutes before 10:30 am - Linear,"@np.where((df.start<16), (np.where((df.start< 16), np.minimum(16 - df.start, 9), 0) + np.where((df.start> 21), np.minimum(df.start - 21, 11), 0)), 0)",coef_Shift_for_every_30_minutes_before_1030_am_Linear -util_Before_1100_AM,Before 11:00 AM,@(df.start<17),coef_Before_1100_AM -util_1100_AM_1130_AM,11:00 AM - 11:30 AM,@(df.start==17),coef_1100_AM_1130_AM -util_1130_AM_1200_PM,11:30 AM - 12:00 PM,@(df.start==18),coef_1130_AM_1200_PM -util_1200_AM_1230_PM,12:00 AM - 12:30 PM,@(df.start==19),coef_1200_AM_1230_PM -util_1230_PM_0100_PM,12:30 PM - 01:00 PM,@(df.start==20),coef_1230_PM_0100_PM -util_After_0100_PM,After 01:00 PM,@(df.start>20),coef_After_0100_PM +util_Before_1100_AM,Before 11:00 AM,@(df.start<17),coef_start_Before_1100_AM +util_1100_AM_1130_AM,11:00 AM - 11:30 AM,@(df.start==17),coef_start_1100_AM_1130_AM +util_1130_AM_1200_PM,11:30 AM - 12:00 PM,@(df.start==18),coef_start_1130_AM_1200_PM +util_1200_AM_1230_PM,12:00 AM - 12:30 PM,@(df.start==19),coef_start_1200_AM_1230_PM +util_1230_PM_0100_PM,12:30 PM - 01:00 PM,@(df.start==20),coef_start_1230_PM_0100_PM +util_After_0100_PM,After 01:00 PM,@(df.start>20),coef_start_After_0100_PM util_Shift_for_every_30_minutes_after_130_pm_Square_Root,Shift for every 30 minutes after 1:30 pm - Square Root,"@np.where((df.start>21), ((np.where((df.start < 16), np.minimum(16 - df.start, 9), 0) + np.where((df.start > 21), np.minimum(df.start - 21, 11), 0))** 0.5), 0)",coef_Shift_for_every_30_minutes_after_130_pm_Square_Root util__Arrival_constants,# Arrival constants,,coef__Arrival_constants util_Shift_for_every_30_minutes_before_1130_am_Linear,Shift for every 30 minutes before 11:30 am - Linear,"@np.where((df.end<18), (np.where((df.end < 14), np.minimum(14 - df.end, 9), 0) + np.where((df.end > 24), np.minimum(df.end - 24, 10), 0)), 0)",coef_Shift_for_every_30_minutes_before_1130_am_Linear -util_Before_1200_PM,Before 12:00 PM,@(df.end<19),coef_Before_1200_PM -util_1200_AM_1230_PM,12:00 AM - 12:30 PM,@(df.end==19),coef_1200_AM_1230_PM -util_1230_PM_0100_PM,12:30 PM - 01:00 PM,@(df.end==20),coef_1230_PM_0100_PM -util_0100_PM_0130_PM,01:00 PM - 01:30 PM,@(df.end==21),coef_0100_PM_0130_PM -util_0130_PM_0200_PM,01:30 PM - 02:00 PM,@(df.end==22),coef_0130_PM_0200_PM -util_0200_PM_0230_PM,02:00 PM - 02:30 PM,@(df.end==23),coef_0200_PM_0230_PM -util_After_0230_PM,After 02:30 PM,@(df.end>23),coef_After_0230_PM +util_Before_1200_PM,Before 12:00 PM,@(df.end<19),coef_end_Before_1200_PM +util_1200_AM_1230_PM,12:00 AM - 12:30 PM,@(df.end==19),coef_end_1200_AM_1230_PM +util_1230_PM_0100_PM,12:30 PM - 01:00 PM,@(df.end==20),coef_end_1230_PM_0100_PM +util_0100_PM_0130_PM,01:00 PM - 01:30 PM,@(df.end==21),coef_end_0100_PM_0130_PM +util_0130_PM_0200_PM,01:30 PM - 02:00 PM,@(df.end==22),coef_end_0130_PM_0200_PM +util_0200_PM_0230_PM,02:00 PM - 02:30 PM,@(df.end==23),coef_end_0200_PM_0230_PM +util_After_0230_PM,After 02:30 PM,@(df.end>23),coef_end_After_0230_PM util_Shift_for_every_30_minutes_after_300_pm_Linear,Shift for every 30 minutes after 3:00 pm - Linear,"@np.where((df.end>24), (np.where((df.end < 14), np.minimum(14 - df.end, 9), 0) + np.where((df.end > 24), np.minimum(df.end - 24, 10), 0)), 0)",coef_Shift_for_every_30_minutes_after_300_pm_Linear util__Duration_constants,# Duration constants,,coef__Duration_constants util_0_hrs,0 hrs,@(df.duration==0),coef_0_hrs diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_atwork_coeffs.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_atwork_coeffs.csv index 3d27bcdc8..1062796fd 100755 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_atwork_coeffs.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_atwork_coeffs.csv @@ -18,21 +18,21 @@ coef_Subtour_purpose_Eatout_Departure_before_1200_pm__Linear,-0.250770206,F coef_Subtour_purpose_Eatout_Departure_after_1230_pm_Linear,-0.169861029,F coef_Subtour_purpose_Eatout_Duration_less_than_0p5_hours_depart_and_arrive_in_the_same_period,-0.678939929,F coef_Shift_for_every_30_minutes_before_1030_am_Linear,-0.731880037,F -coef_Before_1100_AM,-2.176744062,F -coef_1100_AM_1130_AM,-1.190017952,F -coef_1130_AM_1200_PM,-0.198229872,F -#coef_1200_AM_1230_PM,0,T -#coef_1230_PM_0100_PM,-0.084950396,F -coef_After_0100_PM,-0.205562723,F +coef_start_Before_1100_AM,-2.176744062,F +coef_start_1100_AM_1130_AM,-1.190017952,F +coef_start_1130_AM_1200_PM,-0.198229872,F +coef_start_1200_AM_1230_PM,0,T +coef_start_1230_PM_0100_PM,-0.084950396,F +coef_start_After_0100_PM,-0.205562723,F coef_Shift_for_every_30_minutes_after_130_pm_Square_Root,0.539088697,F coef_Shift_for_every_30_minutes_before_1130_am_Linear,0.414546555,F -coef_Before_1200_PM,0.279351638,F -coef_1200_AM_1230_PM,-0.045281832,F -coef_1230_PM_0100_PM,0.214070736,F -coef_0100_PM_0130_PM,0,T -coef_0130_PM_0200_PM,-0.69742748,F -coef_0200_PM_0230_PM,-1.284283533,F -coef_After_0230_PM,-2.119733896,F +coef_end_Before_1200_PM,0.279351638,F +coef_end_1200_AM_1230_PM,-0.045281832,F +coef_end_1230_PM_0100_PM,0.214070736,F +coef_end_0100_PM_0130_PM,0,T +coef_end_0130_PM_0200_PM,-0.69742748,F +coef_end_0200_PM_0230_PM,-1.284283533,F +coef_end_After_0230_PM,-2.119733896,F coef_Shift_for_every_30_minutes_after_300_pm_Linear,-0.508006414,F coef_0_hrs,-0.969734874,F coef_0p5_hrs,0,T diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_joint_coeffs.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_joint_coeffs.csv index 54d013138..f588cc553 100755 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_joint_coeffs.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_joint_coeffs.csv @@ -77,25 +77,11 @@ coef_shop_Joint_Tours_Party_Size_gt_2_Duration_gt_1p5_hr,0.045755784,F coef_shop_Joint_Tour_with_only_adults_Duration_lt_1p5_hrs,-0.571185116,F coef_shop_Kids_in_Joint_Tour_Duration_lt_1p5_hrs,-0.468815184,F coef_shop_Kids_in_Joint_Tour_Duration_gt_1p5_hr,-0.047470039,F -coef_shop_Driving_age_student_Duration_gt_1p5_hr,0.122149101,F -coef_shop_Fulltime_worker_Duration_gt_1p5_hr,-0.037886459,F -coef_shop_Nondriving_Student_Duration_gt_1p5_hr,0.10247157,F -coef_shop_Preschool_Child_Duration_lt_1p5_hrs,-1.882944033,F -coef_shop_Part_Time_Worker_Duration_lt_1p5_hrs,-0.197455071,F -coef_shop_Part_Time_Worker_Duration_gt_1p5_hr,-0.045152663,F -coef_shop_Retired_Duration_lt_1p5_hrs,-0.264728908,F -coef_shop_Retired_Duration_gt_1p5_hr,-0.042981757,F -coef_shop_University_Student_Duration_gt_1p5_hr,0.045926523,F -coef_shop_Female_Duration_lt_1p5_hrs,-0.417208254,F -coef_shop_Female_Duration_gt_1p5_hr,0.045801918,F coef_shop_Low_Income_lteq25_000_Duration_gt_1p5_hr,0.040776383,F coef_shop_Medium_Income_25_001_to_60_000_Duration_lt_1p5_hrs,0.108462927,F coef_shop_MediumHigh_Income_60_001_to_120_00_Duration_gt_1p5_hr,-0.037893416,F coef_shop_Distance_Duration_lt_1p5_hrs,-0.214802537,F coef_shop_Distance_Duration_gt_1p5_hr,0.007991656,F -coef_shop_Time_Pressure_Duration_gt_1p5_hrs,0.013503327,F -coef_shop_Number_of_additional_individual_shop_and_maintp_tours_Duration_lt_1p5_hrs,0.078844289,F -coef_shop_Number_of_additional_individual_shop_and_maintp_tours_Duration_gt_1p5_hrs,-0.115431492,F coef_shop_Departure_Constant_Shift_for_every_30_minutes_before_08_30_am_Linear,-0.959875456,F coef_shop_Departure_Constant_Shift_for_every_30_minutes_before_08_30_am_Square_root,1.112594898,F coef_shop_Departure_Constant_Before_09_00_AM,-0.446394064,F @@ -136,25 +122,12 @@ coef_maint_Joint_Tours_Party_Size_gt_2_Duration_gt_1p5_hr,0.045755784,F coef_maint_Joint_Tour_with_only_adults_Duration_lt_1p5_hrs,-0.571185116,F coef_maint_Kids_in_Joint_Tour_Duration_lt_1p5_hrs,-0.468815184,F coef_maint_Kids_in_Joint_Tour_Duration_gt_1p5_hr,-0.047470039,F -coef_maint_Fulltime_worker_Duration_gt_1p5_hr,-0.037886459,F -coef_maint_Nondriving_Student_Duration_gt_1p5_hr,0.10247157,F -coef_maint_Preschool_Child_Duration_lt_1p5_hrs,-1.882944033,F -coef_maint_Part_Time_Worker_Duration_lt_1p5_hrs,-0.197455071,F -coef_maint_Part_Time_Worker_Duration_gt_1p5_hr,-0.045152663,F -coef_maint_Retired_Duration_lt_1p5_hrs,-0.264728908,F -coef_maint_Retired_Duration_gt_1p5_hr,-0.042981757,F -coef_maint_University_Student_Duration_gt_1p5_hr,0.045926523,F -coef_maint_Female_Duration_lt_1p5_hrs,-0.417208254,F -coef_maint_Female_Duration_gt_1p5_hr,0.045801918,F coef_maint_Low_Income_lteq25_000_Duration_gt_1p5_hr,0.040776383,F coef_maint_Medium_Income_25_001_to_60_000_Duration_lt_1p5_hrs,0.108462927,F coef_maint_Medium_Income_25_001_to_60_000_Duration_gt_1p5_hr,0,T coef_maint_MediumHigh_Income_60_001_to_120_00_Duration_gt_1p5_hr,-0.037893416,F coef_maint_Distance_Duration_lt_1p5_hrs,-0.214802537,F coef_maint_Distance_Duration_gt_1p5_hr,0.007991656,F -coef_maint_Time_Pressure_Duration_gt_1p5_hrs,0.013503327,F -coef_maint_Number_of_additional_individual_shop_and_maintp_tours_Duration_lt_1p5_hrs,0.078844289,F -coef_maint_Number_of_additional_individual_shop_and_maintp_tours_Duration_gt_1p5_hrs,-0.115431492,F coef_maint_Departure_Constant_Shift_for_every_30_minutes_before_07_30_am_Linear,-0.864112609,F coef_maint_Departure_Constant_Shift_for_every_30_minutes_before_07_30_am_Square_Root,0.504598473,F coef_maint_Departure_Constant_Before_08_00_AM,-0.383711788,F @@ -194,25 +167,6 @@ coef_eatout_Medium_25k_to_60k_Duration_lt_1_hrs,0.499822018,F coef_eatout_Zero_auto_HH_Duration_gt_1_hrs,0.259409942,F coef_eatout_Kids_in_Joint_tour_Duration_lt_1_hrs,1.785123348,F coef_eatout_Joint_Tours_Party_Size_greater_than_2_Duration_lt_1_hrs,-1.626003709,F -coef_eatout_University_student_Departure_after_7_00_pm_Linear,0.293827759,F -coef_eatout_Female_Duration_lt_1_hrs,-0.399414247,F -coef_eatout_Female_Duration_gt_1_hrs,0.064593482,F -coef_eatout_Time_Pressure_Departure_before_6_30_pm,0.083673557,F -coef_eatout_Time_Pressure_Duration_lt_1_hrs,1.69632588,F -coef_eatout_Departure_Constant_07_30_AM_09_00_AM,1.222417262,F -coef_eatout_Departure_Constant_10_30_AM_11_00_AM,0.519559134,F -coef_eatout_Departure_Constant_11_00_AM_11_30_AM,1.191543552,F -coef_eatout_Departure_Constant_11_30_AM_12_00_PM,1.66870995,F -#coef_eatout_Departure_Constant_12_00_PM_12_30_PM,1.164106986,F -coef_eatout_Departure_Constant_12_30_PM_01_00_PM,1.057346496,F -coef_eatout_Departure_Constant_01_00_PM_01_30_PM,0.728959087,F -coef_eatout_Departure_Constant_Shift_for_every_30_minutes_before_05_30_pm_Linear,-0.477439748,F -coef_eatout_Departure_Constant_Before_06_00_PM,-1.21554671,F -#coef_eatout_Departure_Constant_06_00_PM_06_30_PM,-0.425984037,F -#coef_eatout_Departure_Constant_06_30_PM_07_00_PM,0,T -#coef_eatout_Departure_Constant_07_00_PM_07_30_PM,-0.227800647,F -#coef_eatout_Departure_Constant_After_07_30_PM,-0.293904097,F -#coef_eatout_Departure_Constant_Shift_for_every_30_minutes_after_08_00_pm_Linear,-0.55440861,F coef_eatout_Departure_Constant_11_00_AM_12_00_PM,0.531539506,F coef_eatout_Departure_Constant_12_00_PM_12_30_PM,0.673838195,F coef_eatout_Departure_Constant_12_30_PM_to_01_00_PM,0.422292261,F @@ -224,21 +178,6 @@ coef_eatout_Departure_Constant_06_30_PM_07_00_PM,-0.282095841,F coef_eatout_Departure_Constant_07_00_PM_07_30_PM,-0.299748613,F coef_eatout_Departure_Constant_After_07_30_PM,-0.845300559,F coef_eatout_Departure_Constant_Shift_for_every_30_minutes_after_08_00_pm_Linear,-0.667843486,F -coef_eatout_Arrival_Constant_9_30_AM_to_11_00_AM,0.486337344,F -#coef_eatout_Arrival_Constant_12_30_PM_to_01_00_PM,0.629299404,F -#coef_eatout_Arrival_Constant_01_00_PM_to_01_30_PM,0.938528731,F -#coef_eatout_Arrival_Constant_01_30_PM_to_02_00_PM,0.584420106,F -#coef_eatout_Arrival_Constant_02_00_PM_to_02_30_PM,0.842550215,F -coef_eatout_Arrival_Constant_02_30_PM_to_03_00_PM,0.298486505,F -#coef_eatout_Arrival_Constant_Shift_for_every_30_minutes_before_06_00_pm_Linear,0.125034982,F -coef_eatout_Arrival_Constant_Before_6_30_PM,-0.029062996,F -coef_eatout_Arrival_Constant_6_30_PM_to_7_00_PM,-0.509075598,F -# coef_eatout_Arrival_Constant_7_00_PM_to_7_30_PM,-0.124885931,F -# coef_eatout_Arrival_Constant_7_30_PM_to_8_00_PM,-0.605455664,F -# coef_eatout_Arrival_Constant_8_00_PM_to_8_30_PM,0,T -# coef_eatout_Arrival_Constant_8_30_PM_to_9_00_PM,-0.657382835,F -coef_eatout_Arrival_Constant_After_9_00_PM,-0.813629712,F -#coef_eatout_Arrival_Constant_Shift_for_every_30_minutes_after_09_30_pm_Linear,-0.204722406,F coef_eatout_Arrival_Constant_12_30_PM_to_01_00_PM,2.002032369,F coef_eatout_Arrival_Constant_01_00_PM_to_01_30_PM,2.115334472,F coef_eatout_Arrival_Constant_01_30_PM_to_02_00_PM,1.647879687,F @@ -251,12 +190,6 @@ coef_eatout_Arrival_Constant_8_00_PM_to_8_30_PM,0,T coef_eatout_Arrival_Constant_8_30_PM_to_9_00_PM,-0.239939049,F coef_eatout_Arrival_Constant_After_09_00_PM,-0.248639696,F coef_eatout_Arrival_Constant_Shift_for_every_30_minutes_after_09_30_pm_Linear,-0.204771082,F -#coef_eatout_Duration_Constant_0_hours,-11.72660422,F -#coef_eatout_Duration_Constant_0p5_hous,-5.08873115,F -#coef_eatout_Duration_Constant_1_hour,-0.125521065,F -#coef_eatout_Duration_Constant_1p5_hours,0,T -coef_eatout_Duration_Constant_2_hours,-0.124807752,F -coef_eatout_Duration_Constant_2p5_hours_or_more,-0.156019835,F coef_eatout_Duration_Constant_Shift_for_every_30_minutes_more_than_3_hrs_Linear,-0.3357414,F coef_eatout_Duration_Constant_0_hours,-4.268996522,F coef_eatout_Duration_Constant_0p5_hous,-1.323297693,F @@ -276,9 +209,6 @@ coef_eatout_Calibration_Constant_Departure_eq_18,0.634353544,F coef_eatout_Calibration_Constant_Departure_eq_19,0.584387268,F coef_eatout_Calibration_Constant_Departure_eq_20,0.469777884,F coef_eatout_Calibration_Constant_Departure_eq_21,0.39548931,F -coef_social_Personlt_18_years_old_Duration_lt_1p5_hrs_Linear,-0.262839914,F -coef_social_Personlt_18_years_old_Duration_gt_1p5_hrs_Linear,0.086919429,F -coef_social_Nonworking_senior_retiree_Duration_lt_1p5_hrs_Linear,0.468354376,F coef_social_Retiree_Nonworking_senior_only_HH_Duration_lt_1p5_hrs_Linear,-0.312282762,F coef_social_Zero_auto_households_Duration_lt_1p5_hrs_Linear,-0.508439932,F coef_social_Zero_auto_households_Duration_gt_1p5_hrs_Linear,0.074190914,F @@ -289,9 +219,6 @@ coef_social_Kids_in_Joint_Tour_Duration_gt_1p5_hr,-0.115347031,F coef_social_Joint_Tours_Party_Size_gt_2_Duration_gt_1p5_hr,0.104494637,F coef_social_Auto_Distance_Duration_lt_1_hrs_Linear,-0.162965435,F coef_social_Auto_Distance_Duration_gt_1_hrs_Linear,0.006797399,F -coef_social_Time_Pressure_Duration_lt_1_hr,-0.229264474,F -coef_social_Time_Pressure_Duration_gt_1_hr,0.219325112,F -coef_social_Number_of_additional_individual_social_and_dicretionary_tours_Duration_lt_1_hr,0.156250451,F coef_social_Departure_Constant_Shift_for_every_30_minutes_before_08_30_am_Linear,-0.529943196,F coef_social_Departure_Constant_Before_09_00_AM,-0.198438086,F coef_social_Departure_Constant_09_00_AM_to_09_30_AM,0.137620628,F @@ -321,12 +248,6 @@ coef_social_Duration_Constant_2_hours,-0.271552271,F coef_social_Duration_Constant_2p5_hours,0,T coef_social_Duration_Constant_3_hours_or_more,0.042083404,F coef_social_Duration_Constant_Shift_for_every_30_minutes_more_than_3p5_hrs_Linear,-0.13049452,F -coef_social_Duration_Constant_Shift_for_every_30_minutes_less_than_2p5_hrs_Linear,0.614440191,F -coef_social_Duration_Constant_Less_than_3_hrs,0.353666691,F -coef_social_Duration_Constant_3_hours,0,T -coef_social_Duration_Constant_3p5_hours,-0.691218836,F -coef_social_Duration_Constant_4_hours_or_more,-1.344375328,F -coef_social_Duration_Constant_Shift_for_every_30_minutes_more_than_4p5_hrs_Linear,-0.786970714,F coef_social_Calibration_Constant_Duration_eq_1,-1.346772472,F coef_social_Calibration_Constant_Duration_eq_2,0.377121689,F coef_social_Calibration_Constant_Duration_eq_3,0.179818928,F @@ -336,9 +257,6 @@ coef_social_Calibration_Constant_Duration_eq_6,-0.03704707,F coef_social_Calibration_Constant_Duration_eq_7,-0.062437167,F coef_social_Calibration_Constant_Duration_eq_8,0.047640282,F coef_social_Calibration_Constant_Duration_eq_9,0.284369793,F -coef_disc_Personlt_18_years_old_Duration_lt_1p5_hrs_Linear,-0.262839914,F -coef_disc_Personlt_18_years_old_Duration_gt_1p5_hrs_Linear,0.086919429,F -coef_disc_Nonworking_senior_retiree_Duration_lt_1p5_hrs_Linear,0.468354376,F coef_disc_Retiree_Nonworking_senior_only_HH_Duration_lt_1p5_hrs_Linear,-0.312282762,F coef_disc_Zero_auto_households_Duration_lt_1p5_hrs_Linear,-0.508439932,F coef_disc_Zero_auto_households_Duration_gt_1p5_hrs_Linear,0.074190914,F @@ -349,9 +267,6 @@ coef_disc_Kids_in_Joint_Tour_Duration_gt_1p5_hr,-0.115347031,F coef_disc_Joint_Tours_Party_Size_gt_2_Duration_gt_1p5_hr,0.104494637,F coef_disc_Auto_Distance_Duration_lt_1_hrs_Linear,-0.162965435,F coef_disc_Auto_Distance_Duration_gt_1_hrs_Linear,0.006797399,F -coef_disc_Time_Pressure_Duration_lt_1_hr,-0.229264474,F -coef_disc_Time_Pressure_Duration_gt_1_hr,0.219325112,F -coef_disc_Number_of_additional_individual_social_and_dicretionary_tours_Duration_lt_1_hr,0.156250451,F coef_disc_Departure_Constant_Shift_for_every_30_minutes_before_07_30_pm_Linear,-0.742176805,F coef_disc_Departure_Constant_Before_7_30_AM_,-1.323901585,F coef_disc_Departure_Constant_7_30_AM_to_8_00_AM,-0.695441631,F @@ -377,21 +292,13 @@ coef_disc_Arrival_Constant_8_00_PM_to_8_30_PM,0,T coef_disc_Arrival_Constant_8_30_PM_to_9_00_PM,-0.18610847,F coef_disc_Arrival_Constant_After_9_00_PM,-0.423207857,F coef_disc_Arrival_Constant_Shift_for_every_30_minutes_after_09_30_pm_Linear,-0.525545923,F -#coef_disc_Duration_Constant_0_hours,-0.944257762,F -#coef_disc_Duration_Constant_0p5_hous,-0.117695955,F -#coef_disc_Duration_Constant_1_hour,0.438403665,F -#coef_disc_Duration_Constant_1p5_hours,-0.002500048,F -#coef_disc_Duration_Constant_2_hours,0,T +coef_disc_Duration_Constant_0_hours,-0.944257762,F +coef_disc_Duration_Constant_0p5_hous,-0.117695955,F +coef_disc_Duration_Constant_1_hour,0.438403665,F +coef_disc_Duration_Constant_1p5_hours,-0.002500048,F +coef_disc_Duration_Constant_2_hours,0,T coef_disc_Duration_Constant_2p5_hours_or_more,0.239192556,F -#coef_disc_Duration_Constant_Shift_for_every_30_minutes_more_than_3_hrs_Linear,-0.108260689,F -coef_disc_Duration_Constant_0_hours,0.436988282,F -coef_disc_Duration_Constant_0p5_hous,1.35967577,F -coef_disc_Duration_Constant_1_hour,1.692672999,F -coef_disc_Duration_Constant_1p5_hours,1.118932964,F -coef_disc_Duration_Constant_2_hours,0.771255733,F -coef_disc_Duration_Constant_2p5_hours,0,T -coef_disc_Duration_Constant_3_hours_or_more,-0.631242175,F -coef_disc_Duration_Constant_Shift_for_every_30_minutes_more_than_3_hrs_Linear,-0.700935645,F +coef_disc_Duration_Constant_Shift_for_every_30_minutes_more_than_3_hrs_Linear,-0.108260689,F coef_disc_Calibration_Constant_Duration_eq_4,-0.132674257,F coef_disc_Calibration_Constant_Duration_eq_5,-0.013371871,F coef_disc_Calibration_Constant_Departure_eq_29,0.232927977,F diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory.csv deleted file mode 100755 index f3ae1b217..000000000 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory.csv +++ /dev/null @@ -1,348 +0,0 @@ -Label,Description,Expression,Coefficient -# ESCORT,,, -util_escort_mode_choice_logsum,ESCORT - Mode Choice Logsum,"@np.where(df.tour_type == 'escort', df.mode_choice_logsum, 0) ",coef_escort_mode_choice_logsum -"#Note: In CTRAMP expressions, duration alternative is from 1 to 48 but in ActivitySim, it is from 0 to 47 since the duration alternative ID was calculated as (end - start). Therefore, duration in ActivitySim expression = CTRAMP duration expresssion - 1 ",,,# -util_escort_distance_to_destination_duration_less_than_30_minutes,ESCORT - Distance to destination - Duration less than 0.5 hour (depart and arrive in the same period),"@np.where(((df.tour_type == 'escort') & (df.duration<1)), ((df.origin_to_destination_distance) * (np.where((df.duration<=1), np.minimum(1-df.duration, 0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0))), 0)",coef_escort_distance_to_destination_duration_less_than_30_minutes -util_escort_distance_to_destination_duration_greater_than_30_minutes,ESCORT - Distance to destination - Duration greater than 0.5 hour,"@np.where(((df.tour_type == 'escort') & (df.duration>1)), ((df.origin_to_destination_distance) * (np.where((df.duration<=1), np.minimum(1-df.duration, 0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0))), 0)",coef_escort_distance_to_destination_duration_greater_than_30_minutes -util_escort_fulltime_worker_departure_after_8_am_linear,ESCORT - Full-time worker - Departure after 8:00 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)),0)",coef_escort_fulltime_worker_departure_after_8_am_linear -"#Note: In CTRAMP expression file, the description below says departure is after 3 am but from the expression it seems that it would be 3 pm instead of 3 am",,, -util_escort_fulltime_worker_departure_after_3_am_linear,ESCORT - Full-time worker - Departure after 3:00 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.start>24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_fulltime_worker_departure_after_3_am_linear -util_escort_fulltime_worker_duration_less_than_30_minutes,ESCORT - Full-time worker - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_fulltime_worker_duration_less_than_30_minutes -util_escort_fulltime_worker_duration_greater_than_30_minutes,ESCORT - Full-time worker - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_fulltime_worker_duration_greater_than_30_minutes -util_escort_university_student_duration_less_than_30_minutes,ESCORT - University student - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 3) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_university_student_duration_less_than_30_minutes -util_escort_non_driving_age_student_duration_greater_than_30_minutes,ESCORT - Non-driving age student - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & ((df.ptype == 7)|(df.ptype == 8)) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_non_driving_age_student_duration_greater_than_30_minutes -util_escort_driving_age_student_duration_less_than_30_minutes,ESCORT - Driving age student - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 6) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_driving_age_student_duration_less_than_30_minutes -util_escort_driving_age_student_duration_greater_than_30_minutes,ESCORT - Driving age student - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 6) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_driving_age_student_duration_greater_than_30_minutes -"#Note: In CTRAMP expression file, description says the expression below is for duration > 0.5 hr but the expression says duration < 0.5 hr",,, -util_escort_pre_school_kid_duration_greater_than_30_minutes,ESCORT - Pre-school kid - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 8) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_pre_school_kid_duration_greater_than_30_minutes -util_escort_med_high_income_duration_greater_than_30_minutes,ESCORT - Med-high income (60k to 120k) - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.is_income_60K_to_120K) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_med_high_income_duration_greater_than_30_minutes -util_escort_households_with_no_kids_departure_before_7_30_am,"ESCORT - Households with no kids (Dummy- 1,0) - Departure before 7:30 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start<10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_households_with_no_kids_departure_before_7_30_am -util_escort_households_with_no_kids_departure_after_8_00_am,"ESCORT - Households with no kids (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_households_with_no_kids_departure_after_8_00_am -util_escort_households_with_no_kids_departure_before_2_30_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Departure before 2:30 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start<24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_households_with_no_kids_departure_before_2_30_pm -util_escort_households_with_no_kids_departure_after_3_00_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Departure after 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start>24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where ((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_households_with_no_kids_departure_after_3_00_pm -util_escort_households_with_no_kids_arrival_before_8_am,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival before 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end<11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_households_with_no_kids_arrival_before_8_am -util_escort_households_with_no_kids_arrival_after_8_30_am,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival after 8:30 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end>11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_households_with_no_kids_arrival_after_8_30_am -util_escort_households_with_no_kids_arrival_before_3_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival before 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end<25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_households_with_no_kids_arrival_before_3_pm -util_escort_households_with_no_kids_arrival_after_3_30_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival after 3:30 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end>25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_households_with_no_kids_arrival_after_3_30_pm -util_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am -util_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.start>24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm -util_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am,"ESCORT -Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival before 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.end<11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am -util_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival before 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.end<25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where ((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival after 8:30 AM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.end>11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival after 3:30 PM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.end>25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm -util_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes,ESCORT - Number of autos greater than number of adults - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.auto_ownership > 0) & (df.auto_ownership > df.num_adults) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes -util_escort_number_of_individual_tours_duration_greater_than_30_minutes,ESCORT -Number of Individual Tours (excluding escorting) - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.num_non_escort_tours > 0) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)) * (df.num_non_escort_tours), 0)",coef_escort_number_of_individual_tours_duration_greater_than_30_minutes -util_escort_number_of_joint_tours_duration_greater_than_30_minutes,ESCORT - Number of joint tours - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)) *(df.num_joint_tours), 0)",coef_escort_number_of_joint_tours_duration_greater_than_30_minutes -util_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear,ESCORT - Departure Constant: Shift for every 30 minutes before 06:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.start<8)), (np.where((df.start<8), np.minimum(8-df.start,4), 0) + np.where((df.start>13), np.minimum(df.start-13,28), 0)), 0)",coef_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear -util_escort_departure_constant_before_7_am,ESCORT - Departure Constant: Before 07:00 AM,@((df.tour_type == 'escort') & (df.start<9)),coef_escort_departure_constant_before_7_am -util_escort_departure_constant_7_am_to_7_30_am,ESCORT - Departure Constant: 07:00 AM - 07:30 AM,@((df.tour_type == 'escort') & (df.start==9)),coef_escort_departure_constant_7_am_to_7_30_am -util_escort_departure_constant_7_30_am_to_8_am,ESCORT - Departure Constant: 07:30 AM - 08:00 AM,@((df.tour_type == 'escort') & (df.start==10)),coef_escort_departure_constant_7_30_am_to_8_am -util_escort_departure_constant_8_am_to_8_30_am,ESCORT - Departure Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'escort') & (df.start==11)),coef_escort_departure_constant_8_am_to_8_30_am -util_escort_departure_constant_8_30_am_to_9_am,ESCORT - Departure Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'escort') & (df.start==12)),coef_escort_departure_constant_8_30_am_to_9_am -util_escort_departure_constant_after_9_am,ESCORT - Departure Constant: After 09:00 AM,@((df.tour_type == 'escort') & (df.start>12)),coef_escort_departure_constant_after_9_am -util_escort_departure_constant_1_30_pm_to_2_pm,ESCORT - Departure Constant: 01:30 PM - 02:00 PM,@((df.tour_type == 'escort') & (df.start==22)),coef_escort_departure_constant_1_30_pm_to_2_pm -util_escort_departure_constant_2_pm_to_2_30_pm,ESCORT - Departure Constant: 02:00 PM - 02:30 PM,@((df.tour_type == 'escort') & (df.start==23)),coef_escort_departure_constant_2_pm_to_2_30_pm -util_escort_departure_constant_2_30_pm_to_3_pm,ESCORT - Departure Constant: 02:30 PM - 03:00 PM,@((df.tour_type == 'escort') & (df.start==24)),coef_escort_departure_constant_2_30_pm_to_3_pm -util_escort_departure_constant_3_pm_to_3_30_pm,ESCORT - Departure Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'escort') & (df.start==25)),coef_escort_departure_constant_3_pm_to_3_30_pm -util_escort_departure_constant_after_3_30_pm,ESCORT - Departure Constant: After 03:30 PM,@((df.tour_type == 'escort') & (df.start>25)),coef_escort_departure_constant_after_3_30_pm -util_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear,ESCORT - Departure Constant: Shift for every 30 minutes after 9:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.start>13)), (np.where((df.start<8), np.minimum(8-df.start,4), 0) + (np.where((df.start>13), np.minimum(df.start-13,28), 0))), 0)",coef_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear -util_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear,ESCORT - Departure Constant: Shift for every 30 minutes after 4:00 pm - Linear,"@np.where(((df.tour_type == 'escort') & (df.start>26)), (np.where((df.start<0), np.minimum(0-df.start,48), 0) + np.where((df.start>26), np.minimum(df.start-26,15),0)), 0)",coef_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear -util_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear,ESCORT - Arrival Constant: Shift for every 30 minutes before 6:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.end<8)), (np.where((df.end<8), np.minimum(8-df.end,2), 0) + np.where((df.end>13), np.minimum(df.end-13,30), 0)), 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear -util_escort_arrival_constant_before_7_am,ESCORT - Arrival Constant: Before 07:00 AM,@((df.tour_type == 'escort') & (df.end<9)),coef_escort_arrival_constant_before_7_am -util_escort_arrival_constant_7_am_to_7_30_am,ESCORT - Arrival Constant: 07:00 AM - 07:30 AM,@((df.tour_type == 'escort') & (df.end==9)),coef_escort_arrival_constant_7_am_to_7_30_am -util_escort_arrival_constant_7_30_am_to_8_am,ESCORT - Arrival Constant: 07:30 AM - 08:00 AM,@((df.tour_type == 'escort') & (df.end==10)),coef_escort_arrival_constant_7_30_am_to_8_am -util_escort_arrival_constant_8_am_to_8_30_am,ESCORT - Arrival Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'escort') & (df.end==11)),coef_escort_arrival_constant_8_am_to_8_30_am -util_escort_arrival_constant_8_30_am_to_9_am,ESCORT - Arrival Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'escort') & (df.end==12)),coef_escort_arrival_constant_8_30_am_to_9_am -util_escort_arrival_constant_after_9_am,ESCORT - Arrival Constant: After 09:00 AM,@((df.tour_type == 'escort') & (df.end>12)),coef_escort_arrival_constant_after_9_am -util_escort_arrival_constant_2_30_pm_to_3_pm,ESCORT - Arrival Constant: 02:30 PM - 03:00 PM,@((df.tour_type == 'escort') & (df.end==24)),coef_escort_arrival_constant_2_30_pm_to_3_pm -util_escort_arrival_constant_3_pm_to_3_30_pm,ESCORT - Arrival Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'escort') & (df.end==25)),coef_escort_arrival_constant_3_pm_to_3_30_pm -util_escort_arrival_constant_3_30_pm_to_4_pm,ESCORT - Arrival Constant: 03:30 PM - 04:00 PM,@((df.tour_type == 'escort') & (df.end==26)),coef_escort_arrival_constant_3_30_pm_to_4_pm -util_escort_arrival_constant_4_pm_to_4_30_pm,ESCORT - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'escort') & (df.end==27)),coef_escort_arrival_constant_4_pm_to_4_30_pm -util_escort_arrival_constant_after_4_30_pm,ESCORT - Arrival Constant: After 04:30 PM,@((df.tour_type == 'escort') & (df.end>27)),coef_escort_arrival_constant_after_4_30_pm -util_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear,ESCORT - Arrival Constant: Shift for every 30 minutes after 9:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.end>13)), (np.where((df.end<8), np.minimum(8-df.end,2), 0) + np.where((df.end>13), np.minimum(df.end-13,30), 0)), 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear -util_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,ESCORT - Arrival Constant: Shift for every 30 minutes after 5:00 pm - Linear,"@np.where(((df.tour_type == 'escort') & (df.end>28)), (np.where((df.end<0), np.minimum(0-df.end,48), 0) + np.where((df.start>28), np.minimum(df.end-28,15), 0)), 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear -util_escort_duration_constant_0_hour,ESCORT - Duration Constant: 0 hr,@((df.tour_type == 'escort') & (df.duration==0)),coef_escort_duration_constant_0_hour -util_escort_duration_constant_30_minutes,ESCORT - Duration Constant: 0.5 hr,@((df.tour_type == 'escort') & (df.duration==1)),coef_escort_duration_constant_30_minutes -util_escort_duration_constant_1_hour,ESCORT - Duration Constant: 1 hr,@((df.tour_type == 'escort') & (df.duration==2)),coef_escort_duration_constant_1_hour -util_escort_duration_constant_1_hour_30_minutes,ESCORT - Duration Constant: 1.5hrs,@((df.tour_type == 'escort') & (df.duration==3)),coef_escort_duration_constant_1_hour_30_minutes -util_escort_duration_constant_2_hours,ESCORT - Duration Constant: 2 hrs,@((df.tour_type == 'escort') & (df.duration==4)),coef_escort_duration_constant_2_hours -util_escort_duration_constant_longer_than_2_hours,ESCORT - Duration Constant: Longer than 2 hrs,@((df.tour_type == 'escort') & (df.duration>4)),coef_escort_duration_constant_longer_than_2_hours -util_escort_calibration_constant_duration_1,ESCORT - Calibration Constant - Duration = 1,@((df.tour_type == 'escort') & (df.duration==0)),coef_escort_calibration_constant_duration_1 -util_escort_calibration_constant_duration_2,ESCORT - Calibration Constant - Duration = 2,@(((df.tour_type == 'escort') & df.duration==1)),coef_escort_calibration_constant_duration_2 -util_escort_calibration_constant_departure_9,ESCORT - Calibration Constant - Departure = 9,@((df.tour_type == 'escort') & (df.start==9)),coef_escort_calibration_constant_departure_9 -util_escort_calibration_constant_departure_10,ESCORT - Calibration Constant - Departure = 10,@((df.tour_type == 'escort') & (df.start==10)),coef_escort_calibration_constant_departure_10 -util_escort_calibration_constant_departure_23,ESCORT - Calibration Constant - Departure = 23,@((df.tour_type == 'escort') & (df.start==23)),coef_escort_calibration_constant_departure_23 -util_escort_calibration_constant_departure_24,ESCORT - Calibration Constant - Departure = 24,@((df.tour_type == 'escort') & (df.start==24)),coef_escort_calibration_constant_departure_24 -#SHOPPING,,,#SHOPPING -util_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes,SHOPPING - Driving age student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 6)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes -util_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes,SHOPPING - Full-time worker: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes -util_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes,SHOPPING - Non-driving Student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & ((df.ptype == 7)|(df.ptype == 8))), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes -util_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes,SHOPPING - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes -util_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes,SHOPPING - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes -util_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes,SHOPPING - Part Time Worker: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes -util_shopping_retired_duration_less_than_1_hour_30_minutes,SHOPPING - Retired: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_retired_duration_less_than_1_hour_30_minutes -util_shopping_retired_duration_greater_than_1_hour_30_minutes,SHOPPING - Retired: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_retired_duration_greater_than_1_hour_30_minutes -util_shopping_university_student_duration_greater_than_1_hour_30_minutes,SHOPPING - University Student: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_university_student_duration_greater_than_1_hour_30_minutes -util_shopping_female_duration_less_than_1_hour_30_minutes,SHOPPING - Female: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_female_duration_less_than_1_hour_30_minutes -util_shopping_female_duration_greater_than_1_hour_30_minutes,SHOPPING - Female: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_female_duration_greater_than_1_hour_30_minutes -util_shopping_low_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Low Income (<=$25,000): Duration > 1.5 hr","@np.where(((df.tour_type == 'shopping') & (df.is_income_less25K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_low_income_duration_greater_than_1_hour_30_minutes -util_shopping_medium_income_duration_less_than_1_hour_30_minutes,"SHOPPING - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.tour_type == 'shopping') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_income_duration_less_than_1_hour_30_minutes -util_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.tour_type == 'shopping') & (df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes -util_shopping_distance_duration_less_than_1_hour_30_minutes,SHOPPING - Distance: Duration < 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_less_than_1_hour_30_minutes -util_shopping_distance_duration_greater_than_1_hour_30_minutes,SHOPPING - Distance: Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_greater_than_1_hour_30_minutes -util_shopping_time_pressure_duration_greater_than_1_hour_30_minutes,SHOPPING - Time Pressure - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration>2)), np.minimum(df.duration-2,26) *(np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_shopping_time_pressure_duration_greater_than_1_hour_30_minutes -util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes -util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') &(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes -util_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SHOPPING - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@np.where(((df.tour_type == 'shopping') & (df.start<12)), (np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear -util_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root,SHOPPING - Departure Constant: Shift for every 30 minutes before 08:30 am - Square root,"@np.where(((df.tour_type == 'shopping') & (df.start<12)), (np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0))**0.5, 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root -util_shopping_departure_constant_before_9_am,SHOPPING - Departure Constant: Before 09:00 AM,@((df.tour_type == 'shopping') & (df.start<13)),coef_shopping_departure_constant_before_9_am -util_shopping_departure_constant_9_am_to_9_30_am,SHOPPING - Departure Constant: 09:00 AM - 09:30 AM,@((df.tour_type == 'shopping') & (df.start==13)),coef_shopping_departure_constant_9_am_to_9_30_am -util_shopping_departure_constant_9_30_am_to_10_am,SHOPPING - Departure Constant: 09:30 AM - 10:00 AM,@((df.tour_type == 'shopping') & (df.start==14)),coef_shopping_departure_constant_9_30_am_to_10_am -util_shopping_departure_constant_10_am_to_10_30_am,SHOPPING - Departure Constant: 10:00 AM - 10:30 AM,@((df.tour_type == 'shopping') & (df.start==15)),coef_shopping_departure_constant_10_am_to_10_30_am -util_shopping_departure_constant_10_30_am_to_11_00_am,SHOPPING - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'shopping') & (df.start==16)),coef_shopping_departure_constant_10_30_am_to_11_00_am -util_shopping_departure_constant_after_11_am,SHOPPING - Departure Constant: After 11:00 AM,@((df.tour_type == 'shopping') & (df.start>16)),coef_shopping_departure_constant_after_11_am -util_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,SHOPPING - Departure Constant: Shift for every 30 minutes after 11:30 am - Linear,"@np.where(((df.tour_type == 'shopping') & (df.start>17)), (np.where((df.start<12), np.minimum(12-df.start,7),0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear -util_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,SHOPPING - Departure Constant: Shift for every 30 minutes after 11:30 am - Squared,"@np.where(((df.tour_type == 'shopping') & (df.start>17)), ((np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)) ** 2), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared -util_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear,SHOPPING - Arrival Constant: Shift for every 30 minutes before 12:00 pm - Linear,"@np.where(((df.tour_type == 'shopping') & (df.end<19)), (np.where ((df.end<19), np.minimum(19-df.end,10), 0) + np.where((df.end>38), np.minimum(df.end-38,5), 0)), 0)",coef_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear -util_shopping_arrival_constant_before_12_30_pm,SHOPPING - Arrival Constant: Before 12:30 PM,@((df.tour_type == 'shopping') & (df.end<20)),coef_shopping_arrival_constant_before_12_30_pm -util_shopping_arrival_constant_12_30_pm_to_3_pm,SHOPPING - Arrival Constant: 12:30 PM - 03:00 PM,@((df.tour_type == 'shopping') & ( df.end>=20) & (df.end<=24)),coef_shopping_arrival_constant_12_30_pm_to_3_pm -util_shopping_arrival_constant_3_pm_to_3_30_pm,SHOPPING - Arrival Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'shopping') & (df.end==25)),coef_shopping_arrival_constant_3_pm_to_3_30_pm -util_shopping_arrival_constant_3_30_pm_to_4_pm,SHOPPING - Arrival Constant: 03:30 PM - 04:00 PM,@((df.tour_type == 'shopping') & (df.end==26)),coef_shopping_arrival_constant_3_30_pm_to_4_pm -util_shopping_arrival_constant_4_pm_to_4_30_pm,SHOPPING - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'shopping') & (df.end==27)),coef_shopping_arrival_constant_4_pm_to_4_30_pm -util_shopping_arrival_constant_4_30_pm_to_5_pm,SHOPPING - Arrival Constant: 04:30 PM - 05:00 PM,@((df.tour_type == 'shopping') & (df.end==28)),coef_shopping_arrival_constant_4_30_pm_to_5_pm -util_shopping_arrival_constant_5_pm_to_5_30_pm,SHOPPING - Arrival Constant: 05:00 PM - 05:30 PM,@((df.tour_type == 'shopping') & (df.end==29)),coef_shopping_arrival_constant_5_pm_to_5_30_pm -util_shopping_arrival_constant_5_30_pm_to_7_pm,SHOPPING - Arrival Constant: 05:30 PM - 07:00 PM,@((df.tour_type == 'shopping') & (df.end>=30) & (df.end<=32)),coef_shopping_arrival_constant_5_30_pm_to_7_pm -util_shopping_arrival_constant_7_pm_to_9_30_pm,SHOPPING - Arrival Constant: 07:00 PM - 09:30 PM,@((df.tour_type == 'shopping') & (df.end>=33) & (df.end<=37)),coef_shopping_arrival_constant_7_pm_to_9_30_pm -util_shopping_arrival_constant_after_9_30_pm,SHOPPING - Arrival Constant: After 09:30 PM,@((df.tour_type == 'shopping') & (df.end>37)),coef_shopping_arrival_constant_after_9_30_pm -util_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear,SHOPPING - Arrival Constant: Shift for every 30 minutes after 10:00 pm - Linear,"@np.where(((df.tour_type == 'shopping') & (df.end>38)), (np.where((df.end<19), np.minimum(19-df.end,10), 0) + np.where ((df.end>38), np.minimum(df.end-38,5), 0)), 0)",coef_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear -util_shopping_duration_constant_0_hr,SHOPPING - Duration Constant: 0 hr,@((df.tour_type == 'shopping') & (df.duration==0)),coef_shopping_duration_constant_0_hr -util_shopping_duration_constant_30_minutes,SHOPPING - Duration Constant: 0.5 hr,@((df.tour_type == 'shopping') & (df.duration==1)),coef_shopping_duration_constant_30_minutes -util_shopping_duration_constant_1_hr,SHOPPING - Duration Constant: 1 hr,@((df.tour_type == 'shopping') & (df.duration==2)),coef_shopping_duration_constant_1_hr -util_shopping_duration_constant_1_hour_30_minutes,SHOPPING - Duration Constant: 1.5hrs,@(df.tour_type == 'shopping') & (df.duration==3),coef_shopping_duration_constant_1_hour_30_minutes -util_shopping_duration_constant_2_hrs,SHOPPING - Duration Constant: 2 hrs,@((df.tour_type == 'shopping') & (df.duration==4)),coef_shopping_duration_constant_2_hrs -util_shopping_duration_constant_longer_than_2_hrs,SHOPPING - Duration Constant: Longer than 2 hrs,@((df.tour_type == 'shopping') & (df.duration>4)),coef_shopping_duration_constant_longer_than_2_hrs -util_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear,SHOPPING - Duration Constant: Duration > 2.5 hrs - Linear,"@np.where(((df.tour_type == 'shopping') & (df.duration>5)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,26), 0)), 0)",coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear -util_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root,SHOPPING - Duration Constant: Duration > 2.5 hrs - Square root,"@np.where(((df.tour_type == 'shopping') & (df.duration>5)), ((np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,26), 0)) ** 0.5), 0)",coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root -util_shopping_calibration_constant_duration_1,SHOPPING - Calibration Constant - Duration = 1,@((df.tour_type == 'shopping') & (df.duration==0)),coef_shopping_calibration_constant_duration_1 -util_shopping_calibration_constant_duration_2,SHOPPING - Calibration Constant - Duration = 2,@((df.tour_type == 'shopping') & (df.duration==1)),coef_shopping_calibration_constant_duration_2 -util_shopping_calibration_constant_duration_3,SHOPPING - Calibration Constant - Duration = 3,@((df.tour_type == 'shopping') & (df.duration==2)),coef_shopping_calibration_constant_duration_3 -#MAINTENANCE,#MAINTENANCE,,#MAINTENANCE -util_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Driving age student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 6)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes -util_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Full-time worker: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Non-driving Student: Duration > 1.5 hrs,"@np.where (((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & ((df.ptype == 7)|(df.ptype == 8))), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes -util_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes,MAINTENANCE - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes -util_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes -util_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_retired_duration_less_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_less_than_1_hour_30_minutes -util_maintenance_retired_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_greater_than_1_hour_30_minutes -util_maintenance_university_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - University Student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_university_student_duration_greater_than_1_hour_30_minutes -util_maintenance_female_duration_less_than_1_hour_30_minutes,MAINTENANCE - Female: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_less_than_1_hour_30_minutes -util_maintenance_female_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Female: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_greater_than_1_hour_30_minutes -util_maintenance_low_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Low Income (<=$25,000): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_less25K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_low_income_duration_greater_than_1_hour_30_minutes -util_maintenance_medium_income_duration_less_than_1_hour_30_minutes,"MAINTENANCE - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_income_duration_less_than_1_hour_30_minutes -util_maintenance_medium_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium Income ($25,001 to $60,000): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_25K_to_60K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_income_duration_greater_than_1_hour_30_minutes -util_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes -util_maintenance_distance_duration_less_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration < 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_less_than_1_hour_30_minutes -util_maintenance_distance_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration > 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_greater_than_1_hour_30_minutes -util_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes,Time Pressure - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), np.minimum(df.duration-2,26) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes -util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes -util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes -util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.start<10)), (np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear -util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Square Root,"@np.where(((df.tour_type == 'othmaint') & (df.start<10)), ((np.where((df.start<10), np.minimum(10-df.start,7), 0) + (np.where((df.start>17), np.minimum(df.start-17,24), 0)))** 0.5), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root -util_maintenance_departure_constant_before_8_am,MAINTENANCE - Departure Constant: Before 08:00 AM,@((df.tour_type == 'othmaint') & (df.start<11)),coef_maintenance_departure_constant_before_8_am -util_maintenance_departure_constant_8_am_to_8_30_am,MAINTENANCE - Departure Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'othmaint') & (df.start==11)),coef_maintenance_departure_constant_8_am_to_8_30_am -util_maintenance_departure_constant_8_30_am_to_9_00_am,MAINTENANCE - Departure Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'othmaint') & (df.start==12)),coef_maintenance_departure_constant_8_30_am_to_9_00_am -util_maintenance_departure_constant_9_am_to_9_30_am,MAINTENANCE - Departure Constant: 09:00 AM - 09:30 AM,@((df.tour_type == 'othmaint') & (df.start==13)),coef_maintenance_departure_constant_9_am_to_9_30_am -util_maintenance_departure_constant_9_30_am_to_10_am,MAINTENANCE - Departure Constant: 09:30 AM - 10:00 AM,@((df.tour_type == 'othmaint') & (df.start==14)),coef_maintenance_departure_constant_9_30_am_to_10_am -util_maintenance_departure_constant_10_am_to_10_30_am,MAINTENANCE - Departure Constant: 10:00 AM - 10:30 AM,@((df.tour_type == 'othmaint') & (df.start==15)),coef_maintenance_departure_constant_10_am_to_10_30_am -util_maintenance_departure_constant_10_30_am_to_11_am,MAINTENANCE - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'othmaint') & (df.start==16)),coef_maintenance_departure_constant_10_30_am_to_11_am -util_maintenance_departure_constant_after_11_am,MAINTENANCE - Departure Constant: After 11:00 AM,@((df.tour_type == 'othmaint') & (df.start>16)),coef_maintenance_departure_constant_after_11_am -util_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes after 11:30 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.start>17)), np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear -util_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,MAINTENANCE - Departure Constant: Shift for every 30 minutes after 11:30 am - Squared,"@np.where(((df.tour_type == 'othmaint') & (df.start>17)), ((np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)) ** 2), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared -util_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear,MAINTENANCE - Arrival Constant: Shift for every 30 minutes before 10:00 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.end<15)), (np.where((df.end<15), np.minimum(15-df.end,9), 0) + np.where((df.end>28), np.minimum(df.end-28,16), 0)), 0)",coef_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear -util_maintenance_arrival_constant_before_10_30_am,MAINTENANCE - Arrival Constant: Before 10:30 AM,@((df.tour_type == 'othmaint') & (df.end<16)),coef_maintenance_arrival_constant_before_10_30_am -util_maintenance_arrival_constant_10_30_am_to_11_am,MAINTENANCE - Arrival Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'othmaint') & (df.end==16)),coef_maintenance_arrival_constant_10_30_am_to_11_am -util_maintenance_arrival_constant_11_am_to_11_30_am,MAINTENANCE - Arrival Constant: 11:00 AM - 11:30 AM,@((df.tour_type == 'othmaint') & (df.end==17)),coef_maintenance_arrival_constant_11_am_to_11_30_am -util_maintenance_arrival_constant_11_30_am_to_1_30_pm,MAINTENANCE - Arrival Constant: 11:30 AM - 01:30 PM,@((df.tour_type == 'othmaint') & (df.end>=18) & (df.end<=21)),coef_maintenance_arrival_constant_11_30_am_to_1_30_pm -util_maintenance_arrival_constant_1_30_pm_to_2_30_pm,MAINTENANCE - Arrival Constant: 01:30 PM - 02:30 PM,@((df.tour_type == 'othmaint') & (df.end>=22) & (df.end<=23)),coef_maintenance_arrival_constant_1_30_pm_to_2_30_pm -util_maintenance_arrival_constant_2_30_pm_to_4_pm,MAINTENANCE - Arrival Constant: 02:30 PM - 04:00 PM,@((df.tour_type == 'othmaint') & (df.end>=24) & (df.end<=26)),coef_maintenance_arrival_constant_2_30_pm_to_4_pm -util_maintenance_arrival_constant_4_pm_to_4_30_pm,MAINTENANCE - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'othmaint') & (df.end==27)),coef_maintenance_arrival_constant_4_pm_to_4_30_pm -util_maintenance_arrival_constant_after_4_30_pm,MAINTENANCE - Arrival Constant: After 04:30 PM,@((df.tour_type == 'othmaint') & (df.end>27)),coef_maintenance_arrival_constant_after_4_30_pm -util_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,MAINTENANCE - Arrival Constant: Shift for every 30 minutes after 5:00 pm - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.end>28)), (np.where((df.end<15), np.minimum(15-df.end,9), 0) + np.where((df.end>28), np.minimum(df.end-28,16), 0)), 0)",coef_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear -util_maintenance_duration_constant_0_hr,MAINTENANCE - Duration Constant: 0 hr,@((df.tour_type == 'othmaint') & (df.duration==0)),coef_maintenance_duration_constant_0_hr -util_maintenance_duration_constant_30_minutes,MAINTENANCE - Duration Constant: 0.5 hr,@((df.tour_type == 'othmaint') & (df.duration==1)),coef_maintenance_duration_constant_30_minutes -util_maintenance_duration_constant_longer_than_30_minutes,MAINTENANCE - Duration Constant: Longer than 0.5 hr,@((df.tour_type == 'othmaint') & (df.duration>1)),coef_maintenance_duration_constant_longer_than_30_minutes -util_maintenance_duration_constant_duration_greater_than_1_hr_linear,MAINTENANCE - Duration Constant: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_duration_constant_duration_greater_than_1_hr_linear -util_maintenance_duration_constant_duration_greater_than_1_hr_square_root,MAINTENANCE - Duration Constant: Duration > 1 hr - Square Root,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), ((np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0))** 0.5), 0)",coef_maintenance_duration_constant_duration_greater_than_1_hr_square_root -util_maintenance_calibration_constant_duration_1,MAINTENANCE - Calibration Constant - Duration = 1,@((df.tour_type == 'othmaint') & (df.duration==0)),coef_maintenance_calibration_constant_duration_1 -util_maintenance_calibration_constant_duration_2,MAINTENANCE - Calibration Constant - Duration = 2,@((df.tour_type == 'othmaint') & (df.duration==1)),coef_maintenance_calibration_constant_duration_2 -util_maintenance_calibration_constant_duration_3,MAINTENANCE - Calibration Constant - Duration = 3,@((df.tour_type == 'othmaint') & (df.duration==2)),coef_maintenance_calibration_constant_duration_3 -util_maintenance_calibration_constant_duration_4,MAINTENANCE - Calibration Constant - Duration = 4,@((df.tour_type == 'othmaint') & (df.duration==3)),coef_maintenance_calibration_constant_duration_4 -util_maintenance_calibration_constant_duration_5,MAINTENANCE - Calibration Constant - Duration = 5,@((df.tour_type == 'othmaint') & (df.duration==4)),coef_maintenance_calibration_constant_duration_5 -#EAT-OUT,#EAT-OUT,,#EAT-OUT -util_eatout_distance_to_destination_duration_less_than_1_hr,EAT-OUT - Distance to destination - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)) * (df.origin_to_destination_distance), 0)",coef_eatout_distance_to_destination_duration_less_than_1_hr -util_eatout_distance_to_destination_duration_greater_than_1_hr,EAT-OUT - Distance to destination - Duration > 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)) *(df.origin_to_destination_distance), 0)",coef_eatout_distance_to_destination_duration_greater_than_1_hr -util_eatout_low_income_duration_less_than_1_hr,EAT-OUT - Low income (<25000) - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.is_income_less25K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_low_income_duration_less_than_1_hr -util_eatout_medium_income_duration_less_than_1_hr,EAT-OUT - Medium (25k to 60k) - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_medium_income_duration_less_than_1_hr -util_eatout_zeroauto_HH_duration_greater_than_1_hr,EAT-OUT - Zero auto HH - Duration > 1 hrs,"@np.where(((df.tour_type == 'eatout') & (df.auto_ownership == 0) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_zeroauto_HH_duration_greater_than_1_hr -util_eatout_university_student_departure_after_7_pm_linear,EAT-OUT - University student - Departure after 7:00 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.start>32) & (df.ptype == 3)), (np.where((df.start<=32), np.minimum(32-df.start,29), 0) + np.where((df.start>32), np.minimum(df.start-32,8), 0)), 0)",coef_eatout_university_student_departure_after_7_pm_linear -util_eatout_female_duration_less_than_1_hr,EAT-OUT - Female - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_less_than_1_hr -util_eatout_female_duration_greater_than_1_hr,EAT-OUT - Female - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_greater_than_1_hr -util_eatout_time_pressure_departure_before_6_30_pm,EAT-OUT - Time Pressure - Departure before 6:30 pm,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<32)), (np.minimum(32-df.start,29)) * (np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_departure_before_6_30_pm -util_eatout_time_pressure_duration_less_than_1_hr,EAT-OUT - Time Pressure - Duration < 1 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.duration<2)), np.minimum(2-df.duration,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_duration_less_than_1_hr -util_eatout_departure_constant_7_30_am_to_9_am,EAT-OUT - Departure Constant: 07:30 AM - 09:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>=10) & (df.start<=12)),coef_eatout_departure_constant_7_30_am_to_9_am -util_eatout_departure_constant_10_30_am_to_11_am,EAT-OUT - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==16)),coef_eatout_departure_constant_10_30_am_to_11_am -util_eatout_departure_constant_11_am_to_11_30_am,EAT-OUT - Departure Constant: 11:00 AM - 11:30 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==17)),coef_eatout_departure_constant_11_am_to_11_30_am -util_eatout_departure_constant_11_30_am_to_12_pm,EAT-OUT - Departure Constant: 11:30 AM - 12:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==18)),coef_eatout_departure_constant_11_30_am_to_12_pm -util_eatout_departure_constant_12_pm_to_12_30_pm,EAT-OUT - Departure Constant: 12:00 PM - 12:30 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.start==19)),coef_eatout_departure_constant_12_pm_to_12_30_pm -util_eatout_departure_constant_12_30_pm_to_1_pm,EAT-OUT - Departure Constant: 12:30 PM - 01:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==20)),coef_eatout_departure_constant_12_30_pm_to_1_pm -util_eatout_departure_constant_1_pm_to_1_30_pm,EAT-OUT - Departure Constant: 01:00 PM - 01:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==21)),coef_eatout_departure_constant_1_pm_to_1_30_pm -util_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear,EAT-OUT - Departure Constant: Shift for every 30 minutes before 05:30 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<31)), (np.where((df.start<30), np.minimum(30-df.start,27), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear -util_eatout_departure_constant_before_6_pm,EAT-OUT - Departure Constant: Before 06:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<31)),coef_eatout_departure_constant_before_6_pm -util_eatout_departure_constant_6_pm_to_6_30_pm,EAT-OUT - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==31)),coef_eatout_departure_constant_6_pm_to_6_30_pm -util_eatout_departure_constant_6_30_pm_to_7_pm,EAT-OUT - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==32)),coef_eatout_departure_constant_6_30_pm_to_7_pm -util_eatout_departure_constant_7_pm_to_7_30_pm,EAT-OUT - Departure Constant: 07:00 PM - 07:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==33)),coef_eatout_departure_constant_7_pm_to_7_30_pm -util_eatout_departure_constant_after_7_30_pm,EAT-OUT - Departure Constant: After 07:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>33)),coef_eatout_departure_constant_after_7_30_pm -util_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,EAT-OUT - Departure Constant: Shift for every 30 minutes after 08:00 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>34)), (np.where((df.start<30), np.minimum(30-df.start,27), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear -util_eatout_arrival_constant_9_30_am_to_11_am,EAT-OUT - Arrival Constant: 9:30 AM to 11:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end>=14) & (df.end<=16)),coef_eatout_arrival_constant_9_30_am_to_11_am -util_eatout_arrival_constant_12_30_pm_to_1_pm,EAT-OUT - Arrival Constant: 12:30 PM to 01:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==20)),coef_eatout_arrival_constant_12_30_pm_to_1_pm -util_eatout_arrival_constant_1_pm_to_1_30_pm,EAT-OUT - Arrival Constant: 01:00 PM to 01:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==21)),coef_eatout_arrival_constant_1_pm_to_1_30_pm -util_eatout_arrival_constant_1_30_pm_to_2_pm,EAT-OUT - Arrival Constant: 01:30 PM to 02:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==22)),coef_eatout_arrival_constant_1_30_pm_to_2_pm -util_eatout_arrival_constant_2_pm_to_2_30_pm,EAT-OUT - Arrival Constant: 02:00 PM to 02:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==23)),coef_eatout_arrival_constant_2_pm_to_2_30_pm -util_eatout_arrival_constant_2_30_pm_to_3_pm,EAT-OUT - Arrival Constant: 02:30 PM to 03:00 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.end==24)),coef_eatout_arrival_constant_2_30_pm_to_3_pm -util_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,EAT-OUT - Arrival Constant: Shift for every 30 minutes before 06:00 pm - Linear,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end<31)),coef_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear -util_eatout_arrival_constant_before_6_30_pm,EAT-OUT - Arrival Constant: Before 6:30 PM,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end<32)), (np.where((df.end<31), np.minimum(31-df.end,24), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_eatout_arrival_constant_before_6_30_pm -util_eatout_arrival_constant_6_30_pm_to_7_pm,EAT-OUT - Arrival Constant: 6:30 PM to 7:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==32)),coef_eatout_arrival_constant_6_30_pm_to_7_pm -util_eatout_arrival_constant_7_pm_to_7_30_pm,EAT-OUT - Arrival Constant: 7:00 PM to 7:30 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.end==33)),coef_eatout_arrival_constant_7_pm_to_7_30_pm -util_eatout_arrival_constant_7_30_pm_to_8_pm,EAT-OUT - Arrival Constant: 7:30 PM to 8:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==34)),coef_eatout_arrival_constant_7_30_pm_to_8_pm -util_eatout_arrival_constant_8_pm_to_8_30_pm,EAT-OUT - Arrival Constant: 8:00 PM to 8:30 PM,@((df.tour_category != 'joint') &(df.tour_type == 'eatout') & (df.end==35)),coef_eatout_arrival_constant_8_pm_to_8_30_pm -util_eatout_arrival_constant_8_30_pm_to_9_pm,EAT-OUT - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==36)),coef_eatout_arrival_constant_8_30_pm_to_9_pm -util_eatout_arrival_constant_after_9_pm,EAT-OUT - Arrival Constant: After 9:00 PM,@((df.tour_category != 'joint')& (df.tour_type == 'eatout') & (df.end>36)),coef_eatout_arrival_constant_after_9_pm -util_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,EAT-OUT - Arrival Constant: Shift for every 30 minutes after 09:30 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end>37)), (np.where((df.end<31), np.minimum(31-df.end,24), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear -util_eatout_duration_constant_0_hour,EAT-OUT - Duration Constant: 0 hour,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.duration==0)),coef_eatout_duration_constant_0_hour -util_eatout_duration_constant_30_minutes,EAT-OUT - Duration Constant: 0.5 hour,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==1)),coef_eatout_duration_constant_30_minutes -util_eatout_duration_constant_1_hour,EAT-OUT - Duration Constant: 1 hour,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==2)),coef_eatout_duration_constant_1_hour -util_eatout_duration_constant_1_hour_30_minutes,EAT-OUT - Duration Constant: 1.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==3)),coef_eatout_duration_constant_1_hour_30_minutes -util_eatout_duration_constant_2_hours,EAT-OUT - Duration Constant: 2 hours,@((df.tour_category != 'joint')& (df.tour_type == 'eatout') & (df.duration==4)),coef_eatout_duration_constant_2_hours -util_eatout_duration_constant_2_hour_30_minutes_or_more,EAT-OUT - Duration Constant: 2.5 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>4)),coef_eatout_duration_constant_2_hour_30_minutes_or_more -util_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,EAT-OUT - Duration Constant: Shift for every 30 minutes more than 3 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>5)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,11), 0)), 0)",coef_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear -util_eatout_calibration_constant_duration_1,EAT-OUT - Calibration Constant - Duration = 1,@((df.tour_type == 'eatout') & (df.duration==0)),coef_eatout_calibration_constant_duration_1 -util_eatout_calibration_constant_duration_2,EAT-OUT - Calibration Constant - Duration = 2,@((df.tour_type == 'eatout') & (df.duration==1)),coef_eatout_calibration_constant_duration_2 -util_eatout_calibration_constant_duration_3,EAT-OUT - Calibration Constant - Duration = 3,@((df.tour_type== 'eatout') & (df.duration==2)),coef_eatout_calibration_constant_duration_3 -util_eatout_calibration_constant_duration_4,EAT-OUT - Calibration Constant - Duration = 4,@((df.tour_type == 'eatout') & (df.duration==3)),coef_eatout_calibration_constant_duration_4 -util_eatout_calibration_constant_departure_1,EAT-OUT - Calibration Constant - Departure = 1,@((df.tour_type == 'eatout') & (df.start == 1)),coef_eatout_calibration_constant_departure_1 -util_eatout_calibration_constant_departure_2,EAT-OUT - Calibration Constant - Departure = 2,@((df.tour_type == 'eatout') & (df.start == 2)),coef_eatout_calibration_constant_departure_2 -util_eatout_calibration_constant_departure_3,EAT-OUT - Calibration Constant - Departure = 3,@((df.tour_type== 'eatout') & (df.start == 3)),coef_eatout_calibration_constant_departure_3 -util_eatout_calibration_constant_departure_17,EAT-OUT - Calibration Constant - Departure = 17,@((df.tour_type == 'eatout') & (df.start ==17)),coef_eatout_calibration_constant_departure_17 -util_eatout_calibration_constant_departure_18,EAT-OUT - Calibration Constant - Departure = 18,@((df.tour_type== 'eatout') & (df.start ==18)),coef_eatout_calibration_constant_departure_18 -util_eatout_calibration_constant_departure_19,EAT-OUT - Calibration Constant - Departure = 19,@((df.tour_type == 'eatout') & (df.start ==19)),coef_eatout_calibration_constant_departure_19 -util_eatout_calibration_constant_departure_20,EAT-OUT - Calibration Constant - Departure = 20,@((df.tour_type == 'eatout') & (df.start ==20)),coef_eatout_calibration_constant_departure_20 -util_eatout_calibration_constant_departure_21,EAT-OUT - Calibration Constant - Departure = 21,@((df.tour_type == 'eatout') & (df.start ==21)),coef_eatout_calibration_constant_departure_21 -#SOCIAL,#SOCIAL,,#SOCIAL -util_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Person< 18 years old: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear -util_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Person< 18 years old: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear -util_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Non-working senior/ retiree: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3) & (df.ptype == 5)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear -util_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Retiree/ Non-working senior only HH: Duration < 1.5 hrs - Linear,"@np.where(((df.retired_adults_only_hh) & (df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear -util_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Zero auto households: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership == 0) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear -util_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Zero auto households: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership == 0) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear -util_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Number of auto more than number of adults: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership > 0) &(df.auto_ownership > df.num_adults) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear -util_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Number of auto more than number of adults: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership > 0) & (df.auto_ownership > df.num_adults) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear -"# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, -util_social_auto_distance_duration_less_than_1_hr_linear,SOCIAL - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_social_auto_distance_duration_less_than_1_hr_linear -util_social_auto_distance_duration_greater_than_1_hr_linear,SOCIAL - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'social') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_social_auto_distance_duration_greater_than_1_hr_linear -util_social_time_pressure_duration_less_than_1_hr,SOCIAL - Time Pressure - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3)), np.minimum(3-df.duration,47), 0)* (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_less_than_1_hr -util_social_time_pressure_duration_greater_than_1_hr,SOCIAL - Time Pressure - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>3)), np.minimum(df.duration-3,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_greater_than_1_hr -util_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,SOCIAL - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.num_add_soc_discr_tours), 0)",coef_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr -util_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@((df.tour_type == 'social') & (df.start<12)) * ((np.minimum(12-df.start,48)*(df.start<12)) + (np.minimum(df.start-48,48)*(df.start>48)))",coef_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear -util_social_departure_constant_before_9_am,SOCIAL - Departure Constant: Before 09:00 AM,@(df.tour_type == 'social') & (df.start<13),coef_social_departure_constant_before_9_am -util_social_departure_constant_9_am_to_9_30_am,SOCIAL - Departure Constant: 09:00 AM to 09:30 AM,@(df.tour_type == 'social') & (df.start==13),coef_social_departure_constant_9_am_to_9_30_am -util_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 05:00 pm - Linear,"@np.where((df.tour_type == 'social') & (df.start<29), (np.where((df.start<29), np.minimum(29-df.start,8), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear -util_social_departure_constant_before_5_30_pm,SOCIAL - Departure Constant: Before 05:30 PM,@((df.tour_type == 'social') & (df.start<30)),coef_social_departure_constant_before_5_30_pm -util_social_departure_constant_5_30_pm_to_6_pm,SOCIAL - Departure Constant: 05:30 PM - 06:00 PM,@((df.tour_type == 'social') & (df.start==30)),coef_social_departure_constant_5_30_pm_to_6_pm -util_social_departure_constant_6_pm_to_6_30_pm,SOCIAL - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_type == 'social') & (df.start==31)),coef_social_departure_constant_6_pm_to_6_30_pm -util_social_departure_constant_6_30_pm_to_7_pm,SOCIAL - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_type == 'social') & (df.start==32)),coef_social_departure_constant_6_30_pm_to_7_pm -util_social_departure_constant_7_pm_to_7_30_pm,SOCIAL - Departure Constant: 07:00 PM - 07:30 PM,@((df.tour_type == 'social') & (df.start==33)),coef_social_departure_constant_7_pm_to_7_30_pm -util_social_departure_constant_after_7_30_pm,SOCIAL - Departure Constant: After 07:30 PM,@((df.tour_type == 'social') & (df.start>33)),coef_social_departure_constant_after_7_30_pm -util_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,SOCIAL - Departure Constant: Shift for every 30 minutes after 08:00 pm - Linear,"@np.where((df.tour_type == 'social') & (df.start>34), (np.where((df.start<29), np.minimum(29-df.start,8), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear -util_social_arrival_constant_3_pm_to_3_30_pm,SOCIAL - Arrival Constant: 03:00 PM to 03:30 PM,@((df.tour_type == 'social') & (df.end==25)),coef_social_arrival_constant_3_pm_to_3_30_pm -util_social_arrival_constant_3_30_pm_to_4_pm,SOCIAL - Arrival Constant: 03:30 PM to 04:00 PM,@((df.tour_type == 'social') & (df.end==26)),coef_social_arrival_constant_3_30_pm_to_4_pm -util_social_arrival_constant_4_pm_to_4_30_pm,SOCIAL - Arrival Constant: 04:00 PM to 04:30 PM,@((df.tour_type == 'social') & (df.end==27)),coef_social_arrival_constant_4_pm_to_4_30_pm -util_social_arrival_constant_5_pm_to_6_pm,SOCIAL - Arrival Constant: 05:00 PM to 06:00 PM,@((df.tour_type == 'social') & (df.end>=29) & (df.end<=30)),coef_social_arrival_constant_5_pm_to_6_pm -util_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear,SOCIAL - Arrival Constant: Shift for every 30 minutes before 08:00 pm - Linear,"@np.where(((df.tour_type == 'social') & (df.end<35)), (np.where((df.end<35), np.minimum(35-df.end,48), 0) + np.where((df.end>40), np.minimum(df.end-40,48), 0)), 0)",coef_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear -util_social_arrival_constant_before_8_30_pm,SOCIAL - Arrival Constant: Before 8:30 PM,@((df.tour_type == 'social') & (df.end<36)),coef_social_arrival_constant_before_8_30_pm -util_social_arrival_constant_8_30_pm_to_9_pm,SOCIAL - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_type == 'social') & (df.end==36)),coef_social_arrival_constant_8_30_pm_to_9_pm -util_social_arrival_constant_9_pm_to_9_30_pm,SOCIAL - Arrival Constant: 9:00 PM to 9:30 PM,@((df.tour_type == 'social') & (df.end==37)),coef_social_arrival_constant_9_pm_to_9_30_pm -util_social_arrival_constant_9_30_pm_to_10_pm,SOCIAL - Arrival Constant: 9:30 PM to10:00 PM,@((df.tour_type == 'social') & (df.end==38)),coef_social_arrival_constant_9_30_pm_to_10_pm -util_social_arrival_constant_10_pm_to_10_30_pm,SOCIAL - Arrival Constant: 10:00 PM to 10:30 PM,@((df.tour_type == 'social') & (df.end==39)),coef_social_arrival_constant_10_pm_to_10_30_pm -util_social_arrival_constant_after_10_30_pm,SOCIAL - Arrival Constant: After 10:30 PM,@((df.tour_type == 'social') & (df.end>39)),coef_social_arrival_constant_after_10_30_pm -util_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear,SOCIAL - Arrival Constant: Shift for every 30 minutes after 11:00 pm - Linear,"@np.where(((df.tour_type == 'social') & (df.end>40)), (np.where((df.end<35), np.minimum(35-df.end,48), 0) +np.where((df.end>40),np.minimum(df.end-40,48),0)), 0)",coef_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear -util_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear,SOCIAL - Duration Constant: Shift for every 30 minutes less than 2.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<5)), (np.where((df.duration<5), np.minimum(5-df.duration,47), 0) + np.where((df.duration>7), np.minimum(df.duration-7,47), 0)), 0)",coef_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear -util_social_duration_constant_less_than_3_hours,SOCIAL - Duration Constant: Less than 3 hrs,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<6)),coef_social_duration_constant_less_than_3_hours -util_social_duration_constant_3_hours,SOCIAL - Duration Constant: 3 hours,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration==6)),coef_social_duration_constant_3_hours -util_social_duration_constant_3_hrs_30_minutes,SOCIAL - Duration Constant: 3.5 hours,@((df.tour_category != 'joint')& (df.tour_type == 'social') & (df.duration==7)),coef_social_duration_constant_3_hrs_30_minutes -util_social_duration_constant_4_hours_or_more,SOCIAL - Duration Constant: 4 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>7)),coef_social_duration_constant_4_hours_or_more -util_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear,SOCIAL - Duration Constant: Shift for every 30 minutes more than 4.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>8)), (np.where((df.duration<5), np.minimum(5-df.duration,47), 0) + np.where((df.duration>8), np.minimum(df.duration-8,47), 0)), 0)",coef_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear -util_social_calibration_constant_duration_1,SOCIAL - Calibration Constant - Duration = 1,@((df.tour_type == 'social') & (df.duration ==0)),coef_social_calibration_constant_duration_1 -util_social_calibration_constant_duration_2,SOCIAL - Calibration Constant - Duration = 2,@((df.tour_type == 'social') & (df.duration == 1)),coef_social_calibration_constant_duration_2 -util_social_calibration_constant_duration_3,SOCIAL - Calibration Constant - Duration = 3,@((df.tour_type == 'social') & (df.duration ==2)),coef_social_calibration_constant_duration_3 -util_social_calibration_constant_duration_4,SOCIAL - Calibration Constant - Duration = 4,@((df.tour_type == 'social') & (df.duration ==3)),coef_social_calibration_constant_duration_4 -util_social_calibration_constant_duration_5,SOCIAL - Calibration Constant - Duration = 5,@((df.tour_type == 'social') & (df.duration ==4)),coef_social_calibration_constant_duration_5 -util_social_calibration_constant_duration_6,SOCIAL - Calibration Constant - Duration = 6,@((df.tour_type == 'social') & (df.duration ==5)),coef_social_calibration_constant_duration_6 -util_social_calibration_constant_duration_7,SOCIAL - Calibration Constant - Duration = 7,@((df.tour_type == 'social') & (df.duration ==6)),coef_social_calibration_constant_duration_7 -util_social_calibration_constant_duration_8,SOCIAL - Calibration Constant - Duration = 8,@((df.tour_type == 'social') & (df.duration ==7)),coef_social_calibration_constant_duration_8 -util_social_calibration_constant_duration_9,SOCIAL - Calibration Constant - Duration = 9,@((df.tour_type == 'social') & (df.duration ==8)),coef_social_calibration_constant_duration_9 -#DISCRETIONARY,#DISCRETIONARY,,#DISCRETIONARY -util_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Person< 18 years old: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear -util_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Person< 18 years old: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear -util_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Non-working senior/ retiree: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3) & (df.ptype == 5)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear -util_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear,DISCRETIONARY - Retiree/ Non-working senior only HH: Duration < 1.5 hrs - Linear,"@np.where(((df.retired_adults_only_hh) & (df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear -util_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Zero auto households: Duration < 1.5 hrs - Linear,"@np.where(((df.auto_ownership == 0) & (df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear -util_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Zero auto households: Duration > 1.5 hrs - Linear,"@np.where(((df.auto_ownership == 0) & (df.tour_type == 'othdiscr') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear -util_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Number of auto more that number of adults: Duration < 1.5 hrs - Linear,"@np.where(((df.auto_ownership > 0) & (df.tour_type == 'othdiscr') & (df.auto_ownership > df.num_adults) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)),0)",coef_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear -util_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Number of auto more that number of adults: Duration > 1.5 hrs - Linear,"@np.where(((df.auto_ownership > 0) &(df.tour_type == 'othdiscr')&(df.auto_ownership > df.num_adults) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear -"# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, -util_discretionary_auto_distance_duration_less_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_less_than_1_hr_linear -util_discretionary_auto_distance_duration_greater_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_greater_than_1_hr_linear -util_discretionary_time_pressure_duration_less_than_1_hr,DISCRETIONARY - Time Pressure - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3)), np.minimum(3-df.duration,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_discretionary_time_pressure_duration_less_than_1_hr -util_discretionary_time_pressure_duration_greater_than_1_hr,DISCRETIONARY - Time Pressure - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>3)), np.minimum(df.duration-3,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_discretionary_time_pressure_duration_greater_than_1_hr -util_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,DISCRETIONARY - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0))*(df.num_add_soc_discr_tours),0)",coef_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr -util_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 07:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start<9)), (np.where((df.start<9), np.minimum(9-df.start,48), 0) + np.where((df.start>48), np.minimum(df.start-48,48),0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear -util_discretionary_departure_constant_before_7_30_am,DISCRETIONARY - Departure Constant: Before 7:30 AM ,@((df.tour_type == 'othdiscr') & (df.start<10)),coef_discretionary_departure_constant_before_7_30_am -util_discretionary_departure_constant_7_30_am_to_8_am,DISCRETIONARY - Departure Constant: 7:30 AM to 8:00 AM,@((df.tour_type == 'othdiscr') & (df.start==10)),coef_discretionary_departure_constant_7_30_am_to_8_am -util_discretionary_departure_constant_8_am_to_8_30_am,DISCRETIONARY - Departure Constant: 8:00 AM to 8:30 AM,@((df.tour_type == 'othdiscr') & (df.start==11)),coef_discretionary_departure_constant_8_am_to_8_30_am -util_discretionary_departure_constant_8_30_am_to_9_am,DISCRETIONARY - Departure Constant: 8:30 AM to 9:00 AM,@((df.tour_type == 'othdiscr') & (df.start==12)),coef_discretionary_departure_constant_8_30_am_to_9_am -util_discretionary_departure_constant_9_am_to_9_30_am,DISCRETIONARY - Departure Constant: 9:00 AM to 9:30 AM,@((df.tour_type == 'othdiscr') & (df.start==13)),coef_discretionary_departure_constant_9_am_to_9_30_am -util_discretionary_departure_constant_9_30_am_to_10_am,DISCRETIONARY - Departure Constant: 9:30 AM to 10:00 AM,@((df.tour_type == 'othdiscr') & (df.start==14)),coef_discretionary_departure_constant_9_30_am_to_10_am -util_discretionary_departure_constant_10_am_to_10_30_am,DISCRETIONARY - Departure Constant: 10:00 AM to 10:30 AM,@((df.tour_type == 'othdiscr') & (df.start==15)),coef_discretionary_departure_constant_10_am_to_10_30_am -util_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 04:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start<28)), (np.where((df.start<28), np.minimum(28-df.start,8),0) + np.where((df.start>33), np.minimum(df.start-33,6), 0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear -util_discretionary_departure_constant_before_5_pm,DISCRETIONARY - Departure Constant: Before 05:00 PM,@((df.tour_type == 'othdiscr') & (df.start<29)),coef_discretionary_departure_constant_before_5_pm -util_discretionary_departure_constant_5_pm_to_5_30_pm,DISCRETIONARY - Departure Constant: 05:00 PM - 05:30 PM,@((df.tour_type == 'othdiscr') & (df.start==29)),coef_discretionary_departure_constant_5_pm_to_5_30_pm -util_discretionary_departure_constant_5_30_pm_to_6_pm,DISCRETIONARY - Departure Constant: 05:30 PM - 06:00 PM,@((df.tour_type == 'othdiscr') & (df.start==30)),coef_discretionary_departure_constant_5_30_pm_to_6_pm -util_discretionary_departure_constant_6_pm_to_6_30_pm,DISCRETIONARY - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_type == 'othdiscr') & (df.start==31)),coef_discretionary_departure_constant_6_pm_to_6_30_pm -util_discretionary_departure_constant_6_30_pm_to_7_pm,DISCRETIONARY - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_type == 'othdiscr') & (df.start==32)),coef_discretionary_departure_constant_6_30_pm_to_7_pm -util_discretionary_departure_constant_after_7_pm,DISCRETIONARY - Departure Constant: After 07:00 PM,@((df.tour_type == 'othdiscr') & (df.start>32)),coef_discretionary_departure_constant_after_7_pm -util_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes after 07:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start>33)), (np.where((df.start<28), np.minimum(28-df.start,8), 0) + np.where((df.start>33), np.minimum(df.start-33,6), 0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear -util_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,DISCRETIONARY - Arrival Constant: Shift for every 30 minutes before 06:00 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.end<31)), (np.where((df.end<31), np.minimum(31-df.end,48), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear -util_discretionary_arrival_constant_before_6_30_pm,DISCRETIONARY - Arrival Constant: Before 6:30 PM,@((df.tour_type == 'othdiscr') & (df.end<32)),coef_discretionary_arrival_constant_before_6_30_pm -util_discretionary_arrival_constant_6_30_pm_to_7_pm,DISCRETIONARY - Arrival Constant: 6:30 PM to 7:00 PM,@((df.tour_type == 'othdiscr') & (df.end==32)),coef_discretionary_arrival_constant_6_30_pm_to_7_pm -util_discretionary_arrival_constant_7_pm_to_7_30_pm,DISCRETIONARY - Arrival Constant: 7:00 PM to 7:30 PM,@((df.tour_type == 'othdiscr') & (df.end==33)),coef_discretionary_arrival_constant_7_pm_to_7_30_pm -util_discretionary_arrival_constant_7_30_pm_to_8_pm,DISCRETIONARY - Arrival Constant: 7:30 PM to 8:00 PM,@((df.tour_type == 'othdiscr') & (df.end==34)),coef_discretionary_arrival_constant_7_30_pm_to_8_pm -util_discretionary_arrival_constant_8_pm_to_8_30_pm,DISCRETIONARY - Arrival Constant: 8:00 PM to 8:30 PM,@((df.tour_type == 'othdiscr') & (df.end==35)),coef_discretionary_arrival_constant_8_pm_to_8_30_pm -util_discretionary_arrival_constant_8_30_pm_to_9_pm,DISCRETIONARY - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_type == 'othdiscr') & (df.end==36)),coef_discretionary_arrival_constant_8_30_pm_to_9_pm -util_discretionary_arrival_constant_after_9_pm,DISCRETIONARY - Arrival Constant: After 9:00 PM,@((df.tour_type == 'othdiscr') & (df.end>36)),coef_discretionary_arrival_constant_after_9_pm -util_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,DISCRETIONARY - Arrival Constant: Shift for every 30 minutes after 09:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.end>37)), (np.where((df.end<31), np.minimum(31-df.end,48), 0) + np.where((df.end>37), np.minimum(df.end-37,48),0)), 0)",coef_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear -util_discretionary_duration_constant_0_hour,DISCRETIONARY - Duration Constant: 0 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==0)),coef_discretionary_duration_constant_0_hour -util_discretionary_duration_constant_30_minutes,DISCRETIONARY -Duration Constant: 0.5 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==1)),coef_discretionary_duration_constant_30_minutes -util_discretionary_duration_constant_1_hour,DISCRETIONARY -Duration Constant: 1 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==2)),coef_discretionary_duration_constant_1_hour -util_discretionary_duration_constant_1_hr_30_minutes,DISCRETIONARY -Duration Constant: 1.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==3)),coef_discretionary_duration_constant_1_hr_30_minutes -util_discretionary_duration_constant_2_hours,DISCRETIONARY -Duration Constant: 2 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==4)),coef_discretionary_duration_constant_2_hours -util_discretionary_duration_constant_2_hr_30_minutes,DISCRETIONARY -Duration Constant: 2.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==5)),coef_discretionary_duration_constant_2_hr_30_minutes -util_discretionary_duration_constant_3_hours_or_more,DISCRETIONARY -Duration Constant: 3 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>5)),coef_discretionary_duration_constant_3_hours_or_more -util_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,DISCRETIONARY -Duration Constant: Shift for every 30 minutes more than 3 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>6)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>6), np.minimum(df.duration-6,47), 0)), 0)",coef_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear -util_discretionary_calibration_constant_duration_4,DISCRETIONARY -Calibration Constant - Duration = 4,@((df.tour_type == 'othdiscr') & (df.duration==3)),coef_discretionary_calibration_constant_duration_4 -util_discretionary_calibration_constant_duration_5,DISCRETIONARY -Calibration Constant - Duration = 5,@((df.tour_type == 'othdiscr') & (df.duration==4)),coef_discretionary_calibration_constant_duration_5 -util_discretionary_calibration_constant_departure_29,DISCRETIONARY -Calibration Constant - Departure = 29,@((df.tour_type == 'othdiscr') & (df.start==29)),coef_discretionary_calibration_constant_departure_29 -util_discretionary_calibration_constant_departure_30,DISCRETIONARY -Calibration Constant - Departure = 30,@((df.tour_type == 'othdiscr') & (df.start==30)),coef_discretionary_calibration_constant_departure_30 -util_discretionary_calibration_constant_departure_31,DISCRETIONARY -Calibration Constant - Departure = 31,@((df.tour_type == 'othdiscr') & (df.start==31)),coef_discretionary_calibration_constant_departure_31 -util_discretionary_calibration_constant_departure_32,DISCRETIONARY -Calibration Constant - Departure = 32,@((df.tour_type == 'othdiscr') & (df.start==32)),coef_discretionary_calibration_constant_departure_32 diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_coeffs.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_coeffs.csv deleted file mode 100755 index 9c3b2e8f0..000000000 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_coeffs.csv +++ /dev/null @@ -1,337 +0,0 @@ -coefficient_name,value,constrain -coef_escort_mode_choice_logsum,1.173173034,F -coef_escort_distance_to_destination_duration_less_than_30_minutes,-0.335017673,F -coef_escort_distance_to_destination_duration_greater_than_30_minutes,0.005298165,F -coef_escort_fulltime_worker_departure_after_8_am_linear,-0.037980109,F -coef_escort_fulltime_worker_departure_after_3_am_linear,0.163254125,F -coef_escort_fulltime_worker_duration_less_than_30_minutes,-0.275077482,F -coef_escort_fulltime_worker_duration_greater_than_30_minutes,0.051530545,F -coef_escort_university_student_duration_less_than_30_minutes,-0.426802718,F -coef_escort_non_driving_age_student_duration_greater_than_30_minutes,0.240582361,F -coef_escort_driving_age_student_duration_less_than_30_minutes,-0.554146191,F -coef_escort_driving_age_student_duration_greater_than_30_minutes,0.299387708,F -coef_escort_pre_school_kid_duration_greater_than_30_minutes,0.195482563,F -coef_escort_med_high_income_duration_greater_than_30_minutes,-0.029281467,F -coef_escort_households_with_no_kids_departure_before_7_30_am,0.589083327,F -coef_escort_households_with_no_kids_departure_after_8_00_am,0.086690827,F -coef_escort_households_with_no_kids_departure_before_2_30_pm,0.477582648,F -coef_escort_households_with_no_kids_departure_after_3_00_pm,-0.204065502,F -coef_escort_households_with_no_kids_arrival_before_8_am,-0.360039254,F -coef_escort_households_with_no_kids_arrival_after_8_30_am,0.091614107,F -coef_escort_households_with_no_kids_arrival_before_3_pm,0.432854268,F -coef_escort_households_with_no_kids_arrival_after_3_30_pm,0.131037275,F -coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am,0.109700265,F -coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm,-0.224568648,F -coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am,-0.357416434,F -coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm,0.629285298,F -coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am,0.039005148,F -coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am,-0.06556611,F -coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm,0.117680977,F -coef_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes,-0.057322708,F -coef_escort_number_of_individual_tours_duration_greater_than_30_minutes,-0.062899692,F -coef_escort_number_of_joint_tours_duration_greater_than_30_minutes,-0.048533895,F -coef_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear,-1.469240002,F -coef_escort_departure_constant_before_7_am,-2.070292862,F -coef_escort_departure_constant_7_am_to_7_30_am,-0.642734296,F -coef_escort_departure_constant_7_30_am_to_8_am,0,T -coef_escort_departure_constant_8_am_to_8_30_am,-0.214617667,F -coef_escort_departure_constant_8_30_am_to_9_am,-0.147266606,F -coef_escort_departure_constant_after_9_am,-1.356686422,F -coef_escort_departure_constant_1_30_pm_to_2_pm,0.368092381,F -coef_escort_departure_constant_2_pm_to_2_30_pm,1.166803383,F -coef_escort_departure_constant_2_30_pm_to_3_pm,1.28466083,F -coef_escort_departure_constant_3_pm_to_3_30_pm,0.581891245,F -coef_escort_departure_constant_after_3_30_pm,0.834510243,F -coef_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear,0.175257649,F -coef_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear,-0.019161202,F -coef_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear,0.44978138,F -coef_escort_arrival_constant_before_7_am,0.549584585,F -coef_escort_arrival_constant_7_am_to_7_30_am,0.488181278,F -coef_escort_arrival_constant_7_30_am_to_8_am,0.236447651,F -coef_escort_arrival_constant_8_am_to_8_30_am,0,T -coef_escort_arrival_constant_8_30_am_to_9_am,-0.683756801,F -coef_escort_arrival_constant_after_9_am,-1.428888485,F -coef_escort_arrival_constant_2_30_pm_to_3_pm,1.311480662,F -coef_escort_arrival_constant_3_pm_to_3_30_pm,1.316883154,F -coef_escort_arrival_constant_3_30_pm_to_4_pm,1.396838392,F -coef_escort_arrival_constant_4_pm_to_4_30_pm,1.03146139,F -coef_escort_arrival_constant_after_4_30_pm,0.907344583,F -coef_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear,-0.148408887,F -coef_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,-0.389082896,F -coef_escort_duration_constant_0_hour,-0.173757322,F -coef_escort_duration_constant_30_minutes,0,T -coef_escort_duration_constant_1_hour,-0.431287743,F -coef_escort_duration_constant_1_hour_30_minutes,-0.700473959,F -coef_escort_duration_constant_2_hours,-1.071871358,F -coef_escort_duration_constant_longer_than_2_hours,-1.691098421,F -coef_escort_calibration_constant_duration_1,-0.047200214,F -coef_escort_calibration_constant_duration_2,0.035611332,F -coef_escort_calibration_constant_departure_9,0.106814756,F -coef_escort_calibration_constant_departure_10,0.215386864,F -coef_escort_calibration_constant_departure_23,-0.255087318,F -coef_escort_calibration_constant_departure_24,-0.296870428,F -coef_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes,0.122149101,F -coef_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes,-0.037886459,F -coef_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes,0.10247157,F -coef_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes,-1.882944033,F -coef_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes,-0.197455071,F -coef_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes,-0.045152663,F -coef_shopping_retired_duration_less_than_1_hour_30_minutes,-0.264728908,F -coef_shopping_retired_duration_greater_than_1_hour_30_minutes,-0.042981757,F -coef_shopping_university_student_duration_greater_than_1_hour_30_minutes,0.045926523,F -coef_shopping_female_duration_less_than_1_hour_30_minutes,-0.417208254,F -coef_shopping_female_duration_greater_than_1_hour_30_minutes,0.045801918,F -coef_shopping_low_income_duration_greater_than_1_hour_30_minutes,0.040776383,F -coef_shopping_medium_income_duration_less_than_1_hour_30_minutes,0.108462927,F -coef_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes,-0.037893416,F -coef_shopping_distance_duration_less_than_1_hour_30_minutes,-0.214802537,F -coef_shopping_distance_duration_greater_than_1_hour_30_minutes,0.007991656,F -coef_shopping_time_pressure_duration_greater_than_1_hour_30_minutes,0.013503327,F -coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,0.078844289,F -coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,-0.115431492,F -coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,-0.959875456,F -coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root,1.112594898,F -coef_shopping_departure_constant_before_9_am,-0.446394064,F -coef_shopping_departure_constant_9_am_to_9_30_am,-0.021669265,F -coef_shopping_departure_constant_9_30_am_to_10_am,-0.282978638,F -coef_shopping_departure_constant_10_am_to_10_30_am,0,T -coef_shopping_departure_constant_10_30_am_to_11_00_am,-0.309421311,F -coef_shopping_departure_constant_after_11_am,-0.541073357,F -coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,-0.072013428,F -coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,-0.000653398,F -coef_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear,-0.18376635,F -coef_shopping_arrival_constant_before_12_30_pm,-0.716195343,F -coef_shopping_arrival_constant_12_30_pm_to_3_pm,-0.502714001,F -coef_shopping_arrival_constant_3_pm_to_3_30_pm,-0.167868872,F -coef_shopping_arrival_constant_3_30_pm_to_4_pm,-0.156786941,F -coef_shopping_arrival_constant_4_pm_to_4_30_pm,0,T -coef_shopping_arrival_constant_4_30_pm_to_5_pm,-0.057314044,F -coef_shopping_arrival_constant_5_pm_to_5_30_pm,-0.580040851,F -coef_shopping_arrival_constant_5_30_pm_to_7_pm,-0.32239566,F -coef_shopping_arrival_constant_7_pm_to_9_30_pm,-0.347828147,F -coef_shopping_arrival_constant_after_9_30_pm,-1.123574723,F -coef_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear,-0.499770654,F -coef_shopping_duration_constant_0_hr,-0.131743185,F -coef_shopping_duration_constant_30_minutes,0.888857137,F -coef_shopping_duration_constant_1_hr,0,T -coef_shopping_duration_constant_1_hour_30_minutes,-0.333413031,F -coef_shopping_duration_constant_2_hrs,-0.850897912,F -coef_shopping_duration_constant_longer_than_2_hrs,-1.203783479,F -coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear,-0.293581223,F -coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root,-0.215759138,F -coef_shopping_calibration_constant_duration_1,-0.138450424,F -coef_shopping_calibration_constant_duration_2,-0.092704403,F -coef_shopping_calibration_constant_duration_3,-0.087738073,F -coef_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes,0.122149101,F -coef_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes,-0.037886459,F -coef_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes,0.10247157,F -coef_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes,-1.882944033,F -coef_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes,-0.197455071,F -coef_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes,-0.045152663,F -coef_maintenance_retired_duration_less_than_1_hour_30_minutes,-0.264728908,F -coef_maintenance_retired_duration_greater_than_1_hour_30_minutes,-0.042981757,F -coef_maintenance_university_student_duration_greater_than_1_hour_30_minutes,0.045926523,F -coef_maintenance_female_duration_less_than_1_hour_30_minutes,-0.417208254,F -coef_maintenance_female_duration_greater_than_1_hour_30_minutes,0.045801918,F -coef_maintenance_low_income_duration_greater_than_1_hour_30_minutes,0.040776383,F -coef_maintenance_medium_income_duration_less_than_1_hour_30_minutes,0.108462927,F -coef_maintenance_medium_income_duration_greater_than_1_hour_30_minutes,0,T -coef_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes,-0.037893416,F -coef_maintenance_distance_duration_less_than_1_hour_30_minutes,-0.214802537,F -coef_maintenance_distance_duration_greater_than_1_hour_30_minutes,0.007991656,F -coef_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes,0.013503327,F -coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,0.078844289,F -coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,-0.115431492,F -coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear,-0.864112609,F -coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root,0.504598473,F -coef_maintenance_departure_constant_before_8_am,-0.383711788,F -coef_maintenance_departure_constant_8_am_to_8_30_am,-0.076771517,F -coef_maintenance_departure_constant_8_30_am_to_9_00_am,-0.169259979,F -coef_maintenance_departure_constant_9_am_to_9_30_am,-0.051785379,F -coef_maintenance_departure_constant_9_30_am_to_10_am,-0.214942451,F -coef_maintenance_departure_constant_10_am_to_10_30_am,0,T -coef_maintenance_departure_constant_10_30_am_to_11_am,-0.427568963,F -coef_maintenance_departure_constant_after_11_am,-0.520863411,F -coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,0.042879095,F -coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,-0.003157293,F -coef_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear,-0.226803619,F -coef_maintenance_arrival_constant_before_10_30_am,-0.223212258,F -coef_maintenance_arrival_constant_10_30_am_to_11_am,0,T -coef_maintenance_arrival_constant_11_am_to_11_30_am,-0.128382637,F -coef_maintenance_arrival_constant_11_30_am_to_1_30_pm,0.167977332,F -coef_maintenance_arrival_constant_1_30_pm_to_2_30_pm,-0.149495878,F -coef_maintenance_arrival_constant_2_30_pm_to_4_pm,0.087679934,F -coef_maintenance_arrival_constant_4_pm_to_4_30_pm,0.121707557,F -coef_maintenance_arrival_constant_after_4_30_pm,0.106745013,F -coef_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,-0.232610927,F -coef_maintenance_duration_constant_0_hr,-0.483549396,F -coef_maintenance_duration_constant_30_minutes,0,T -coef_maintenance_duration_constant_longer_than_30_minutes,-1.450618319,F -coef_maintenance_duration_constant_duration_greater_than_1_hr_linear,-0.275082922,F -coef_maintenance_duration_constant_duration_greater_than_1_hr_square_root,0.208434683,F -coef_maintenance_calibration_constant_duration_1,-0.124602605,F -coef_maintenance_calibration_constant_duration_2,-0.103637715,F -coef_maintenance_calibration_constant_duration_3,-0.225442145,F -coef_maintenance_calibration_constant_duration_4,-0.145273012,F -coef_maintenance_calibration_constant_duration_5,-0.019241539,F -coef_eatout_distance_to_destination_duration_less_than_1_hr,-0.134981987,F -coef_eatout_distance_to_destination_duration_greater_than_1_hr,0.017860742,F -coef_eatout_low_income_duration_less_than_1_hr,1.002485807,F -coef_eatout_medium_income_duration_less_than_1_hr,0.499822018,F -coef_eatout_zeroauto_HH_duration_greater_than_1_hr,0.259409942,F -coef_eatout_university_student_departure_after_7_pm_linear,0.293827759,F -coef_eatout_female_duration_less_than_1_hr,-0.399414247,F -coef_eatout_female_duration_greater_than_1_hr,0.064593482,F -coef_eatout_time_pressure_departure_before_6_30_pm,0.083673557,F -coef_eatout_time_pressure_duration_less_than_1_hr,1.69632588,F -coef_eatout_departure_constant_7_30_am_to_9_am,1.222417262,F -coef_eatout_departure_constant_10_30_am_to_11_am,0.519559134,F -coef_eatout_departure_constant_11_am_to_11_30_am,1.191543552,F -coef_eatout_departure_constant_11_30_am_to_12_pm,1.66870995,F -coef_eatout_departure_constant_12_pm_to_12_30_pm,1.164106986,F -coef_eatout_departure_constant_12_30_pm_to_1_pm,1.057346496,F -coef_eatout_departure_constant_1_pm_to_1_30_pm,0.728959087,F -coef_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear,-0.477439748,F -coef_eatout_departure_constant_before_6_pm,-1.21554671,F -coef_eatout_departure_constant_6_pm_to_6_30_pm,-0.425984037,F -coef_eatout_departure_constant_6_30_pm_to_7_pm,0,T -coef_eatout_departure_constant_7_pm_to_7_30_pm,-0.227800647,F -coef_eatout_departure_constant_after_7_30_pm,-0.293904097,F -coef_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,-0.55440861,F -coef_eatout_arrival_constant_9_30_am_to_11_am,0.486337344,F -coef_eatout_arrival_constant_12_30_pm_to_1_pm,0.629299404,F -coef_eatout_arrival_constant_1_pm_to_1_30_pm,0.938528731,F -coef_eatout_arrival_constant_1_30_pm_to_2_pm,0.584420106,F -coef_eatout_arrival_constant_2_pm_to_2_30_pm,0.842550215,F -coef_eatout_arrival_constant_2_30_pm_to_3_pm,0.298486505,F -coef_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,0.125034982,F -coef_eatout_arrival_constant_before_6_30_pm,-0.029062996,F -coef_eatout_arrival_constant_6_30_pm_to_7_pm,-0.509075598,F -coef_eatout_arrival_constant_7_pm_to_7_30_pm,-0.124885931,F -coef_eatout_arrival_constant_7_30_pm_to_8_pm,-0.605455664,F -coef_eatout_arrival_constant_8_pm_to_8_30_pm,0,T -coef_eatout_arrival_constant_8_30_pm_to_9_pm,-0.657382835,F -coef_eatout_arrival_constant_after_9_pm,-0.813629712,F -coef_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,-0.204722406,F -coef_eatout_duration_constant_0_hour,-11.72660422,F -coef_eatout_duration_constant_30_minutes,-5.08873115,F -coef_eatout_duration_constant_1_hour,-0.125521065,F -coef_eatout_duration_constant_1_hour_30_minutes,0,T -coef_eatout_duration_constant_2_hours,-0.124807752,F -coef_eatout_duration_constant_2_hour_30_minutes_or_more,-0.156019835,F -coef_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,-0.3357414,F -coef_eatout_calibration_constant_duration_1,-0.333697861,F -coef_eatout_calibration_constant_duration_2,-0.245716,F -coef_eatout_calibration_constant_duration_3,0.052708833,F -coef_eatout_calibration_constant_duration_4,0.041571499,F -coef_eatout_calibration_constant_departure_1,-10,F -coef_eatout_calibration_constant_departure_2,-10,F -coef_eatout_calibration_constant_departure_3,-10,F -coef_eatout_calibration_constant_departure_17,0.706568704,F -coef_eatout_calibration_constant_departure_18,0.634353544,F -coef_eatout_calibration_constant_departure_19,0.584387268,F -coef_eatout_calibration_constant_departure_20,0.469777884,F -coef_eatout_calibration_constant_departure_21,0.39548931,F -coef_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,-0.262839914,F -coef_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,0.086919429,F -coef_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear,0.468354376,F -coef_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear,-0.312282762,F -coef_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,-0.508439932,F -coef_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,0.074190914,F -coef_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,0.127185965,F -coef_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,0.048756122,F -coef_social_auto_distance_duration_less_than_1_hr_linear,-0.162965435,F -coef_social_auto_distance_duration_greater_than_1_hr_linear,0.006797399,F -coef_social_time_pressure_duration_less_than_1_hr,-0.229264474,F -coef_social_time_pressure_duration_greater_than_1_hr,0.219325112,F -coef_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,0.156250451,F -coef_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,-0.529943196,F -coef_social_departure_constant_before_9_am,-0.198438086,F -coef_social_departure_constant_9_am_to_9_30_am,0.137620628,F -coef_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear,-0.142078961,F -coef_social_departure_constant_before_5_30_pm,-0.390965052,F -coef_social_departure_constant_5_30_pm_to_6_pm,-0.453580491,F -coef_social_departure_constant_6_pm_to_6_30_pm,0,T -coef_social_departure_constant_6_30_pm_to_7_pm,-0.088537991,F -coef_social_departure_constant_7_pm_to_7_30_pm,0.052983115,F -coef_social_departure_constant_after_7_30_pm,-0.649629162,F -coef_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,-0.09574499,F -coef_social_arrival_constant_3_pm_to_3_30_pm,0.37674882,F -coef_social_arrival_constant_3_30_pm_to_4_pm,0.583355461,F -coef_social_arrival_constant_4_pm_to_4_30_pm,0.727855233,F -coef_social_arrival_constant_5_pm_to_6_pm,0.249551955,F -coef_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear,0.053771388,F -coef_social_arrival_constant_before_8_30_pm,0.308763611,F -coef_social_arrival_constant_8_30_pm_to_9_pm,-0.208797698,F -coef_social_arrival_constant_9_pm_to_9_30_pm,-0.336319511,F -coef_social_arrival_constant_9_30_pm_to_10_pm,0,T -coef_social_arrival_constant_10_pm_to_10_30_pm,-0.055707591,F -coef_social_arrival_constant_after_10_30_pm,-0.612356296,F -coef_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear,-0.348479901,F -coef_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear,0.614440191,F -coef_social_duration_constant_less_than_3_hours,0.353666691,F -coef_social_duration_constant_3_hours,0,T -coef_social_duration_constant_3_hrs_30_minutes,-0.691218836,F -coef_social_duration_constant_4_hours_or_more,-1.344375328,F -coef_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear,-0.786970714,F -coef_social_calibration_constant_duration_1,-1.346772472,F -coef_social_calibration_constant_duration_2,0.377121689,F -coef_social_calibration_constant_duration_3,0.179818928,F -coef_social_calibration_constant_duration_4,-0.283418619,F -coef_social_calibration_constant_duration_5,-0.103541313,F -coef_social_calibration_constant_duration_6,-0.03704707,F -coef_social_calibration_constant_duration_7,-0.062437167,F -coef_social_calibration_constant_duration_8,0.047640282,F -coef_social_calibration_constant_duration_9,0.284369793,F -coef_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,-0.262839914,F -coef_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,0.086919429,F -coef_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear,0.468354376,F -coef_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear,-0.312282762,F -coef_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,-0.508439932,F -coef_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,0.074190914,F -coef_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,0.127185965,F -coef_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,0.048756122,F -coef_discretionary_auto_distance_duration_less_than_1_hr_linear,-0.162965435,F -coef_discretionary_auto_distance_duration_greater_than_1_hr_linear,0.006797399,F -coef_discretionary_time_pressure_duration_less_than_1_hr,-0.229264474,F -coef_discretionary_time_pressure_duration_greater_than_1_hr,0.219325112,F -coef_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,0.156250451,F -coef_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear,-0.742176805,F -coef_discretionary_departure_constant_before_7_30_am,-1.323901585,F -coef_discretionary_departure_constant_7_30_am_to_8_am,-0.695441631,F -coef_discretionary_departure_constant_8_am_to_8_30_am,-0.269903336,F -coef_discretionary_departure_constant_8_30_am_to_9_am,-0.093709211,F -coef_discretionary_departure_constant_9_am_to_9_30_am,0.265634082,F -coef_discretionary_departure_constant_9_30_am_to_10_am,0.287521134,F -coef_discretionary_departure_constant_10_am_to_10_30_am,0.396547817,F -coef_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear,-0.245885745,F -coef_discretionary_departure_constant_before_5_pm,-1.344482349,F -coef_discretionary_departure_constant_5_pm_to_5_30_pm,-0.622632748,F -coef_discretionary_departure_constant_5_30_pm_to_6_pm,-0.456718676,F -coef_discretionary_departure_constant_6_pm_to_6_30_pm,-0.206896106,F -coef_discretionary_departure_constant_6_30_pm_to_7_pm,0,T -coef_discretionary_departure_constant_after_7_pm,-0.46439343,F -coef_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear,-0.291998986,F -coef_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,0.148649188,F -coef_discretionary_arrival_constant_before_6_30_pm,0.668775963,F -coef_discretionary_arrival_constant_6_30_pm_to_7_pm,-0.053520826,F -coef_discretionary_arrival_constant_7_pm_to_7_30_pm,0.099726391,F -coef_discretionary_arrival_constant_7_30_pm_to_8_pm,0.063414092,F -coef_discretionary_arrival_constant_8_pm_to_8_30_pm,0,T -coef_discretionary_arrival_constant_8_30_pm_to_9_pm,-0.18610847,F -coef_discretionary_arrival_constant_after_9_pm,-0.423207857,F -coef_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,-0.525545923,F -coef_discretionary_duration_constant_0_hour,0.436988282,F -coef_discretionary_duration_constant_30_minutes,1.35967577,F -coef_discretionary_duration_constant_1_hour,1.692672999,F -coef_discretionary_duration_constant_1_hr_30_minutes,1.118932964,F -coef_discretionary_duration_constant_2_hours,0.771255733,F -coef_discretionary_duration_constant_2_hr_30_minutes,0,T -coef_discretionary_duration_constant_3_hours_or_more,-0.631242175,F -coef_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,-0.700935645,F -coef_discretionary_calibration_constant_duration_4,-0.132674257,F -coef_discretionary_calibration_constant_duration_5,-0.013371871,F -coef_discretionary_calibration_constant_departure_29,0.232927977,F -coef_discretionary_calibration_constant_departure_30,0.306104612,F -coef_discretionary_calibration_constant_departure_31,0.285520678,F -coef_discretionary_calibration_constant_departure_32,0.115886631,F diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_eatout.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_eatout.csv index 4dde9e73d..6c02794aa 100644 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_eatout.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_eatout.csv @@ -8,8 +8,8 @@ util_eatout_zeroauto_HH_duration_greater_than_1_hr,EAT-OUT - Zero auto HH - Dura util_eatout_university_student_departure_after_7_pm_linear,EAT-OUT - University student - Departure after 7:00 pm - Linear,"@np.where(((df.start>32) & (df.ptype == 3)), (np.where((df.start<=32), np.minimum(32-df.start,29), 0) + np.where((df.start>32), np.minimum(df.start-32,8), 0)), 0)",coef_eatout_university_student_departure_after_7_pm_linear util_eatout_female_duration_less_than_1_hr,EAT-OUT - Female - Duration < 1 hr,"@np.where(((df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_less_than_1_hr util_eatout_female_duration_greater_than_1_hr,EAT-OUT - Female - Duration > 1 hr,"@np.where(((df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_greater_than_1_hr -util_eatout_time_pressure_departure_before_6_30_pm,EAT-OUT - Time Pressure - Departure before 6:30 pm,"@np.where(((df.start<32)), (np.minimum(32-df.start,29)) * (np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_departure_before_6_30_pm -util_eatout_time_pressure_duration_less_than_1_hr,EAT-OUT - Time Pressure - Duration < 1 hrs,"@np.where(((df.duration<2)), np.minimum(2-df.duration,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_duration_less_than_1_hr +util_eatout_time_pressure_departure_before_6_30_pm,EAT-OUT - Time Pressure - Departure before 6:30 pm,"@np.where(((df.start<32)), (np.minimum(32-df.start,29)) * (np.log10 (30 *(tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_departure_before_6_30_pm +util_eatout_time_pressure_duration_less_than_1_hr,EAT-OUT - Time Pressure - Duration < 1 hrs,"@np.where(((df.duration<2)), np.minimum(2-df.duration,47) * (np.log10 (30 * (tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_duration_less_than_1_hr util_eatout_departure_constant_7_30_am_to_9_am,EAT-OUT - Departure Constant: 07:30 AM - 09:00 AM,@((df.start>=10) & (df.start<=12)),coef_eatout_departure_constant_7_30_am_to_9_am util_eatout_departure_constant_10_30_am_to_11_am,EAT-OUT - Departure Constant: 10:30 AM - 11:00 AM,@((df.start==16)),coef_eatout_departure_constant_10_30_am_to_11_am util_eatout_departure_constant_11_am_to_11_30_am,EAT-OUT - Departure Constant: 11:00 AM - 11:30 AM,@((df.start==17)),coef_eatout_departure_constant_11_am_to_11_30_am diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othdiscr.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othdiscr.csv index 12816d338..69a5e039a 100644 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othdiscr.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othdiscr.csv @@ -11,8 +11,8 @@ util_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_th "# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, util_discretionary_auto_distance_duration_less_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_less_than_1_hr_linear util_discretionary_auto_distance_duration_greater_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_greater_than_1_hr_linear -util_discretionary_time_pressure_duration_less_than_1_hr,DISCRETIONARY - Time Pressure - Duration < 1 hr,"@np.where(((df.duration<3)), np.minimum(3-df.duration,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_discretionary_time_pressure_duration_less_than_1_hr -util_discretionary_time_pressure_duration_greater_than_1_hr,DISCRETIONARY - Time Pressure - Duration > 1 hr,"@np.where(((df.duration>3)), np.minimum(df.duration-3,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_discretionary_time_pressure_duration_greater_than_1_hr +util_discretionary_time_pressure_duration_less_than_1_hr,DISCRETIONARY - Time Pressure - Duration < 1 hr,"@np.where(((df.duration<3)), np.minimum(3-df.duration,47), 0) * (np.log10 (30 * (tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num))))",coef_discretionary_time_pressure_duration_less_than_1_hr +util_discretionary_time_pressure_duration_greater_than_1_hr,DISCRETIONARY - Time Pressure - Duration > 1 hr,"@np.where(((df.duration>3)), np.minimum(df.duration-3,47) * (np.log10 (30 * (tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_discretionary_time_pressure_duration_greater_than_1_hr util_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,DISCRETIONARY - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint')&(df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0))*(df.num_add_soc_discr_tours),0)",coef_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr util_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 07:30 pm - Linear,"@np.where(((df.start<9)), (np.where((df.start<9), np.minimum(9-df.start,48), 0) + np.where((df.start>48), np.minimum(df.start-48,48),0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear util_discretionary_departure_constant_before_7_30_am,DISCRETIONARY - Departure Constant: Before 7:30 AM ,@((df.start<10)),coef_discretionary_departure_constant_before_7_30_am diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othmaint.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othmaint.csv index 967964c3d..38b6ebd08 100644 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othmaint.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_othmaint.csv @@ -6,7 +6,7 @@ util_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes,MAI util_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes,MAINTENANCE - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes util_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes util_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration > 1.5 hrs,"@np.where(((df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_retired_duration_less_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration < 1.5 hrs,"@np.where(((df.duration<2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_less_than_1_hour_30_minutes +util_maintenance_retired_duration_less_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration < 1.5 hrs,"@np.where(((df.duration<2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_less_than_1_hour_30_minutes util_maintenance_retired_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration > 1.5 hr,"@np.where(((df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_greater_than_1_hour_30_minutes util_maintenance_university_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - University Student: Duration > 1.5 hrs,"@np.where(((df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_university_student_duration_greater_than_1_hour_30_minutes util_maintenance_female_duration_less_than_1_hour_30_minutes,MAINTENANCE - Female: Duration < 1.5 hrs,"@np.where(((df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_less_than_1_hour_30_minutes @@ -17,7 +17,7 @@ util_maintenance_medium_income_duration_greater_than_1_hour_30_minutes,"MAINTENA util_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes util_maintenance_distance_duration_less_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration < 1.5 hrs,"@np.where(((df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_less_than_1_hour_30_minutes util_maintenance_distance_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration > 1.5 hrs,"@np.where(((df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_greater_than_1_hour_30_minutes -util_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes,Time Pressure - Duration > 1.5 hrs,"@np.where(((df.duration>2)), np.minimum(df.duration-2,26) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes +util_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes,Time Pressure - Duration > 1.5 hrs,"@np.where(((df.duration>2)), np.minimum(df.duration-2,26) * (np.log10 (30 * (tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Linear,"@np.where(((df.start<10)), (np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_in.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_in.csv deleted file mode 100755 index 3ea664ef8..000000000 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_in.csv +++ /dev/null @@ -1,348 +0,0 @@ -Label,Description,Expression,Coefficient -# ESCORT,,, -util_escort_mode_choice_logsum,ESCORT - Mode Choice Logsum,"@np.where(df.tour_type == 'escort', df.mode_choice_logsum, 0) ",coef_escort_mode_choice_logsum -"#Note: In CTRAMP expressions, duration alternative is from 1 to 48 but in ActivitySim, it is from 0 to 47 since the duration alternative ID was calculated as (end - start). Therefore, duration in ActivitySim expression = CTRAMP duration expresssion - 1 ",,,# -util_escort_distance_to_destination_duration_less_than_30_minutes,ESCORT - Distance to destination - Duration less than 0.5 hour (depart and arrive in the same period),"@np.where(((df.tour_type == 'escort') & (df.duration<1)), ((df.origin_to_destination_distance) * (np.where((df.duration<=1), np.minimum(1-df.duration, 0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0))), 0)",coef_escort_distance_to_destination_duration_less_than_30_minutes -util_escort_distance_to_destination_duration_greater_than_30_minutes,ESCORT - Distance to destination - Duration greater than 0.5 hour,"@np.where(((df.tour_type == 'escort') & (df.duration>1)), ((df.origin_to_destination_distance) * (np.where((df.duration<=1), np.minimum(1-df.duration, 0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0))), 0)",coef_escort_distance_to_destination_duration_greater_than_30_minutes -util_escort_fulltime_worker_departure_after_8_am_linear,ESCORT - Full-time worker - Departure after 8:00 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)),0)",coef_escort_fulltime_worker_departure_after_8_am_linear -"#Note: In CTRAMP expression file, the description below says departure is after 3 am but from the expression it seems that it would be 3 pm instead of 3 am",,, -util_escort_fulltime_worker_departure_after_3_am_linear,ESCORT - Full-time worker - Departure after 3:00 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.start>24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_fulltime_worker_departure_after_3_am_linear -util_escort_fulltime_worker_duration_less_than_30_minutes,ESCORT - Full-time worker - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_fulltime_worker_duration_less_than_30_minutes -util_escort_fulltime_worker_duration_greater_than_30_minutes,ESCORT - Full-time worker - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_fulltime_worker_duration_greater_than_30_minutes -util_escort_university_student_duration_less_than_30_minutes,ESCORT - University student - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 3) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_university_student_duration_less_than_30_minutes -util_escort_non_driving_age_student_duration_greater_than_30_minutes,ESCORT - Non-driving age student - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & ((df.ptype == 7)|(df.ptype == 8)) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_non_driving_age_student_duration_greater_than_30_minutes -util_escort_driving_age_student_duration_less_than_30_minutes,ESCORT - Driving age student - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 6) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_driving_age_student_duration_less_than_30_minutes -util_escort_driving_age_student_duration_greater_than_30_minutes,ESCORT - Driving age student - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 6) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_driving_age_student_duration_greater_than_30_minutes -"#Note: In CTRAMP expression file, description says the expression below is for duration > 0.5 hr but the expression says duration < 0.5 hr",,, -util_escort_pre_school_kid_duration_greater_than_30_minutes,ESCORT - Pre-school kid - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 8) & (df.duration<1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_pre_school_kid_duration_greater_than_30_minutes -util_escort_med_high_income_duration_greater_than_30_minutes,ESCORT - Med-high income (60k to 120k) - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.is_income_60K_to_120K) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_med_high_income_duration_greater_than_30_minutes -util_escort_households_with_no_kids_departure_before_7_30_am,"ESCORT - Households with no kids (Dummy- 1,0) - Departure before 7:30 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start<10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_households_with_no_kids_departure_before_7_30_am -util_escort_households_with_no_kids_departure_after_8_00_am,"ESCORT - Households with no kids (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_households_with_no_kids_departure_after_8_00_am -util_escort_households_with_no_kids_departure_before_2_30_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Departure before 2:30 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start<24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_households_with_no_kids_departure_before_2_30_pm -util_escort_households_with_no_kids_departure_after_3_00_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Departure after 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start>24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where ((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_households_with_no_kids_departure_after_3_00_pm -util_escort_households_with_no_kids_arrival_before_8_am,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival before 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end<11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_households_with_no_kids_arrival_before_8_am -util_escort_households_with_no_kids_arrival_after_8_30_am,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival after 8:30 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end>11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_households_with_no_kids_arrival_after_8_30_am -util_escort_households_with_no_kids_arrival_before_3_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival before 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end<25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_households_with_no_kids_arrival_before_3_pm -util_escort_households_with_no_kids_arrival_after_3_30_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival after 3:30 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end>25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_households_with_no_kids_arrival_after_3_30_pm -util_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am -util_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.start>24)), (np.where((df.start<=24), np.minimum(24-df.start,3), 0) + np.where((df.start>24), np.minimum(df.start-24,9), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm -util_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am,"ESCORT -Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival before 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.end<11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am -util_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival before 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.end<25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.start>10)), (np.where((df.start<=10), np.minimum(10-df.start,7), 0) + np.where ((df.start>10), np.minimum(df.start-10,35), 0)), 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival after 8:30 AM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.end>11)), (np.where((df.end<=11), np.minimum(11-df.end,7), 0) + np.where((df.end>11), np.minimum(df.end-11,35), 0)), 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival after 3:30 PM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.end>25)), (np.where((df.end<=25), np.minimum(25-df.end,3), 0) + np.where((df.end>25), np.minimum(df.end-25,9), 0)), 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm -util_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes,ESCORT - Number of autos greater than number of adults - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.auto_ownership > 0) & (df.auto_ownership > df.num_adults) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)), 0)",coef_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes -util_escort_number_of_individual_tours_duration_greater_than_30_minutes,ESCORT -Number of Individual Tours (excluding escorting) - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.num_non_escort_tours > 0) & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)) * (df.num_non_escort_tours), 0)",coef_escort_number_of_individual_tours_duration_greater_than_30_minutes -util_escort_number_of_joint_tours_duration_greater_than_30_minutes,ESCORT - Number of joint tours - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.duration>1)), (np.where((df.duration<=1), np.minimum(1-df.duration,0), 0) + np.where((df.duration>1), np.minimum(df.duration-1,47), 0)) *(df.num_joint_tours), 0)",coef_escort_number_of_joint_tours_duration_greater_than_30_minutes -util_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear,ESCORT - Departure Constant: Shift for every 30 minutes before 06:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.start<8)), (np.where((df.start<8), np.minimum(8-df.start,4), 0) + np.where((df.start>13), np.minimum(df.start-13,28), 0)), 0)",coef_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear -util_escort_departure_constant_before_7_am,ESCORT - Departure Constant: Before 07:00 AM,@((df.tour_type == 'escort') & (df.start<9)),coef_escort_departure_constant_before_7_am -util_escort_departure_constant_7_am_to_7_30_am,ESCORT - Departure Constant: 07:00 AM - 07:30 AM,@((df.tour_type == 'escort') & (df.start==9)),coef_escort_departure_constant_7_am_to_7_30_am -util_escort_departure_constant_7_30_am_to_8_am,ESCORT - Departure Constant: 07:30 AM - 08:00 AM,@((df.tour_type == 'escort') & (df.start==10)),coef_escort_departure_constant_7_30_am_to_8_am -util_escort_departure_constant_8_am_to_8_30_am,ESCORT - Departure Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'escort') & (df.start==11)),coef_escort_departure_constant_8_am_to_8_30_am -util_escort_departure_constant_8_30_am_to_9_am,ESCORT - Departure Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'escort') & (df.start==12)),coef_escort_departure_constant_8_30_am_to_9_am -util_escort_departure_constant_after_9_am,ESCORT - Departure Constant: After 09:00 AM,@((df.tour_type == 'escort') & (df.start>12)),coef_escort_departure_constant_after_9_am -util_escort_departure_constant_1_30_pm_to_2_pm,ESCORT - Departure Constant: 01:30 PM - 02:00 PM,@((df.tour_type == 'escort') & (df.start==22)),coef_escort_departure_constant_1_30_pm_to_2_pm -util_escort_departure_constant_2_pm_to_2_30_pm,ESCORT - Departure Constant: 02:00 PM - 02:30 PM,@((df.tour_type == 'escort') & (df.start==23)),coef_escort_departure_constant_2_pm_to_2_30_pm -util_escort_departure_constant_2_30_pm_to_3_pm,ESCORT - Departure Constant: 02:30 PM - 03:00 PM,@((df.tour_type == 'escort') & (df.start==24)),coef_escort_departure_constant_2_30_pm_to_3_pm -util_escort_departure_constant_3_pm_to_3_30_pm,ESCORT - Departure Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'escort') & (df.start==25)),coef_escort_departure_constant_3_pm_to_3_30_pm -util_escort_departure_constant_after_3_30_pm,ESCORT - Departure Constant: After 03:30 PM,@((df.tour_type == 'escort') & (df.start>25)),coef_escort_departure_constant_after_3_30_pm -util_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear,ESCORT - Departure Constant: Shift for every 30 minutes after 9:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.start>13)), (np.where((df.start<8), np.minimum(8-df.start,4), 0) + (np.where((df.start>13), np.minimum(df.start-13,28), 0))), 0)",coef_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear -util_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear,ESCORT - Departure Constant: Shift for every 30 minutes after 4:00 pm - Linear,"@np.where(((df.tour_type == 'escort') & (df.start>26)), (np.where((df.start<0), np.minimum(0-df.start,48), 0) + np.where((df.start>26), np.minimum(df.start-26,15),0)), 0)",coef_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear -util_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear,ESCORT - Arrival Constant: Shift for every 30 minutes before 6:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.end<8)), (np.where((df.end<8), np.minimum(8-df.end,2), 0) + np.where((df.end>13), np.minimum(df.end-13,30), 0)), 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear -util_escort_arrival_constant_before_7_am,ESCORT - Arrival Constant: Before 07:00 AM,@((df.tour_type == 'escort') & (df.end<9)),coef_escort_arrival_constant_before_7_am -util_escort_arrival_constant_7_am_to_7_30_am,ESCORT - Arrival Constant: 07:00 AM - 07:30 AM,@((df.tour_type == 'escort') & (df.end==9)),coef_escort_arrival_constant_7_am_to_7_30_am -util_escort_arrival_constant_7_30_am_to_8_am,ESCORT - Arrival Constant: 07:30 AM - 08:00 AM,@((df.tour_type == 'escort') & (df.end==10)),coef_escort_arrival_constant_7_30_am_to_8_am -util_escort_arrival_constant_8_am_to_8_30_am,ESCORT - Arrival Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'escort') & (df.end==11)),coef_escort_arrival_constant_8_am_to_8_30_am -util_escort_arrival_constant_8_30_am_to_9_am,ESCORT - Arrival Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'escort') & (df.end==12)),coef_escort_arrival_constant_8_30_am_to_9_am -util_escort_arrival_constant_after_9_am,ESCORT - Arrival Constant: After 09:00 AM,@((df.tour_type == 'escort') & (df.end>12)),coef_escort_arrival_constant_after_9_am -util_escort_arrival_constant_2_30_pm_to_3_pm,ESCORT - Arrival Constant: 02:30 PM - 03:00 PM,@((df.tour_type == 'escort') & (df.end==24)),coef_escort_arrival_constant_2_30_pm_to_3_pm -util_escort_arrival_constant_3_pm_to_3_30_pm,ESCORT - Arrival Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'escort') & (df.end==25)),coef_escort_arrival_constant_3_pm_to_3_30_pm -util_escort_arrival_constant_3_30_pm_to_4_pm,ESCORT - Arrival Constant: 03:30 PM - 04:00 PM,@((df.tour_type == 'escort') & (df.end==26)),coef_escort_arrival_constant_3_30_pm_to_4_pm -util_escort_arrival_constant_4_pm_to_4_30_pm,ESCORT - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'escort') & (df.end==27)),coef_escort_arrival_constant_4_pm_to_4_30_pm -util_escort_arrival_constant_after_4_30_pm,ESCORT - Arrival Constant: After 04:30 PM,@((df.tour_type == 'escort') & (df.end>27)),coef_escort_arrival_constant_after_4_30_pm -util_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear,ESCORT - Arrival Constant: Shift for every 30 minutes after 9:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.end>13)), (np.where((df.end<8), np.minimum(8-df.end,2), 0) + np.where((df.end>13), np.minimum(df.end-13,30), 0)), 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear -util_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,ESCORT - Arrival Constant: Shift for every 30 minutes after 5:00 pm - Linear,"@np.where(((df.tour_type == 'escort') & (df.end>28)), (np.where((df.end<0), np.minimum(0-df.end,48), 0) + np.where((df.start>28), np.minimum(df.end-28,15), 0)), 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear -util_escort_duration_constant_0_hour,ESCORT - Duration Constant: 0 hr,@((df.tour_type == 'escort') & (df.duration==0)),coef_escort_duration_constant_0_hour -util_escort_duration_constant_30_minutes,ESCORT - Duration Constant: 0.5 hr,@((df.tour_type == 'escort') & (df.duration==1)),coef_escort_duration_constant_30_minutes -util_escort_duration_constant_1_hour,ESCORT - Duration Constant: 1 hr,@((df.tour_type == 'escort') & (df.duration==2)),coef_escort_duration_constant_1_hour -util_escort_duration_constant_1_hour_30_minutes,ESCORT - Duration Constant: 1.5hrs,@((df.tour_type == 'escort') & (df.duration==3)),coef_escort_duration_constant_1_hour_30_minutes -util_escort_duration_constant_2_hours,ESCORT - Duration Constant: 2 hrs,@((df.tour_type == 'escort') & (df.duration==4)),coef_escort_duration_constant_2_hours -util_escort_duration_constant_longer_than_2_hours,ESCORT - Duration Constant: Longer than 2 hrs,@((df.tour_type == 'escort') & (df.duration>4)),coef_escort_duration_constant_longer_than_2_hours -util_escort_calibration_constant_duration_1,ESCORT - Calibration Constant - Duration = 1,@((df.tour_type == 'escort') & (df.duration==0)),coef_escort_calibration_constant_duration_1 -util_escort_calibration_constant_duration_2,ESCORT - Calibration Constant - Duration = 2,@(((df.tour_type == 'escort') & df.duration==1)),coef_escort_calibration_constant_duration_2 -util_escort_calibration_constant_departure_9,ESCORT - Calibration Constant - Departure = 9,@((df.tour_type == 'escort') & (df.start==9)),coef_escort_calibration_constant_departure_9 -util_escort_calibration_constant_departure_10,ESCORT - Calibration Constant - Departure = 10,@((df.tour_type == 'escort') & (df.start==10)),coef_escort_calibration_constant_departure_10 -util_escort_calibration_constant_departure_23,ESCORT - Calibration Constant - Departure = 23,@((df.tour_type == 'escort') & (df.start==23)),coef_escort_calibration_constant_departure_23 -util_escort_calibration_constant_departure_24,ESCORT - Calibration Constant - Departure = 24,@((df.tour_type == 'escort') & (df.start==24)),coef_escort_calibration_constant_departure_24 -#SHOPPING,,,#SHOPPING -util_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes,SHOPPING - Driving age student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 6)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes -util_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes,SHOPPING - Full-time worker: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes -util_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes,SHOPPING - Non-driving Student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & ((df.ptype == 7)|(df.ptype == 8))), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes -util_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes,SHOPPING - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes -util_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes,SHOPPING - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes -util_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes,SHOPPING - Part Time Worker: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes -util_shopping_retired_duration_less_than_1_hour_30_minutes,SHOPPING - Retired: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_retired_duration_less_than_1_hour_30_minutes -util_shopping_retired_duration_greater_than_1_hour_30_minutes,SHOPPING - Retired: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_retired_duration_greater_than_1_hour_30_minutes -util_shopping_university_student_duration_greater_than_1_hour_30_minutes,SHOPPING - University Student: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_university_student_duration_greater_than_1_hour_30_minutes -util_shopping_female_duration_less_than_1_hour_30_minutes,SHOPPING - Female: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_female_duration_less_than_1_hour_30_minutes -util_shopping_female_duration_greater_than_1_hour_30_minutes,SHOPPING - Female: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_female_duration_greater_than_1_hour_30_minutes -util_shopping_low_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Low Income (<=$25,000): Duration > 1.5 hr","@np.where(((df.tour_type == 'shopping') & (df.is_income_less25K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_low_income_duration_greater_than_1_hour_30_minutes -util_shopping_medium_income_duration_less_than_1_hour_30_minutes,"SHOPPING - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.tour_type == 'shopping') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_income_duration_less_than_1_hour_30_minutes -util_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.tour_type == 'shopping') & (df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes -util_shopping_distance_duration_less_than_1_hour_30_minutes,SHOPPING - Distance: Duration < 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_less_than_1_hour_30_minutes -util_shopping_distance_duration_greater_than_1_hour_30_minutes,SHOPPING - Distance: Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_greater_than_1_hour_30_minutes -util_shopping_time_pressure_duration_greater_than_1_hour_30_minutes,SHOPPING - Time Pressure - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration>2)), np.minimum(df.duration-2,26) *(np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_shopping_time_pressure_duration_greater_than_1_hour_30_minutes -util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes -util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') &(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes -util_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SHOPPING - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@np.where(((df.tour_type == 'shopping') & (df.start<12)), (np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear -util_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root,SHOPPING - Departure Constant: Shift for every 30 minutes before 08:30 am - Square root,"@np.where(((df.tour_type == 'shopping') & (df.start<12)), (np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0))**0.5, 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root -util_shopping_departure_constant_before_9_am,SHOPPING - Departure Constant: Before 09:00 AM,@((df.tour_type == 'shopping') & (df.start<13)),coef_shopping_departure_constant_before_9_am -util_shopping_departure_constant_9_am_to_9_30_am,SHOPPING - Departure Constant: 09:00 AM - 09:30 AM,@((df.tour_type == 'shopping') & (df.start==13)),coef_shopping_departure_constant_9_am_to_9_30_am -util_shopping_departure_constant_9_30_am_to_10_am,SHOPPING - Departure Constant: 09:30 AM - 10:00 AM,@((df.tour_type == 'shopping') & (df.start==14)),coef_shopping_departure_constant_9_30_am_to_10_am -util_shopping_departure_constant_10_am_to_10_30_am,SHOPPING - Departure Constant: 10:00 AM - 10:30 AM,@((df.tour_type == 'shopping') & (df.start==15)),coef_shopping_departure_constant_10_am_to_10_30_am -util_shopping_departure_constant_10_30_am_to_11_00_am,SHOPPING - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'shopping') & (df.start==16)),coef_shopping_departure_constant_10_30_am_to_11_00_am -util_shopping_departure_constant_after_11_am,SHOPPING - Departure Constant: After 11:00 AM,@((df.tour_type == 'shopping') & (df.start>16)),coef_shopping_departure_constant_after_11_am -util_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,SHOPPING - Departure Constant: Shift for every 30 minutes after 11:30 am - Linear,"@np.where(((df.tour_type == 'shopping') & (df.start>17)), (np.where((df.start<12), np.minimum(12-df.start,7),0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear -util_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,SHOPPING - Departure Constant: Shift for every 30 minutes after 11:30 am - Squared,"@np.where(((df.tour_type == 'shopping') & (df.start>17)), ((np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)) ** 2), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared -util_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear,SHOPPING - Arrival Constant: Shift for every 30 minutes before 12:00 pm - Linear,"@np.where(((df.tour_type == 'shopping') & (df.end<19)), (np.where ((df.end<19), np.minimum(19-df.end,10), 0) + np.where((df.end>38), np.minimum(df.end-38,5), 0)), 0)",coef_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear -util_shopping_arrival_constant_before_12_30_pm,SHOPPING - Arrival Constant: Before 12:30 PM,@((df.tour_type == 'shopping') & (df.end<20)),coef_shopping_arrival_constant_before_12_30_pm -util_shopping_arrival_constant_12_30_pm_to_3_pm,SHOPPING - Arrival Constant: 12:30 PM - 03:00 PM,@((df.tour_type == 'shopping') & ( df.end>=20) & (df.end<=24)),coef_shopping_arrival_constant_12_30_pm_to_3_pm -util_shopping_arrival_constant_3_pm_to_3_30_pm,SHOPPING - Arrival Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'shopping') & (df.end==25)),coef_shopping_arrival_constant_3_pm_to_3_30_pm -util_shopping_arrival_constant_3_30_pm_to_4_pm,SHOPPING - Arrival Constant: 03:30 PM - 04:00 PM,@((df.tour_type == 'shopping') & (df.end==26)),coef_shopping_arrival_constant_3_30_pm_to_4_pm -util_shopping_arrival_constant_4_pm_to_4_30_pm,SHOPPING - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'shopping') & (df.end==27)),coef_shopping_arrival_constant_4_pm_to_4_30_pm -util_shopping_arrival_constant_4_30_pm_to_5_pm,SHOPPING - Arrival Constant: 04:30 PM - 05:00 PM,@((df.tour_type == 'shopping') & (df.end==28)),coef_shopping_arrival_constant_4_30_pm_to_5_pm -util_shopping_arrival_constant_5_pm_to_5_30_pm,SHOPPING - Arrival Constant: 05:00 PM - 05:30 PM,@((df.tour_type == 'shopping') & (df.end==29)),coef_shopping_arrival_constant_5_pm_to_5_30_pm -util_shopping_arrival_constant_5_30_pm_to_7_pm,SHOPPING - Arrival Constant: 05:30 PM - 07:00 PM,@((df.tour_type == 'shopping') & (df.end>=30) & (df.end<=32)),coef_shopping_arrival_constant_5_30_pm_to_7_pm -util_shopping_arrival_constant_7_pm_to_9_30_pm,SHOPPING - Arrival Constant: 07:00 PM - 09:30 PM,@((df.tour_type == 'shopping') & (df.end>=33) & (df.end<=37)),coef_shopping_arrival_constant_7_pm_to_9_30_pm -util_shopping_arrival_constant_after_9_30_pm,SHOPPING - Arrival Constant: After 09:30 PM,@((df.tour_type == 'shopping') & (df.end>37)),coef_shopping_arrival_constant_after_9_30_pm -util_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear,SHOPPING - Arrival Constant: Shift for every 30 minutes after 10:00 pm - Linear,"@np.where(((df.tour_type == 'shopping') & (df.end>38)), (np.where((df.end<19), np.minimum(19-df.end,10), 0) + np.where ((df.end>38), np.minimum(df.end-38,5), 0)), 0)",coef_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear -util_shopping_duration_constant_0_hr,SHOPPING - Duration Constant: 0 hr,@((df.tour_type == 'shopping') & (df.duration==0)),coef_shopping_duration_constant_0_hr -util_shopping_duration_constant_30_minutes,SHOPPING - Duration Constant: 0.5 hr,@((df.tour_type == 'shopping') & (df.duration==1)),coef_shopping_duration_constant_30_minutes -util_shopping_duration_constant_1_hr,SHOPPING - Duration Constant: 1 hr,@((df.tour_type == 'shopping') & (df.duration==2)),coef_shopping_duration_constant_1_hr -util_shopping_duration_constant_1_hour_30_minutes,SHOPPING - Duration Constant: 1.5hrs,@(df.tour_type == 'shopping') & (df.duration==3),coef_shopping_duration_constant_1_hour_30_minutes -util_shopping_duration_constant_2_hrs,SHOPPING - Duration Constant: 2 hrs,@((df.tour_type == 'shopping') & (df.duration==4)),coef_shopping_duration_constant_2_hrs -util_shopping_duration_constant_longer_than_2_hrs,SHOPPING - Duration Constant: Longer than 2 hrs,@((df.tour_type == 'shopping') & (df.duration>4)),coef_shopping_duration_constant_longer_than_2_hrs -util_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear,SHOPPING - Duration Constant: Duration > 2.5 hrs - Linear,"@np.where(((df.tour_type == 'shopping') & (df.duration>5)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,26), 0)), 0)",coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear -util_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root,SHOPPING - Duration Constant: Duration > 2.5 hrs - Square root,"@np.where(((df.tour_type == 'shopping') & (df.duration>5)), ((np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,26), 0)) ** 0.5), 0)",coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root -util_shopping_calibration_constant_duration_1,SHOPPING - Calibration Constant - Duration = 1,@((df.tour_type == 'shopping') & (df.duration==0)),coef_shopping_calibration_constant_duration_1 -util_shopping_calibration_constant_duration_2,SHOPPING - Calibration Constant - Duration = 2,@((df.tour_type == 'shopping') & (df.duration==1)),coef_shopping_calibration_constant_duration_2 -util_shopping_calibration_constant_duration_3,SHOPPING - Calibration Constant - Duration = 3,@((df.tour_type == 'shopping') & (df.duration==2)),coef_shopping_calibration_constant_duration_3 -#MAINTENANCE,#MAINTENANCE,,#MAINTENANCE -util_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Driving age student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 6)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes -util_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Full-time worker: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Non-driving Student: Duration > 1.5 hrs,"@np.where (((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & ((df.ptype == 7)|(df.ptype == 8))), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes -util_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes,MAINTENANCE - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes -util_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes -util_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_retired_duration_less_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_less_than_1_hour_30_minutes -util_maintenance_retired_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_greater_than_1_hour_30_minutes -util_maintenance_university_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - University Student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_university_student_duration_greater_than_1_hour_30_minutes -util_maintenance_female_duration_less_than_1_hour_30_minutes,MAINTENANCE - Female: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_less_than_1_hour_30_minutes -util_maintenance_female_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Female: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_greater_than_1_hour_30_minutes -util_maintenance_low_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Low Income (<=$25,000): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_less25K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_low_income_duration_greater_than_1_hour_30_minutes -util_maintenance_medium_income_duration_less_than_1_hour_30_minutes,"MAINTENANCE - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_income_duration_less_than_1_hour_30_minutes -util_maintenance_medium_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium Income ($25,001 to $60,000): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_25K_to_60K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_income_duration_greater_than_1_hour_30_minutes -util_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes -util_maintenance_distance_duration_less_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration < 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_less_than_1_hour_30_minutes -util_maintenance_distance_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration > 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_greater_than_1_hour_30_minutes -util_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes,Time Pressure - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), np.minimum(df.duration-2,26) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes -util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes -util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes -util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.start<10)), (np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear -util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Square Root,"@np.where(((df.tour_type == 'othmaint') & (df.start<10)), ((np.where((df.start<10), np.minimum(10-df.start,7), 0) + (np.where((df.start>17), np.minimum(df.start-17,24), 0)))** 0.5), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root -util_maintenance_departure_constant_before_8_am,MAINTENANCE - Departure Constant: Before 08:00 AM,@((df.tour_type == 'othmaint') & (df.start<11)),coef_maintenance_departure_constant_before_8_am -util_maintenance_departure_constant_8_am_to_8_30_am,MAINTENANCE - Departure Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'othmaint') & (df.start==11)),coef_maintenance_departure_constant_8_am_to_8_30_am -util_maintenance_departure_constant_8_30_am_to_9_00_am,MAINTENANCE - Departure Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'othmaint') & (df.start==12)),coef_maintenance_departure_constant_8_30_am_to_9_00_am -util_maintenance_departure_constant_9_am_to_9_30_am,MAINTENANCE - Departure Constant: 09:00 AM - 09:30 AM,@((df.tour_type == 'othmaint') & (df.start==13)),coef_maintenance_departure_constant_9_am_to_9_30_am -util_maintenance_departure_constant_9_30_am_to_10_am,MAINTENANCE - Departure Constant: 09:30 AM - 10:00 AM,@((df.tour_type == 'othmaint') & (df.start==14)),coef_maintenance_departure_constant_9_30_am_to_10_am -util_maintenance_departure_constant_10_am_to_10_30_am,MAINTENANCE - Departure Constant: 10:00 AM - 10:30 AM,@((df.tour_type == 'othmaint') & (df.start==15)),coef_maintenance_departure_constant_10_am_to_10_30_am -util_maintenance_departure_constant_10_30_am_to_11_am,MAINTENANCE - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'othmaint') & (df.start==16)),coef_maintenance_departure_constant_10_30_am_to_11_am -util_maintenance_departure_constant_after_11_am,MAINTENANCE - Departure Constant: After 11:00 AM,@((df.tour_type == 'othmaint') & (df.start>16)),coef_maintenance_departure_constant_after_11_am -util_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes after 11:30 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.start>17)), np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear -util_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,MAINTENANCE - Departure Constant: Shift for every 30 minutes after 11:30 am - Squared,"@np.where(((df.tour_type == 'othmaint') & (df.start>17)), ((np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)) ** 2), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared -util_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear,MAINTENANCE - Arrival Constant: Shift for every 30 minutes before 10:00 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.end<15)), (np.where((df.end<15), np.minimum(15-df.end,9), 0) + np.where((df.end>28), np.minimum(df.end-28,16), 0)), 0)",coef_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear -util_maintenance_arrival_constant_before_10_30_am,MAINTENANCE - Arrival Constant: Before 10:30 AM,@((df.tour_type == 'othmaint') & (df.end<16)),coef_maintenance_arrival_constant_before_10_30_am -util_maintenance_arrival_constant_10_30_am_to_11_am,MAINTENANCE - Arrival Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'othmaint') & (df.end==16)),coef_maintenance_arrival_constant_10_30_am_to_11_am -util_maintenance_arrival_constant_11_am_to_11_30_am,MAINTENANCE - Arrival Constant: 11:00 AM - 11:30 AM,@((df.tour_type == 'othmaint') & (df.end==17)),coef_maintenance_arrival_constant_11_am_to_11_30_am -util_maintenance_arrival_constant_11_30_am_to_1_30_pm,MAINTENANCE - Arrival Constant: 11:30 AM - 01:30 PM,@((df.tour_type == 'othmaint') & (df.end>=18) & (df.end<=21)),coef_maintenance_arrival_constant_11_30_am_to_1_30_pm -util_maintenance_arrival_constant_1_30_pm_to_2_30_pm,MAINTENANCE - Arrival Constant: 01:30 PM - 02:30 PM,@((df.tour_type == 'othmaint') & (df.end>=22) & (df.end<=23)),coef_maintenance_arrival_constant_1_30_pm_to_2_30_pm -util_maintenance_arrival_constant_2_30_pm_to_4_pm,MAINTENANCE - Arrival Constant: 02:30 PM - 04:00 PM,@((df.tour_type == 'othmaint') & (df.end>=24) & (df.end<=26)),coef_maintenance_arrival_constant_2_30_pm_to_4_pm -util_maintenance_arrival_constant_4_pm_to_4_30_pm,MAINTENANCE - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'othmaint') & (df.end==27)),coef_maintenance_arrival_constant_4_pm_to_4_30_pm -util_maintenance_arrival_constant_after_4_30_pm,MAINTENANCE - Arrival Constant: After 04:30 PM,@((df.tour_type == 'othmaint') & (df.end>27)),coef_maintenance_arrival_constant_after_4_30_pm -util_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,MAINTENANCE - Arrival Constant: Shift for every 30 minutes after 5:00 pm - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.end>28)), (np.where((df.end<15), np.minimum(15-df.end,9), 0) + np.where((df.end>28), np.minimum(df.end-28,16), 0)), 0)",coef_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear -util_maintenance_duration_constant_0_hr,MAINTENANCE - Duration Constant: 0 hr,@((df.tour_type == 'othmaint') & (df.duration==0)),coef_maintenance_duration_constant_0_hr -util_maintenance_duration_constant_30_minutes,MAINTENANCE - Duration Constant: 0.5 hr,@((df.tour_type == 'othmaint') & (df.duration==1)),coef_maintenance_duration_constant_30_minutes -util_maintenance_duration_constant_longer_than_30_minutes,MAINTENANCE - Duration Constant: Longer than 0.5 hr,@((df.tour_type == 'othmaint') & (df.duration>1)),coef_maintenance_duration_constant_longer_than_30_minutes -util_maintenance_duration_constant_duration_greater_than_1_hr_linear,MAINTENANCE - Duration Constant: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_duration_constant_duration_greater_than_1_hr_linear -util_maintenance_duration_constant_duration_greater_than_1_hr_square_root,MAINTENANCE - Duration Constant: Duration > 1 hr - Square Root,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), ((np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0))** 0.5), 0)",coef_maintenance_duration_constant_duration_greater_than_1_hr_square_root -util_maintenance_calibration_constant_duration_1,MAINTENANCE - Calibration Constant - Duration = 1,@((df.tour_type == 'othmaint') & (df.duration==0)),coef_maintenance_calibration_constant_duration_1 -util_maintenance_calibration_constant_duration_2,MAINTENANCE - Calibration Constant - Duration = 2,@((df.tour_type == 'othmaint') & (df.duration==1)),coef_maintenance_calibration_constant_duration_2 -util_maintenance_calibration_constant_duration_3,MAINTENANCE - Calibration Constant - Duration = 3,@((df.tour_type == 'othmaint') & (df.duration==2)),coef_maintenance_calibration_constant_duration_3 -util_maintenance_calibration_constant_duration_4,MAINTENANCE - Calibration Constant - Duration = 4,@((df.tour_type == 'othmaint') & (df.duration==3)),coef_maintenance_calibration_constant_duration_4 -util_maintenance_calibration_constant_duration_5,MAINTENANCE - Calibration Constant - Duration = 5,@((df.tour_type == 'othmaint') & (df.duration==4)),coef_maintenance_calibration_constant_duration_5 -#EAT-OUT,#EAT-OUT,,#EAT-OUT -util_eatout_distance_to_destination_duration_less_than_1_hr,EAT-OUT - Distance to destination - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)) * (df.origin_to_destination_distance), 0)",coef_eatout_distance_to_destination_duration_less_than_1_hr -util_eatout_distance_to_destination_duration_greater_than_1_hr,EAT-OUT - Distance to destination - Duration > 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)) *(df.origin_to_destination_distance), 0)",coef_eatout_distance_to_destination_duration_greater_than_1_hr -util_eatout_low_income_duration_less_than_1_hr,EAT-OUT - Low income (<25000) - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.is_income_less25K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_low_income_duration_less_than_1_hr -util_eatout_medium_income_duration_less_than_1_hr,EAT-OUT - Medium (25k to 60k) - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_medium_income_duration_less_than_1_hr -util_eatout_zeroauto_HH_duration_greater_than_1_hr,EAT-OUT - Zero auto HH - Duration > 1 hrs,"@np.where(((df.tour_type == 'eatout') & (df.auto_ownership == 0) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_zeroauto_HH_duration_greater_than_1_hr -util_eatout_university_student_departure_after_7_pm_linear,EAT-OUT - University student - Departure after 7:00 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.start>32) & (df.ptype == 3)), (np.where((df.start<=32), np.minimum(32-df.start,29), 0) + np.where((df.start>32), np.minimum(df.start-32,8), 0)), 0)",coef_eatout_university_student_departure_after_7_pm_linear -util_eatout_female_duration_less_than_1_hr,EAT-OUT - Female - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_less_than_1_hr -util_eatout_female_duration_greater_than_1_hr,EAT-OUT - Female - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_greater_than_1_hr -util_eatout_time_pressure_departure_before_6_30_pm,EAT-OUT - Time Pressure - Departure before 6:30 pm,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<32)), (np.minimum(32-df.start,29)) * (np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_departure_before_6_30_pm -util_eatout_time_pressure_duration_less_than_1_hr,EAT-OUT - Time Pressure - Duration < 1 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.duration<2)), np.minimum(2-df.duration,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_duration_less_than_1_hr -util_eatout_departure_constant_7_30_am_to_9_am,EAT-OUT - Departure Constant: 07:30 AM - 09:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>=10) & (df.start<=12)),coef_eatout_departure_constant_7_30_am_to_9_am -util_eatout_departure_constant_10_30_am_to_11_am,EAT-OUT - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==16)),coef_eatout_departure_constant_10_30_am_to_11_am -util_eatout_departure_constant_11_am_to_11_30_am,EAT-OUT - Departure Constant: 11:00 AM - 11:30 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==17)),coef_eatout_departure_constant_11_am_to_11_30_am -util_eatout_departure_constant_11_30_am_to_12_pm,EAT-OUT - Departure Constant: 11:30 AM - 12:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==18)),coef_eatout_departure_constant_11_30_am_to_12_pm -util_eatout_departure_constant_12_pm_to_12_30_pm,EAT-OUT - Departure Constant: 12:00 PM - 12:30 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.start==19)),coef_eatout_departure_constant_12_pm_to_12_30_pm -util_eatout_departure_constant_12_30_pm_to_1_pm,EAT-OUT - Departure Constant: 12:30 PM - 01:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==20)),coef_eatout_departure_constant_12_30_pm_to_1_pm -util_eatout_departure_constant_1_pm_to_1_30_pm,EAT-OUT - Departure Constant: 01:00 PM - 01:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==21)),coef_eatout_departure_constant_1_pm_to_1_30_pm -util_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear,EAT-OUT - Departure Constant: Shift for every 30 minutes before 05:30 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<31)), (np.where((df.start<30), np.minimum(30-df.start,27), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear -util_eatout_departure_constant_before_6_pm,EAT-OUT - Departure Constant: Before 06:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<31)),coef_eatout_departure_constant_before_6_pm -util_eatout_departure_constant_6_pm_to_6_30_pm,EAT-OUT - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==31)),coef_eatout_departure_constant_6_pm_to_6_30_pm -util_eatout_departure_constant_6_30_pm_to_7_pm,EAT-OUT - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==32)),coef_eatout_departure_constant_6_30_pm_to_7_pm -util_eatout_departure_constant_7_pm_to_7_30_pm,EAT-OUT - Departure Constant: 07:00 PM - 07:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==33)),coef_eatout_departure_constant_7_pm_to_7_30_pm -util_eatout_departure_constant_after_7_30_pm,EAT-OUT - Departure Constant: After 07:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>33)),coef_eatout_departure_constant_after_7_30_pm -util_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,EAT-OUT - Departure Constant: Shift for every 30 minutes after 08:00 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>34)), (np.where((df.start<30), np.minimum(30-df.start,27), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear -util_eatout_arrival_constant_9_30_am_to_11_am,EAT-OUT - Arrival Constant: 9:30 AM to 11:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end>=14) & (df.end<=16)),coef_eatout_arrival_constant_9_30_am_to_11_am -util_eatout_arrival_constant_12_30_pm_to_1_pm,EAT-OUT - Arrival Constant: 12:30 PM to 01:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==20)),coef_eatout_arrival_constant_12_30_pm_to_1_pm -util_eatout_arrival_constant_1_pm_to_1_30_pm,EAT-OUT - Arrival Constant: 01:00 PM to 01:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==21)),coef_eatout_arrival_constant_1_pm_to_1_30_pm -util_eatout_arrival_constant_1_30_pm_to_2_pm,EAT-OUT - Arrival Constant: 01:30 PM to 02:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==22)),coef_eatout_arrival_constant_1_30_pm_to_2_pm -util_eatout_arrival_constant_2_pm_to_2_30_pm,EAT-OUT - Arrival Constant: 02:00 PM to 02:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==23)),coef_eatout_arrival_constant_2_pm_to_2_30_pm -util_eatout_arrival_constant_2_30_pm_to_3_pm,EAT-OUT - Arrival Constant: 02:30 PM to 03:00 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.end==24)),coef_eatout_arrival_constant_2_30_pm_to_3_pm -util_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,EAT-OUT - Arrival Constant: Shift for every 30 minutes before 06:00 pm - Linear,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end<31)),coef_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear -util_eatout_arrival_constant_before_6_30_pm,EAT-OUT - Arrival Constant: Before 6:30 PM,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end<32)), (np.where((df.end<31), np.minimum(31-df.end,24), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_eatout_arrival_constant_before_6_30_pm -util_eatout_arrival_constant_6_30_pm_to_7_pm,EAT-OUT - Arrival Constant: 6:30 PM to 7:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==32)),coef_eatout_arrival_constant_6_30_pm_to_7_pm -util_eatout_arrival_constant_7_pm_to_7_30_pm,EAT-OUT - Arrival Constant: 7:00 PM to 7:30 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.end==33)),coef_eatout_arrival_constant_7_pm_to_7_30_pm -util_eatout_arrival_constant_7_30_pm_to_8_pm,EAT-OUT - Arrival Constant: 7:30 PM to 8:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==34)),coef_eatout_arrival_constant_7_30_pm_to_8_pm -util_eatout_arrival_constant_8_pm_to_8_30_pm,EAT-OUT - Arrival Constant: 8:00 PM to 8:30 PM,@((df.tour_category != 'joint') &(df.tour_type == 'eatout') & (df.end==35)),coef_eatout_arrival_constant_8_pm_to_8_30_pm -util_eatout_arrival_constant_8_30_pm_to_9_pm,EAT-OUT - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==36)),coef_eatout_arrival_constant_8_30_pm_to_9_pm -util_eatout_arrival_constant_after_9_pm,EAT-OUT - Arrival Constant: After 9:00 PM,@((df.tour_category != 'joint')& (df.tour_type == 'eatout') & (df.end>36)),coef_eatout_arrival_constant_after_9_pm -util_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,EAT-OUT - Arrival Constant: Shift for every 30 minutes after 09:30 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end>37)), (np.where((df.end<31), np.minimum(31-df.end,24), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear -util_eatout_duration_constant_0_hour,EAT-OUT - Duration Constant: 0 hour,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.duration==0)),coef_eatout_duration_constant_0_hour -util_eatout_duration_constant_30_minutes,EAT-OUT - Duration Constant: 0.5 hour,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==1)),coef_eatout_duration_constant_30_minutes -util_eatout_duration_constant_1_hour,EAT-OUT - Duration Constant: 1 hour,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==2)),coef_eatout_duration_constant_1_hour -util_eatout_duration_constant_1_hour_30_minutes,EAT-OUT - Duration Constant: 1.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==3)),coef_eatout_duration_constant_1_hour_30_minutes -util_eatout_duration_constant_2_hours,EAT-OUT - Duration Constant: 2 hours,@((df.tour_category != 'joint')& (df.tour_type == 'eatout') & (df.duration==4)),coef_eatout_duration_constant_2_hours -util_eatout_duration_constant_2_hour_30_minutes_or_more,EAT-OUT - Duration Constant: 2.5 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>4)),coef_eatout_duration_constant_2_hour_30_minutes_or_more -util_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,EAT-OUT - Duration Constant: Shift for every 30 minutes more than 3 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>5)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,11), 0)), 0)",coef_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear -util_eatout_calibration_constant_duration_1,EAT-OUT - Calibration Constant - Duration = 1,@((df.tour_type == 'eatout') & (df.duration==0)),coef_eatout_calibration_constant_duration_1 -util_eatout_calibration_constant_duration_2,EAT-OUT - Calibration Constant - Duration = 2,@((df.tour_type == 'eatout') & (df.duration==1)),coef_eatout_calibration_constant_duration_2 -util_eatout_calibration_constant_duration_3,EAT-OUT - Calibration Constant - Duration = 3,@((df.tour_type== 'eatout') & (df.duration==2)),coef_eatout_calibration_constant_duration_3 -util_eatout_calibration_constant_duration_4,EAT-OUT - Calibration Constant - Duration = 4,@((df.tour_type == 'eatout') & (df.duration==3)),coef_eatout_calibration_constant_duration_4 -util_eatout_calibration_constant_departure_1,EAT-OUT - Calibration Constant - Departure = 1,@((df.tour_type == 'eatout') & (df.start == 1)),coef_eatout_calibration_constant_departure_1 -util_eatout_calibration_constant_departure_2,EAT-OUT - Calibration Constant - Departure = 2,@((df.tour_type == 'eatout') & (df.start == 2)),coef_eatout_calibration_constant_departure_2 -util_eatout_calibration_constant_departure_3,EAT-OUT - Calibration Constant - Departure = 3,@((df.tour_type== 'eatout') & (df.start == 3)),coef_eatout_calibration_constant_departure_3 -util_eatout_calibration_constant_departure_17,EAT-OUT - Calibration Constant - Departure = 17,@((df.tour_type == 'eatout') & (df.start ==17)),coef_eatout_calibration_constant_departure_17 -util_eatout_calibration_constant_departure_18,EAT-OUT - Calibration Constant - Departure = 18,@((df.tour_type== 'eatout') & (df.start ==18)),coef_eatout_calibration_constant_departure_18 -util_eatout_calibration_constant_departure_19,EAT-OUT - Calibration Constant - Departure = 19,@((df.tour_type == 'eatout') & (df.start ==19)),coef_eatout_calibration_constant_departure_19 -util_eatout_calibration_constant_departure_20,EAT-OUT - Calibration Constant - Departure = 20,@((df.tour_type == 'eatout') & (df.start ==20)),coef_eatout_calibration_constant_departure_20 -util_eatout_calibration_constant_departure_21,EAT-OUT - Calibration Constant - Departure = 21,@((df.tour_type == 'eatout') & (df.start ==21)),coef_eatout_calibration_constant_departure_21 -#SOCIAL,#SOCIAL,,#SOCIAL -util_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Person< 18 years old: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear -util_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Person< 18 years old: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear -util_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Non-working senior/ retiree: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3) & (df.ptype == 5)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear -util_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Retiree/ Non-working senior only HH: Duration < 1.5 hrs - Linear,"@np.where(((df.retired_adults_only_hh) & (df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear -util_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Zero auto households: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership == 0) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear -util_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Zero auto households: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership == 0) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear -util_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Number of auto more than number of adults: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership > 0) &(df.auto_ownership > df.num_adults) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear -util_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Number of auto more than number of adults: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership > 0) & (df.auto_ownership > df.num_adults) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear -"# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, -util_social_auto_distance_duration_less_than_1_hr_linear,SOCIAL - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0) * (df.origin_to_destination_distance)",coef_social_auto_distance_duration_less_than_1_hr_linear -util_social_auto_distance_duration_greater_than_1_hr_linear,SOCIAL - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'social') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0) * (df.origin_to_destination_distance) ",coef_social_auto_distance_duration_greater_than_1_hr_linear -util_social_time_pressure_duration_less_than_1_hr,SOCIAL - Time Pressure - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3)), np.minimum(3-df.duration,47), 0)* (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_less_than_1_hr -util_social_time_pressure_duration_greater_than_1_hr,SOCIAL - Time Pressure - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>3)), np.minimum(df.duration-3,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_greater_than_1_hr -util_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,SOCIAL - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.num_add_soc_discr_tours), 0)",coef_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr -util_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@(df.tour_type == 'social') & (df.start<12) * ((np.minimum(12-df.start,48)*(df.start<48)) + (np.minimum(df.start-48,48)*(df.start>48)))",coef_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear -util_social_departure_constant_before_9_am,SOCIAL - Departure Constant: Before 09:00 AM,@(df.tour_type == 'social') & (df.start<13),coef_social_departure_constant_before_9_am -util_social_departure_constant_9_am_to_9_30_am,SOCIAL - Departure Constant: 09:00 AM to 09:30 AM,@(df.tour_type == 'social') & (df.start==13),coef_social_departure_constant_9_am_to_9_30_am -util_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 05:00 pm - Linear,"@np.where((df.start<29), (np.where((df.start<29), np.minimum(29-df.start,8), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear -util_social_departure_constant_before_5_30_pm,SOCIAL - Departure Constant: Before 05:30 PM,@((df.tour_type == 'social') & (df.start<30)),coef_social_departure_constant_before_5_30_pm -util_social_departure_constant_5_30_pm_to_6_pm,SOCIAL - Departure Constant: 05:30 PM - 06:00 PM,@((df.tour_type == 'social') & (df.start==30)),coef_social_departure_constant_5_30_pm_to_6_pm -util_social_departure_constant_6_pm_to_6_30_pm,SOCIAL - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_type == 'social') & (df.start==31)),coef_social_departure_constant_6_pm_to_6_30_pm -util_social_departure_constant_6_30_pm_to_7_pm,SOCIAL - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_type == 'social') & (df.start==32)),coef_social_departure_constant_6_30_pm_to_7_pm -util_social_departure_constant_7_pm_to_7_30_pm,SOCIAL - Departure Constant: 07:00 PM - 07:30 PM,@((df.tour_type == 'social') & (df.start==33)),coef_social_departure_constant_7_pm_to_7_30_pm -util_social_departure_constant_after_7_30_pm,SOCIAL - Departure Constant: After 07:30 PM,@((df.tour_type == 'social') & (df.start>33)),coef_social_departure_constant_after_7_30_pm -util_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,SOCIAL - Departure Constant: Shift for every 30 minutes after 08:00 pm - Linear,"@np.where((df.start>34), (np.where((df.start<29), np.minimum(29-df.start,8), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear -util_social_arrival_constant_3_pm_to_3_30_pm,SOCIAL - Arrival Constant: 03:00 PM to 03:30 PM,@((df.tour_type == 'social') & (df.end==25)),coef_social_arrival_constant_3_pm_to_3_30_pm -util_social_arrival_constant_3_30_pm_to_4_pm,SOCIAL - Arrival Constant: 03:30 PM to 04:00 PM,@((df.tour_type == 'social') & (df.end==26)),coef_social_arrival_constant_3_30_pm_to_4_pm -util_social_arrival_constant_4_pm_to_4_30_pm,SOCIAL - Arrival Constant: 04:00 PM to 04:30 PM,@((df.tour_type == 'social') & (df.end==27)),coef_social_arrival_constant_4_pm_to_4_30_pm -util_social_arrival_constant_5_pm_to_6_pm,SOCIAL - Arrival Constant: 05:00 PM to 06:00 PM,@((df.tour_type == 'social') & (df.end>=29) & (df.end<=30)),coef_social_arrival_constant_5_pm_to_6_pm -util_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear,SOCIAL - Arrival Constant: Shift for every 30 minutes before 08:00 pm - Linear,"@np.where(((df.tour_type == 'social') & (df.end<35)), (np.where((df.end<35), np.minimum(35-df.end,48), 0) + np.where((df.end>40), np.minimum(df.end-40,48), 0)), 0)",coef_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear -util_social_arrival_constant_before_8_30_pm,SOCIAL - Arrival Constant: Before 8:30 PM,@((df.tour_type == 'social') & (df.end<36)),coef_social_arrival_constant_before_8_30_pm -util_social_arrival_constant_8_30_pm_to_9_pm,SOCIAL - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_type == 'social') & (df.end==36)),coef_social_arrival_constant_8_30_pm_to_9_pm -util_social_arrival_constant_9_pm_to_9_30_pm,SOCIAL - Arrival Constant: 9:00 PM to 9:30 PM,@((df.tour_type == 'social') & (df.end==37)),coef_social_arrival_constant_9_pm_to_9_30_pm -util_social_arrival_constant_9_30_pm_to_10_pm,SOCIAL - Arrival Constant: 9:30 PM to10:00 PM,@((df.tour_type == 'social') & (df.end==38)),coef_social_arrival_constant_9_30_pm_to_10_pm -util_social_arrival_constant_10_pm_to_10_30_pm,SOCIAL - Arrival Constant: 10:00 PM to 10:30 PM,@((df.tour_type == 'social') & (df.end==39)),coef_social_arrival_constant_10_pm_to_10_30_pm -util_social_arrival_constant_after_10_30_pm,SOCIAL - Arrival Constant: After 10:30 PM,@((df.tour_type == 'social') & (df.end>39)),coef_social_arrival_constant_after_10_30_pm -util_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear,SOCIAL - Arrival Constant: Shift for every 30 minutes after 11:00 pm - Linear,"@np.where(((df.tour_type == 'social') & (df.end>40)), (np.where((df.end<35), np.minimum(35-df.end,48), 0) +np.where((df.end>40),np.minimum(df.end-40,48),0)), 0)",coef_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear -util_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear,SOCIAL - Duration Constant: Shift for every 30 minutes less than 2.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<5)), (np.where((df.duration<5), np.minimum(5-df.duration,47), 0) + np.where((df.duration>7), np.minimum(df.duration-7,47), 0)), 0)",coef_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear -util_social_duration_constant_less_than_3_hours,SOCIAL - Duration Constant: Less than 3 hrs,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<6)),coef_social_duration_constant_less_than_3_hours -util_social_duration_constant_3_hours,SOCIAL - Duration Constant: 3 hours,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration==6)),coef_social_duration_constant_3_hours -util_social_duration_constant_3_hrs_30_minutes,SOCIAL - Duration Constant: 3.5 hours,@((df.tour_category != 'joint')& (df.tour_type == 'social') & (df.duration==7)),coef_social_duration_constant_3_hrs_30_minutes -util_social_duration_constant_4_hours_or_more,SOCIAL - Duration Constant: 4 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>7)),coef_social_duration_constant_4_hours_or_more -util_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear,SOCIAL - Duration Constant: Shift for every 30 minutes more than 4.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>8)), (np.where((df.duration<5), np.minimum(5-df.duration,47), 0) + np.where((df.duration>8), np.minimum(df.duration-8,47), 0)), 0)",coef_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear -util_social_calibration_constant_duration_1,SOCIAL - Calibration Constant - Duration = 1,@((df.tour_type == 'social') & (df.duration ==0)),coef_social_calibration_constant_duration_1 -util_social_calibration_constant_duration_2,SOCIAL - Calibration Constant - Duration = 2,@((df.tour_type == 'social') & (df.duration == 1)),coef_social_calibration_constant_duration_2 -util_social_calibration_constant_duration_3,SOCIAL - Calibration Constant - Duration = 3,@((df.tour_type == 'social') & (df.duration ==2)),coef_social_calibration_constant_duration_3 -util_social_calibration_constant_duration_4,SOCIAL - Calibration Constant - Duration = 4,@((df.tour_type == 'social') & (df.duration ==3)),coef_social_calibration_constant_duration_4 -util_social_calibration_constant_duration_5,SOCIAL - Calibration Constant - Duration = 5,@((df.tour_type == 'social') & (df.duration ==4)),coef_social_calibration_constant_duration_5 -util_social_calibration_constant_duration_6,SOCIAL - Calibration Constant - Duration = 6,@((df.tour_type == 'social') & (df.duration ==5)),coef_social_calibration_constant_duration_6 -util_social_calibration_constant_duration_7,SOCIAL - Calibration Constant - Duration = 7,@((df.tour_type == 'social') & (df.duration ==6)),coef_social_calibration_constant_duration_7 -util_social_calibration_constant_duration_8,SOCIAL - Calibration Constant - Duration = 8,@((df.tour_type == 'social') & (df.duration ==7)),coef_social_calibration_constant_duration_8 -util_social_calibration_constant_duration_9,SOCIAL - Calibration Constant - Duration = 9,@((df.tour_type == 'social') & (df.duration ==8)),coef_social_calibration_constant_duration_9 -#DISCRETIONARY,#DISCRETIONARY,,#DISCRETIONARY -util_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Person< 18 years old: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear -util_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Person< 18 years old: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear -util_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Non-working senior/ retiree: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3) & (df.ptype == 5)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear -util_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear,DISCRETIONARY - Retiree/ Non-working senior only HH: Duration < 1.5 hrs - Linear,"@np.where(((df.retired_adults_only_hh) & (df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear -util_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Zero auto households: Duration < 1.5 hrs - Linear,"@np.where(((df.auto_ownership == 0) & (df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear -util_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Zero auto households: Duration > 1.5 hrs - Linear,"@np.where(((df.auto_ownership == 0) & (df.tour_type == 'othdiscr') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear -util_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Number of auto more that number of adults: Duration < 1.5 hrs - Linear,"@np.where(((df.auto_ownership > 0) & (df.tour_type == 'othdiscr') & (df.auto_ownership > df.num_adults) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)),0)",coef_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear -util_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Number of auto more that number of adults: Duration > 1.5 hrs - Linear,"@np.where(((df.auto_ownership > 0) &(df.tour_type == 'othdiscr')&(df.auto_ownership > df.num_adults) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear -"# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, -util_discretionary_auto_distance_duration_less_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_less_than_1_hr_linear -util_discretionary_auto_distance_duration_greater_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_greater_than_1_hr_linear -util_discretionary_time_pressure_duration_less_than_1_hr,DISCRETIONARY - Time Pressure - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3)), np.minimum(3-df.duration,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_discretionary_time_pressure_duration_less_than_1_hr -util_discretionary_time_pressure_duration_greater_than_1_hr,DISCRETIONARY - Time Pressure - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>3)), np.minimum(df.duration-3,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_discretionary_time_pressure_duration_greater_than_1_hr -util_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,DISCRETIONARY - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0))*(df.num_add_soc_discr_tours),0)",coef_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr -util_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 07:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start<9)), (np.where((df.start<9), np.minimum(9-df.start,48), 0) + np.where((df.start>48), np.minimum(df.start-48,48),0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear -util_discretionary_departure_constant_before_7_30_am,DISCRETIONARY - Departure Constant: Before 7:30 AM ,@((df.tour_type == 'othdiscr') & (df.start<10)),coef_discretionary_departure_constant_before_7_30_am -util_discretionary_departure_constant_7_30_am_to_8_am,DISCRETIONARY - Departure Constant: 7:30 AM to 8:00 AM,@((df.tour_type == 'othdiscr') & (df.start==10)),coef_discretionary_departure_constant_7_30_am_to_8_am -util_discretionary_departure_constant_8_am_to_8_30_am,DISCRETIONARY - Departure Constant: 8:00 AM to 8:30 AM,@((df.tour_type == 'othdiscr') & (df.start==11)),coef_discretionary_departure_constant_8_am_to_8_30_am -util_discretionary_departure_constant_8_30_am_to_9_am,DISCRETIONARY - Departure Constant: 8:30 AM to 9:00 AM,@((df.tour_type == 'othdiscr') & (df.start==12)),coef_discretionary_departure_constant_8_30_am_to_9_am -util_discretionary_departure_constant_9_am_to_9_30_am,DISCRETIONARY - Departure Constant: 9:00 AM to 9:30 AM,@((df.tour_type == 'othdiscr') & (df.start==13)),coef_discretionary_departure_constant_9_am_to_9_30_am -util_discretionary_departure_constant_9_30_am_to_10_am,DISCRETIONARY - Departure Constant: 9:30 AM to 10:00 AM,@((df.tour_type == 'othdiscr') & (df.start==14)),coef_discretionary_departure_constant_9_30_am_to_10_am -util_discretionary_departure_constant_10_am_to_10_30_am,DISCRETIONARY - Departure Constant: 10:00 AM to 10:30 AM,@((df.tour_type == 'othdiscr') & (df.start==15)),coef_discretionary_departure_constant_10_am_to_10_30_am -util_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 04:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start<28)), (np.where((df.start<28), np.minimum(28-df.start,8),0) + np.where((df.start>33), np.minimum(df.start-33,6), 0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear -util_discretionary_departure_constant_before_5_pm,DISCRETIONARY - Departure Constant: Before 05:00 PM,@((df.tour_type == 'othdiscr') & (df.start<29)),coef_discretionary_departure_constant_before_5_pm -util_discretionary_departure_constant_5_pm_to_5_30_pm,DISCRETIONARY - Departure Constant: 05:00 PM - 05:30 PM,@((df.tour_type == 'othdiscr') & (df.start==29)),coef_discretionary_departure_constant_5_pm_to_5_30_pm -util_discretionary_departure_constant_5_30_pm_to_6_pm,DISCRETIONARY - Departure Constant: 05:30 PM - 06:00 PM,@((df.tour_type == 'othdiscr') & (df.start==30)),coef_discretionary_departure_constant_5_30_pm_to_6_pm -util_discretionary_departure_constant_6_pm_to_6_30_pm,DISCRETIONARY - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_type == 'othdiscr') & (df.start==31)),coef_discretionary_departure_constant_6_pm_to_6_30_pm -util_discretionary_departure_constant_6_30_pm_to_7_pm,DISCRETIONARY - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_type == 'othdiscr') & (df.start==32)),coef_discretionary_departure_constant_6_30_pm_to_7_pm -util_discretionary_departure_constant_after_7_pm,DISCRETIONARY - Departure Constant: After 07:00 PM,@((df.tour_type == 'othdiscr') & (df.start>32)),coef_discretionary_departure_constant_after_7_pm -util_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes after 07:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start>33)), (np.where((df.start<28), np.minimum(28-df.start,8), 0) + np.where((df.start>33), np.minimum(df.start-33,6), 0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear -util_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,DISCRETIONARY - Arrival Constant: Shift for every 30 minutes before 06:00 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.end<31)), (np.where((df.end<31), np.minimum(31-df.end,48), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear -util_discretionary_arrival_constant_before_6_30_pm,DISCRETIONARY - Arrival Constant: Before 6:30 PM,@((df.tour_type == 'othdiscr') & (df.end<32)),coef_discretionary_arrival_constant_before_6_30_pm -util_discretionary_arrival_constant_6_30_pm_to_7_pm,DISCRETIONARY - Arrival Constant: 6:30 PM to 7:00 PM,@((df.tour_type == 'othdiscr') & (df.end==32)),coef_discretionary_arrival_constant_6_30_pm_to_7_pm -util_discretionary_arrival_constant_7_pm_to_7_30_pm,DISCRETIONARY - Arrival Constant: 7:00 PM to 7:30 PM,@((df.tour_type == 'othdiscr') & (df.end==33)),coef_discretionary_arrival_constant_7_pm_to_7_30_pm -util_discretionary_arrival_constant_7_30_pm_to_8_pm,DISCRETIONARY - Arrival Constant: 7:30 PM to 8:00 PM,@((df.tour_type == 'othdiscr') & (df.end==34)),coef_discretionary_arrival_constant_7_30_pm_to_8_pm -util_discretionary_arrival_constant_8_pm_to_8_30_pm,DISCRETIONARY - Arrival Constant: 8:00 PM to 8:30 PM,@((df.tour_type == 'othdiscr') & (df.end==35)),coef_discretionary_arrival_constant_8_pm_to_8_30_pm -util_discretionary_arrival_constant_8_30_pm_to_9_pm,DISCRETIONARY - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_type == 'othdiscr') & (df.end==36)),coef_discretionary_arrival_constant_8_30_pm_to_9_pm -util_discretionary_arrival_constant_after_9_pm,DISCRETIONARY - Arrival Constant: After 9:00 PM,@((df.tour_type == 'othdiscr') & (df.end>36)),coef_discretionary_arrival_constant_after_9_pm -util_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,DISCRETIONARY - Arrival Constant: Shift for every 30 minutes after 09:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.end>37)), (np.where((df.end<31), np.minimum(31-df.end,48), 0) + np.where((df.end>37), np.minimum(df.end-37,48),0)), 0)",coef_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear -util_discretionary_duration_constant_0_hour,DISCRETIONARY - Duration Constant: 0 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==0)),coef_discretionary_duration_constant_0_hour -util_discretionary_duration_constant_30_minutes,DISCRETIONARY -Duration Constant: 0.5 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==1)),coef_discretionary_duration_constant_30_minutes -util_discretionary_duration_constant_1_hour,DISCRETIONARY -Duration Constant: 1 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==2)),coef_discretionary_duration_constant_1_hour -util_discretionary_duration_constant_1_hr_30_minutes,DISCRETIONARY -Duration Constant: 1.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==3)),coef_discretionary_duration_constant_1_hr_30_minutes -util_discretionary_duration_constant_2_hours,DISCRETIONARY -Duration Constant: 2 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==4)),coef_discretionary_duration_constant_2_hours -util_discretionary_duration_constant_2_hr_30_minutes,DISCRETIONARY -Duration Constant: 2.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==5)),coef_discretionary_duration_constant_2_hr_30_minutes -util_discretionary_duration_constant_3_hours_or_more,DISCRETIONARY -Duration Constant: 3 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>5)),coef_discretionary_duration_constant_3_hours_or_more -util_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,DISCRETIONARY -Duration Constant: Shift for every 30 minutes more than 3 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>6)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>6), np.minimum(df.duration-6,47), 0)), 0)",coef_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear -util_discretionary_calibration_constant_duration_4,DISCRETIONARY -Calibration Constant - Duration = 4,@((df.tour_type == 'othdiscr') & (df.duration==3)),coef_discretionary_calibration_constant_duration_4 -util_discretionary_calibration_constant_duration_5,DISCRETIONARY -Calibration Constant - Duration = 5,@((df.tour_type == 'othdiscr') & (df.duration==4)),coef_discretionary_calibration_constant_duration_5 -util_discretionary_calibration_constant_departure_29,DISCRETIONARY -Calibration Constant - Departure = 29,@((df.tour_type == 'othdiscr') & (df.start==29)),coef_discretionary_calibration_constant_departure_29 -util_discretionary_calibration_constant_departure_30,DISCRETIONARY -Calibration Constant - Departure = 30,@((df.tour_type == 'othdiscr') & (df.start==30)),coef_discretionary_calibration_constant_departure_30 -util_discretionary_calibration_constant_departure_31,DISCRETIONARY -Calibration Constant - Departure = 31,@((df.tour_type == 'othdiscr') & (df.start==31)),coef_discretionary_calibration_constant_departure_31 -util_discretionary_calibration_constant_departure_32,DISCRETIONARY -Calibration Constant - Departure = 32,@((df.tour_type == 'othdiscr') & (df.start==32)),coef_discretionary_calibration_constant_departure_32 diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_out.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_out.csv deleted file mode 100755 index 5d760c2c3..000000000 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shift_out.csv +++ /dev/null @@ -1,348 +0,0 @@ -Label,Description,Expression,Coefficient -# ESCORT,,, -util_escort_mode_choice_logsum,ESCORT - Mode Choice Logsum,"@np.where(df.tour_type == 'escort', df.mode_choice_logsum, 0) ",coef_escort_mode_choice_logsum -"#Note: In CTRAMP expressions, duration alternative is from 1 to 48 but in ActivitySim, it is from 0 to 47 since the duration alternative ID was calculated as (end - start). Therefore, duration in ActivitySim expression = CTRAMP duration expresssion - 1 ",,,# -util_escort_distance_to_destination_duration_less_than_30_minutes,ESCORT - Distance to destination - Duration less than 0.5 hour (depart and arrive in the same period),"@np.where(((df.tour_type == 'escort') & (df.duration<1)), ((df.origin_to_destination_distance) * df.durationShift_escort), 0)",coef_escort_distance_to_destination_duration_less_than_30_minutes -util_escort_distance_to_destination_duration_greater_than_30_minutes,ESCORT - Distance to destination - Duration greater than 0.5 hour,"@np.where(((df.tour_type == 'escort') & (df.duration>1)), ((df.origin_to_destination_distance) * df.durationShift_escort), 0)",coef_escort_distance_to_destination_duration_greater_than_30_minutes -util_escort_fulltime_worker_departure_after_8_am_linear,ESCORT - Full-time worker - Departure after 8:00 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.start>10)), df.departureLinearShift1_escort,0)",coef_escort_fulltime_worker_departure_after_8_am_linear -"#Note: In CTRAMP expression file, the description below says departure is after 3 am but from the expression it seems that it would be 3 pm instead of 3 am",,, -util_escort_fulltime_worker_departure_after_3_am_linear,ESCORT - Full-time worker - Departure after 3:00 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.start>24)), df.departureLinearShift2_escort, 0)",coef_escort_fulltime_worker_departure_after_3_am_linear -util_escort_fulltime_worker_duration_less_than_30_minutes,ESCORT - Full-time worker - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.duration<1)), df.durationShift_escort, 0)",coef_escort_fulltime_worker_duration_less_than_30_minutes -util_escort_fulltime_worker_duration_greater_than_30_minutes,ESCORT - Full-time worker - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 1) & (df.duration>1)), df.durationShift_escort, 0)",coef_escort_fulltime_worker_duration_greater_than_30_minutes -util_escort_university_student_duration_less_than_30_minutes,ESCORT - University student - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 3) & (df.duration<1)), df.durationShift_escort, 0)",coef_escort_university_student_duration_less_than_30_minutes -util_escort_non_driving_age_student_duration_greater_than_30_minutes,ESCORT - Non-driving age student - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & ((df.ptype == 7)|(df.ptype == 8)) & (df.duration>1)), df.durationShift_escort, 0)",coef_escort_non_driving_age_student_duration_greater_than_30_minutes -util_escort_driving_age_student_duration_less_than_30_minutes,ESCORT - Driving age student - Duration < 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 6) & (df.duration<1)), df.durationShift_escort, 0)",coef_escort_driving_age_student_duration_less_than_30_minutes -util_escort_driving_age_student_duration_greater_than_30_minutes,ESCORT - Driving age student - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 6) & (df.duration>1)), df.durationShift_escort, 0)",coef_escort_driving_age_student_duration_greater_than_30_minutes -"#Note: In CTRAMP expression file, description says the expression below is for duration > 0.5 hr but the expression says duration < 0.5 hr",,, -util_escort_pre_school_kid_duration_greater_than_30_minutes,ESCORT - Pre-school kid - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.ptype == 8) & (df.duration<1)), df.durationShift_escort, 0)",coef_escort_pre_school_kid_duration_greater_than_30_minutes -util_escort_med_high_income_duration_greater_than_30_minutes,ESCORT - Med-high income (60k to 120k) - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.is_income_60K_to_120K) & (df.duration>1)), df.durationShift_escort, 0)",coef_escort_med_high_income_duration_greater_than_30_minutes -util_escort_households_with_no_kids_departure_before_7_30_am,"ESCORT - Households with no kids (Dummy- 1,0) - Departure before 7:30 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start<10)), df.departureLinearShift1_escort, 0)",coef_escort_households_with_no_kids_departure_before_7_30_am -util_escort_households_with_no_kids_departure_after_8_00_am,"ESCORT - Households with no kids (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start>10)), df.departureLinearShift1_escort, 0)",coef_escort_households_with_no_kids_departure_after_8_00_am -util_escort_households_with_no_kids_departure_before_2_30_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Departure before 2:30 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start<24)), df.departureLinearShift2_escort, 0)",coef_escort_households_with_no_kids_departure_before_2_30_pm -util_escort_households_with_no_kids_departure_after_3_00_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Departure after 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.start>24)), df.departureLinearShift2_escort, 0)",coef_escort_households_with_no_kids_departure_after_3_00_pm -util_escort_households_with_no_kids_arrival_before_8_am,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival before 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end<11)), df.arrivalLinearShift1_escort, 0)",coef_escort_households_with_no_kids_arrival_before_8_am -util_escort_households_with_no_kids_arrival_after_8_30_am,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival after 8:30 AM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end>11)), df.arrivalLinearShift1_escort, 0)",coef_escort_households_with_no_kids_arrival_after_8_30_am -util_escort_households_with_no_kids_arrival_before_3_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival before 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end<25)), df.arrivalLinearShift2_escort, 0)",coef_escort_households_with_no_kids_arrival_before_3_pm -util_escort_households_with_no_kids_arrival_after_3_30_pm,"ESCORT - Households with no kids (Dummy- 1,0) - Arrival after 3:30 PM","@np.where(((df.tour_type == 'escort') & (df.num_children == 0) & (df.end>25)), df.arrivalLinearShift2_escort, 0)",coef_escort_households_with_no_kids_arrival_after_3_30_pm -util_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.start>10)), df.departureLinearShift1_escort, 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_8_am -util_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.start>24)), df.departureLinearShift2_escort, 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_departure_after_3_pm -util_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am,"ESCORT -Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival before 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.end<11)), df.arrivalLinearShift1_escort, 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_8_am -util_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm,"ESCORT - Pre-School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival before 3:00 PM","@np.where(((df.tour_type == 'escort') & (df.has_pre_school_child_with_mandatory > 0) & (df.end<25)), df.arrivalLinearShift2_escort, 0)",coef_escort_pre_school_child_in_hh_with_mandatory_tour_arrival_before_3_pm -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Departure after 8:00 AM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.start>10)), df.departureLinearShift1_escort, 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_departure_after_8_am -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival after 8:30 AM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.end>11)), df.arrivalLinearShift1_escort, 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_8_30_am -util_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm,"ESCORT - Driving age School Child in HH with Mandatory tour (Dummy- 1,0) - Arrival after 3:30 PM","@np.where(((df.tour_type == 'escort') & (df.has_driving_age_child_with_mandatory > 0) & (df.end>25)), df.arrivalLinearShift2_escort, 0)",coef_escort_driving_age_school_child_in_hh_with_mandatory_tour_arrival_after_3_30_pm -util_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes,ESCORT - Number of autos greater than number of adults - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.auto_ownership > 0) & (df.auto_ownership > df.num_adults) & (df.duration>1)), df.durationShift_escort, 0)",coef_escort_number_of_autos_greater_than_number_of_adults_duration_greater_than_30_minutes -util_escort_number_of_individual_tours_duration_greater_than_30_minutes,ESCORT -Number of Individual Tours (excluding escorting) - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.num_non_escort_tours > 0) & (df.duration>1)), df.durationShift_escort*df.num_non_escort_tours, 0)",coef_escort_number_of_individual_tours_duration_greater_than_30_minutes -util_escort_number_of_joint_tours_duration_greater_than_30_minutes,ESCORT - Number of joint tours - Duration > 0.5 hr,"@np.where(((df.tour_type == 'escort') & (df.duration>1)), df.durationShift_escort *(df.num_joint_tours), 0)",coef_escort_number_of_joint_tours_duration_greater_than_30_minutes -util_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear,ESCORT - Departure Constant: Shift for every 30 minutes before 06:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.start<8)), df.depConstShift1_escort, 0)",coef_escort_departure_constant_shift_for_every_30_minutes_before_6_30_am_linear -util_escort_departure_constant_before_7_am,ESCORT - Departure Constant: Before 07:00 AM,@((df.tour_type == 'escort') & (df.start<9)),coef_escort_departure_constant_before_7_am -util_escort_departure_constant_7_am_to_7_30_am,ESCORT - Departure Constant: 07:00 AM - 07:30 AM,@((df.tour_type == 'escort') & (df.start==9)),coef_escort_departure_constant_7_am_to_7_30_am -util_escort_departure_constant_7_30_am_to_8_am,ESCORT - Departure Constant: 07:30 AM - 08:00 AM,@((df.tour_type == 'escort') & (df.start==10)),coef_escort_departure_constant_7_30_am_to_8_am -util_escort_departure_constant_8_am_to_8_30_am,ESCORT - Departure Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'escort') & (df.start==11)),coef_escort_departure_constant_8_am_to_8_30_am -util_escort_departure_constant_8_30_am_to_9_am,ESCORT - Departure Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'escort') & (df.start==12)),coef_escort_departure_constant_8_30_am_to_9_am -util_escort_departure_constant_after_9_am,ESCORT - Departure Constant: After 09:00 AM,@((df.tour_type == 'escort') & (df.start>12)),coef_escort_departure_constant_after_9_am -util_escort_departure_constant_1_30_pm_to_2_pm,ESCORT - Departure Constant: 01:30 PM - 02:00 PM,@((df.tour_type == 'escort') & (df.start==22)),coef_escort_departure_constant_1_30_pm_to_2_pm -util_escort_departure_constant_2_pm_to_2_30_pm,ESCORT - Departure Constant: 02:00 PM - 02:30 PM,@((df.tour_type == 'escort') & (df.start==23)),coef_escort_departure_constant_2_pm_to_2_30_pm -util_escort_departure_constant_2_30_pm_to_3_pm,ESCORT - Departure Constant: 02:30 PM - 03:00 PM,@((df.tour_type == 'escort') & (df.start==24)),coef_escort_departure_constant_2_30_pm_to_3_pm -util_escort_departure_constant_3_pm_to_3_30_pm,ESCORT - Departure Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'escort') & (df.start==25)),coef_escort_departure_constant_3_pm_to_3_30_pm -util_escort_departure_constant_after_3_30_pm,ESCORT - Departure Constant: After 03:30 PM,@((df.tour_type == 'escort') & (df.start>25)),coef_escort_departure_constant_after_3_30_pm -util_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear,ESCORT - Departure Constant: Shift for every 30 minutes after 9:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.start>13)), df.depConstShift1_escort, 0)",coef_escort_departure_constant_shift_for_every_30_minutes_after_9_30_am_linear -util_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear,ESCORT - Departure Constant: Shift for every 30 minutes after 4:00 pm - Linear,"@np.where(((df.tour_type == 'escort') & (df.start>26)), df.depConstShift2_escort, 0)",coef_escort_departure_constant_shift_for_every_30_minutes_after_4_pm_linear -util_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear,ESCORT - Arrival Constant: Shift for every 30 minutes before 6:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.end<8)), df.arrConstShift1_escort, 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_before_6_30_am_linear -util_escort_arrival_constant_before_7_am,ESCORT - Arrival Constant: Before 07:00 AM,@((df.tour_type == 'escort') & (df.end<9)),coef_escort_arrival_constant_before_7_am -util_escort_arrival_constant_7_am_to_7_30_am,ESCORT - Arrival Constant: 07:00 AM - 07:30 AM,@((df.tour_type == 'escort') & (df.end==9)),coef_escort_arrival_constant_7_am_to_7_30_am -util_escort_arrival_constant_7_30_am_to_8_am,ESCORT - Arrival Constant: 07:30 AM - 08:00 AM,@((df.tour_type == 'escort') & (df.end==10)),coef_escort_arrival_constant_7_30_am_to_8_am -util_escort_arrival_constant_8_am_to_8_30_am,ESCORT - Arrival Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'escort') & (df.end==11)),coef_escort_arrival_constant_8_am_to_8_30_am -util_escort_arrival_constant_8_30_am_to_9_am,ESCORT - Arrival Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'escort') & (df.end==12)),coef_escort_arrival_constant_8_30_am_to_9_am -util_escort_arrival_constant_after_9_am,ESCORT - Arrival Constant: After 09:00 AM,@((df.tour_type == 'escort') & (df.end>12)),coef_escort_arrival_constant_after_9_am -util_escort_arrival_constant_2_30_pm_to_3_pm,ESCORT - Arrival Constant: 02:30 PM - 03:00 PM,@((df.tour_type == 'escort') & (df.end==24)),coef_escort_arrival_constant_2_30_pm_to_3_pm -util_escort_arrival_constant_3_pm_to_3_30_pm,ESCORT - Arrival Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'escort') & (df.end==25)),coef_escort_arrival_constant_3_pm_to_3_30_pm -util_escort_arrival_constant_3_30_pm_to_4_pm,ESCORT - Arrival Constant: 03:30 PM - 04:00 PM,@((df.tour_type == 'escort') & (df.end==26)),coef_escort_arrival_constant_3_30_pm_to_4_pm -util_escort_arrival_constant_4_pm_to_4_30_pm,ESCORT - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'escort') & (df.end==27)),coef_escort_arrival_constant_4_pm_to_4_30_pm -util_escort_arrival_constant_after_4_30_pm,ESCORT - Arrival Constant: After 04:30 PM,@((df.tour_type == 'escort') & (df.end>27)),coef_escort_arrival_constant_after_4_30_pm -util_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear,ESCORT - Arrival Constant: Shift for every 30 minutes after 9:30 am - Linear,"@np.where(((df.tour_type == 'escort') & (df.end>13)), df.arrConstShift1_escort, 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_after_9_30_am_linear -util_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,ESCORT - Arrival Constant: Shift for every 30 minutes after 5:00 pm - Linear,"@np.where(((df.tour_type == 'escort') & (df.end>28)), df.arrConstShift2_escort, 0)",coef_escort_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear -util_escort_duration_constant_0_hour,ESCORT - Duration Constant: 0 hr,@((df.tour_type == 'escort') & (df.duration==0)),coef_escort_duration_constant_0_hour -util_escort_duration_constant_30_minutes,ESCORT - Duration Constant: 0.5 hr,@((df.tour_type == 'escort') & (df.duration==1)),coef_escort_duration_constant_30_minutes -util_escort_duration_constant_1_hour,ESCORT - Duration Constant: 1 hr,@((df.tour_type == 'escort') & (df.duration==2)),coef_escort_duration_constant_1_hour -util_escort_duration_constant_1_hour_30_minutes,ESCORT - Duration Constant: 1.5hrs,@((df.tour_type == 'escort') & (df.duration==3)),coef_escort_duration_constant_1_hour_30_minutes -util_escort_duration_constant_2_hours,ESCORT - Duration Constant: 2 hrs,@((df.tour_type == 'escort') & (df.duration==4)),coef_escort_duration_constant_2_hours -util_escort_duration_constant_longer_than_2_hours,ESCORT - Duration Constant: Longer than 2 hrs,@((df.tour_type == 'escort') & (df.duration>4)),coef_escort_duration_constant_longer_than_2_hours -util_escort_calibration_constant_duration_1,ESCORT - Calibration Constant - Duration = 1,@((df.tour_type == 'escort') & (df.duration==0)),coef_escort_calibration_constant_duration_1 -util_escort_calibration_constant_duration_2,ESCORT - Calibration Constant - Duration = 2,@(((df.tour_type == 'escort') & df.duration==1)),coef_escort_calibration_constant_duration_2 -util_escort_calibration_constant_departure_9,ESCORT - Calibration Constant - Departure = 9,@((df.tour_type == 'escort') & (df.start==9)),coef_escort_calibration_constant_departure_9 -util_escort_calibration_constant_departure_10,ESCORT - Calibration Constant - Departure = 10,@((df.tour_type == 'escort') & (df.start==10)),coef_escort_calibration_constant_departure_10 -util_escort_calibration_constant_departure_23,ESCORT - Calibration Constant - Departure = 23,@((df.tour_type == 'escort') & (df.start==23)),coef_escort_calibration_constant_departure_23 -util_escort_calibration_constant_departure_24,,@((df.tour_type == 'escort') & (df.start==24)),coef_escort_calibration_constant_departure_24 -#SHOPPING,ESCORT - Calibration Constant - Departure = 24,,#SHOPPING -util_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes,SHOPPING - Driving age student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 6)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_driving_age_student_duration_greater_than_1_hour_30_minutes -util_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes,SHOPPING - Full-time worker: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_full_time_worker_duration_greater_than_1_hour_30_minutes -util_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes,SHOPPING - Non-driving Student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & ((df.ptype == 7)|(df.ptype == 8))), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_non_driving_student_duration_greater_than_1_hour_30_minutes -util_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes,SHOPPING - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_pre_school_child_duration_less_than_1_hour_30_minutes -util_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes,SHOPPING - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shoppping_part_time_worker_duration_less_than_1_hour_30_minutes -util_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes,SHOPPING - Part Time Worker: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_part_time_worker_duration_greater_than_1_hour_30_minutes -util_shopping_retired_duration_less_than_1_hour_30_minutes,SHOPPING - Retired: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_retired_duration_less_than_1_hour_30_minutes -util_shopping_retired_duration_greater_than_1_hour_30_minutes,SHOPPING - Retired: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_retired_duration_greater_than_1_hour_30_minutes -util_shopping_university_student_duration_greater_than_1_hour_30_minutes,SHOPPING - University Student: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_university_student_duration_greater_than_1_hour_30_minutes -util_shopping_female_duration_less_than_1_hour_30_minutes,SHOPPING - Female: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_female_duration_less_than_1_hour_30_minutes -util_shopping_female_duration_greater_than_1_hour_30_minutes,SHOPPING - Female: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_female_duration_greater_than_1_hour_30_minutes -util_shopping_low_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Low Income (<=$25,000): Duration > 1.5 hr","@np.where(((df.tour_type == 'shopping') & (df.is_income_less25K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_low_income_duration_greater_than_1_hour_30_minutes -util_shopping_medium_income_duration_less_than_1_hour_30_minutes,"SHOPPING - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.tour_type == 'shopping') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_income_duration_less_than_1_hour_30_minutes -util_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.tour_type == 'shopping') & (df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes -util_shopping_distance_duration_less_than_1_hour_30_minutes,SHOPPING - Distance: Duration < 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_less_than_1_hour_30_minutes -util_shopping_distance_duration_greater_than_1_hour_30_minutes,SHOPPING - Distance: Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_greater_than_1_hour_30_minutes -util_shopping_time_pressure_duration_greater_than_1_hour_30_minutes,SHOPPING - Time Pressure - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') & (df.duration>2)), np.minimum(df.duration-2,26) *(np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_shopping_time_pressure_duration_greater_than_1_hour_30_minutes -util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes -util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'shopping') &(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes -util_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SHOPPING - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@np.where(((df.tour_type == 'shopping') & (df.start<12)), (np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear -util_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root,SHOPPING - Departure Constant: Shift for every 30 minutes before 08:30 am - Square root,"@np.where(((df.tour_type == 'shopping') & (df.start<12)), (np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0))**0.5, 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_before_8_30_am_square_root -util_shopping_departure_constant_before_9_am,SHOPPING - Departure Constant: Before 09:00 AM,@((df.tour_type == 'shopping') & (df.start<13)),coef_shopping_departure_constant_before_9_am -util_shopping_departure_constant_9_am_to_9_30_am,SHOPPING - Departure Constant: 09:00 AM - 09:30 AM,@((df.tour_type == 'shopping') & (df.start==13)),coef_shopping_departure_constant_9_am_to_9_30_am -util_shopping_departure_constant_9_30_am_to_10_am,SHOPPING - Departure Constant: 09:30 AM - 10:00 AM,@((df.tour_type == 'shopping') & (df.start==14)),coef_shopping_departure_constant_9_30_am_to_10_am -util_shopping_departure_constant_10_am_to_10_30_am,SHOPPING - Departure Constant: 10:00 AM - 10:30 AM,@((df.tour_type == 'shopping') & (df.start==15)),coef_shopping_departure_constant_10_am_to_10_30_am -util_shopping_departure_constant_10_30_am_to_11_00_am,SHOPPING - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'shopping') & (df.start==16)),coef_shopping_departure_constant_10_30_am_to_11_00_am -util_shopping_departure_constant_after_11_am,SHOPPING - Departure Constant: After 11:00 AM,@((df.tour_type == 'shopping') & (df.start>16)),coef_shopping_departure_constant_after_11_am -util_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,SHOPPING - Departure Constant: Shift for every 30 minutes after 11:30 am - Linear,"@np.where(((df.tour_type == 'shopping') & (df.start>17)), (np.where((df.start<12), np.minimum(12-df.start,7),0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear -util_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,SHOPPING - Departure Constant: Shift for every 30 minutes after 11:30 am - Squared,"@np.where(((df.tour_type == 'shopping') & (df.start>17)), ((np.where((df.start<12), np.minimum(12-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)) ** 2), 0)",coef_shopping_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared -util_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear,SHOPPING - Arrival Constant: Shift for every 30 minutes before 12:00 pm - Linear,"@np.where(((df.tour_type == 'shopping') & (df.end<19)), (np.where ((df.end<19), np.minimum(19-df.end,10), 0) + np.where((df.end>38), np.minimum(df.end-38,5), 0)), 0)",coef_shopping_arrival_constant_shift_for_every_30_minutes_before_12_pm_linear -util_shopping_arrival_constant_before_12_30_pm,SHOPPING - Arrival Constant: Before 12:30 PM,@((df.tour_type == 'shopping') & (df.end<20)),coef_shopping_arrival_constant_before_12_30_pm -util_shopping_arrival_constant_12_30_pm_to_3_pm,SHOPPING - Arrival Constant: 12:30 PM - 03:00 PM,@((df.tour_type == 'shopping') & ( df.end>=20) & (df.end<=24)),coef_shopping_arrival_constant_12_30_pm_to_3_pm -util_shopping_arrival_constant_3_pm_to_3_30_pm,SHOPPING - Arrival Constant: 03:00 PM - 03:30 PM,@((df.tour_type == 'shopping') & (df.end==25)),coef_shopping_arrival_constant_3_pm_to_3_30_pm -util_shopping_arrival_constant_3_30_pm_to_4_pm,SHOPPING - Arrival Constant: 03:30 PM - 04:00 PM,@((df.tour_type == 'shopping') & (df.end==26)),coef_shopping_arrival_constant_3_30_pm_to_4_pm -util_shopping_arrival_constant_4_pm_to_4_30_pm,SHOPPING - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'shopping') & (df.end==27)),coef_shopping_arrival_constant_4_pm_to_4_30_pm -util_shopping_arrival_constant_4_30_pm_to_5_pm,SHOPPING - Arrival Constant: 04:30 PM - 05:00 PM,@((df.tour_type == 'shopping') & (df.end==28)),coef_shopping_arrival_constant_4_30_pm_to_5_pm -util_shopping_arrival_constant_5_pm_to_5_30_pm,SHOPPING - Arrival Constant: 05:00 PM - 05:30 PM,@((df.tour_type == 'shopping') & (df.end==29)),coef_shopping_arrival_constant_5_pm_to_5_30_pm -util_shopping_arrival_constant_5_30_pm_to_7_pm,SHOPPING - Arrival Constant: 05:30 PM - 07:00 PM,@((df.tour_type == 'shopping') & (df.end>=30) & (df.end<=32)),coef_shopping_arrival_constant_5_30_pm_to_7_pm -util_shopping_arrival_constant_7_pm_to_9_30_pm,SHOPPING - Arrival Constant: 07:00 PM - 09:30 PM,@((df.tour_type == 'shopping') & (df.end>=33) & (df.end<=37)),coef_shopping_arrival_constant_7_pm_to_9_30_pm -util_shopping_arrival_constant_after_9_30_pm,SHOPPING - Arrival Constant: After 09:30 PM,@((df.tour_type == 'shopping') & (df.end>37)),coef_shopping_arrival_constant_after_9_30_pm -util_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear,SHOPPING - Arrival Constant: Shift for every 30 minutes after 10:00 pm - Linear,"@np.where(((df.tour_type == 'shopping') & (df.end>38)), (np.where((df.end<19), np.minimum(19-df.end,10), 0) + np.where ((df.end>38), np.minimum(df.end-38,5), 0)), 0)",coef_shopping_arrival_constant_shift_for_every_30_minutes_after_10_pm_linear -util_shopping_duration_constant_0_hr,SHOPPING - Duration Constant: 0 hr,@((df.tour_type == 'shopping') & (df.duration==0)),coef_shopping_duration_constant_0_hr -util_shopping_duration_constant_30_minutes,SHOPPING - Duration Constant: 0.5 hr,@((df.tour_type == 'shopping') & (df.duration==1)),coef_shopping_duration_constant_30_minutes -util_shopping_duration_constant_1_hr,SHOPPING - Duration Constant: 1 hr,@((df.tour_type == 'shopping') & (df.duration==2)),coef_shopping_duration_constant_1_hr -util_shopping_duration_constant_1_hour_30_minutes,SHOPPING - Duration Constant: 1.5hrs,@(df.tour_type == 'shopping') & (df.duration==3),coef_shopping_duration_constant_1_hour_30_minutes -util_shopping_duration_constant_2_hrs,SHOPPING - Duration Constant: 2 hrs,@((df.tour_type == 'shopping') & (df.duration==4)),coef_shopping_duration_constant_2_hrs -util_shopping_duration_constant_longer_than_2_hrs,SHOPPING - Duration Constant: Longer than 2 hrs,@((df.tour_type == 'shopping') & (df.duration>4)),coef_shopping_duration_constant_longer_than_2_hrs -util_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear,SHOPPING - Duration Constant: Duration > 2.5 hrs - Linear,"@np.where(((df.tour_type == 'shopping') & (df.duration>5)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,26), 0)), 0)",coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_linear -util_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root,SHOPPING - Duration Constant: Duration > 2.5 hrs - Square root,"@np.where(((df.tour_type == 'shopping') & (df.duration>5)), ((np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,26), 0)) ** 0.5), 0)",coef_shopping_duration_constant_duration_greater_than_2_hr_30_minutes_square_root -util_shopping_calibration_constant_duration_1,SHOPPING - Calibration Constant - Duration = 1,@((df.tour_type == 'shopping') & (df.duration==0)),coef_shopping_calibration_constant_duration_1 -util_shopping_calibration_constant_duration_2,SHOPPING - Calibration Constant - Duration = 2,@((df.tour_type == 'shopping') & (df.duration==1)),coef_shopping_calibration_constant_duration_2 -util_shopping_calibration_constant_duration_3,SHOPPING - Calibration Constant - Duration = 3,@((df.tour_type == 'shopping') & (df.duration==2)),coef_shopping_calibration_constant_duration_3 -#MAINTENANCE,#MAINTENANCE,,#MAINTENANCE -util_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Driving age student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 6)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_driving_age_student_duration_greater_than_1_hour_30_minutes -util_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Full-time worker: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_full_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Non-driving Student: Duration > 1.5 hrs,"@np.where (((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & ((df.ptype == 7)|(df.ptype == 8))), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_non_driving_student_duration_greater_than_1_hour_30_minutes -util_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes,MAINTENANCE - Pre-school Child: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 8)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_pre_school_child_duration_less_than_1_hour_30_minutes -util_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_less_than_1_hour_30_minutes -util_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Part Time Worker: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_part_time_worker_duration_greater_than_1_hour_30_minutes -util_maintenance_retired_duration_less_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.ptype == 1)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_less_than_1_hour_30_minutes -util_maintenance_retired_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Retired: Duration > 1.5 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 5)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_retired_duration_greater_than_1_hour_30_minutes -util_maintenance_university_student_duration_greater_than_1_hour_30_minutes,MAINTENANCE - University Student: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.ptype == 3)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_university_student_duration_greater_than_1_hour_30_minutes -util_maintenance_female_duration_less_than_1_hour_30_minutes,MAINTENANCE - Female: Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_less_than_1_hour_30_minutes -util_maintenance_female_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Female: Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othmaint') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_female_duration_greater_than_1_hour_30_minutes -util_maintenance_low_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Low Income (<=$25,000): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_less25K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_low_income_duration_greater_than_1_hour_30_minutes -util_maintenance_medium_income_duration_less_than_1_hour_30_minutes,"MAINTENANCE - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_income_duration_less_than_1_hour_30_minutes -util_maintenance_medium_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium Income ($25,001 to $60,000): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_25K_to_60K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_income_duration_greater_than_1_hour_30_minutes -util_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes,"MAINTENANCE - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.tour_type == 'othmaint') & (df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_medium_high_income_duration_greater_than_1_hour_30_minutes -util_maintenance_distance_duration_less_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration < 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_less_than_1_hour_30_minutes -util_maintenance_distance_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Distance: Duration > 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_maintenance_distance_duration_greater_than_1_hour_30_minutes -util_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes,Time Pressure - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), np.minimum(df.duration-2,26) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_maintenance_time_pressure_duration_greater_than_1_hour_30_minutes -util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes -util_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,MAINTENANCE - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othmaint')&(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.num_add_shop_maint_tours), 0)",coef_maintenance_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes -util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.start<10)), (np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_linear -util_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root,MAINTENANCE - Departure Constant: Shift for every 30 minutes before 07:30 am - Square Root,"@np.where(((df.tour_type == 'othmaint') & (df.start<10)), ((np.where((df.start<10), np.minimum(10-df.start,7), 0) + (np.where((df.start>17), np.minimum(df.start-17,24), 0)))** 0.5), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_before_7_30_am_square_root -util_maintenance_departure_constant_before_8_am,MAINTENANCE - Departure Constant: Before 08:00 AM,@((df.tour_type == 'othmaint') & (df.start<11)),coef_maintenance_departure_constant_before_8_am -util_maintenance_departure_constant_8_am_to_8_30_am,MAINTENANCE - Departure Constant: 08:00 AM - 08:30 AM,@((df.tour_type == 'othmaint') & (df.start==11)),coef_maintenance_departure_constant_8_am_to_8_30_am -util_maintenance_departure_constant_8_30_am_to_9_00_am,MAINTENANCE - Departure Constant: 08:30 AM - 09:00 AM,@((df.tour_type == 'othmaint') & (df.start==12)),coef_maintenance_departure_constant_8_30_am_to_9_00_am -util_maintenance_departure_constant_9_am_to_9_30_am,MAINTENANCE - Departure Constant: 09:00 AM - 09:30 AM,@((df.tour_type == 'othmaint') & (df.start==13)),coef_maintenance_departure_constant_9_am_to_9_30_am -util_maintenance_departure_constant_9_30_am_to_10_am,MAINTENANCE - Departure Constant: 09:30 AM - 10:00 AM,@((df.tour_type == 'othmaint') & (df.start==14)),coef_maintenance_departure_constant_9_30_am_to_10_am -util_maintenance_departure_constant_10_am_to_10_30_am,MAINTENANCE - Departure Constant: 10:00 AM - 10:30 AM,@((df.tour_type == 'othmaint') & (df.start==15)),coef_maintenance_departure_constant_10_am_to_10_30_am -util_maintenance_departure_constant_10_30_am_to_11_am,MAINTENANCE - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'othmaint') & (df.start==16)),coef_maintenance_departure_constant_10_30_am_to_11_am -util_maintenance_departure_constant_after_11_am,MAINTENANCE - Departure Constant: After 11:00 AM,@((df.tour_type == 'othmaint') & (df.start>16)),coef_maintenance_departure_constant_after_11_am -util_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear,MAINTENANCE - Departure Constant: Shift for every 30 minutes after 11:30 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.start>17)), np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_linear -util_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared,MAINTENANCE - Departure Constant: Shift for every 30 minutes after 11:30 am - Squared,"@np.where(((df.tour_type == 'othmaint') & (df.start>17)), ((np.where((df.start<10), np.minimum(10-df.start,7), 0) + np.where((df.start>17), np.minimum(df.start-17,24), 0)) ** 2), 0)",coef_maintenance_departure_constant_shift_for_every_30_minutes_after_11_30_am_squared -util_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear,MAINTENANCE - Arrival Constant: Shift for every 30 minutes before 10:00 am - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.end<15)), (np.where((df.end<15), np.minimum(15-df.end,9), 0) + np.where((df.end>28), np.minimum(df.end-28,16), 0)), 0)",coef_maintenance_arrival_constant_shift_for_every_30_minutes_before_10_am_linear -util_maintenance_arrival_constant_before_10_30_am,MAINTENANCE - Arrival Constant: Before 10:30 AM,@((df.tour_type == 'othmaint') & (df.end<16)),coef_maintenance_arrival_constant_before_10_30_am -util_maintenance_arrival_constant_10_30_am_to_11_am,MAINTENANCE - Arrival Constant: 10:30 AM - 11:00 AM,@((df.tour_type == 'othmaint') & (df.end==16)),coef_maintenance_arrival_constant_10_30_am_to_11_am -util_maintenance_arrival_constant_11_am_to_11_30_am,MAINTENANCE - Arrival Constant: 11:00 AM - 11:30 AM,@((df.tour_type == 'othmaint') & (df.end==17)),coef_maintenance_arrival_constant_11_am_to_11_30_am -util_maintenance_arrival_constant_11_30_am_to_1_30_pm,MAINTENANCE - Arrival Constant: 11:30 AM - 01:30 PM,@((df.tour_type == 'othmaint') & (df.end>=18) & (df.end<=21)),coef_maintenance_arrival_constant_11_30_am_to_1_30_pm -util_maintenance_arrival_constant_1_30_pm_to_2_30_pm,MAINTENANCE - Arrival Constant: 01:30 PM - 02:30 PM,@((df.tour_type == 'othmaint') & (df.end>=22) & (df.end<=23)),coef_maintenance_arrival_constant_1_30_pm_to_2_30_pm -util_maintenance_arrival_constant_2_30_pm_to_4_pm,MAINTENANCE - Arrival Constant: 02:30 PM - 04:00 PM,@((df.tour_type == 'othmaint') & (df.end>=24) & (df.end<=26)),coef_maintenance_arrival_constant_2_30_pm_to_4_pm -util_maintenance_arrival_constant_4_pm_to_4_30_pm,MAINTENANCE - Arrival Constant: 04:00 PM - 04:30 PM,@((df.tour_type == 'othmaint') & (df.end==27)),coef_maintenance_arrival_constant_4_pm_to_4_30_pm -util_maintenance_arrival_constant_after_4_30_pm,MAINTENANCE - Arrival Constant: After 04:30 PM,@((df.tour_type == 'othmaint') & (df.end>27)),coef_maintenance_arrival_constant_after_4_30_pm -util_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear,MAINTENANCE - Arrival Constant: Shift for every 30 minutes after 5:00 pm - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.end>28)), (np.where((df.end<15), np.minimum(15-df.end,9), 0) + np.where((df.end>28), np.minimum(df.end-28,16), 0)), 0)",coef_maintenance_arrival_constant_shift_for_every_30_minutes_after_5_pm_linear -util_maintenance_duration_constant_0_hr,MAINTENANCE - Duration Constant: 0 hr,@((df.tour_type == 'othmaint') & (df.duration==0)),coef_maintenance_duration_constant_0_hr -util_maintenance_duration_constant_30_minutes,MAINTENANCE - Duration Constant: 0.5 hr,@((df.tour_type == 'othmaint') & (df.duration==1)),coef_maintenance_duration_constant_30_minutes -util_maintenance_duration_constant_longer_than_30_minutes,MAINTENANCE - Duration Constant: Longer than 0.5 hr,@((df.tour_type == 'othmaint') & (df.duration>1)),coef_maintenance_duration_constant_longer_than_30_minutes -util_maintenance_duration_constant_duration_greater_than_1_hr_linear,MAINTENANCE - Duration Constant: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_maintenance_duration_constant_duration_greater_than_1_hr_linear -util_maintenance_duration_constant_duration_greater_than_1_hr_square_root,MAINTENANCE - Duration Constant: Duration > 1 hr - Square Root,"@np.where(((df.tour_type == 'othmaint') & (df.duration>2)), ((np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0))** 0.5), 0)",coef_maintenance_duration_constant_duration_greater_than_1_hr_square_root -util_maintenance_calibration_constant_duration_1,MAINTENANCE - Calibration Constant - Duration = 1,@((df.tour_type == 'othmaint') & (df.duration==0)),coef_maintenance_calibration_constant_duration_1 -util_maintenance_calibration_constant_duration_2,MAINTENANCE - Calibration Constant - Duration = 2,@((df.tour_type == 'othmaint') & (df.duration==1)),coef_maintenance_calibration_constant_duration_2 -util_maintenance_calibration_constant_duration_3,MAINTENANCE - Calibration Constant - Duration = 3,@((df.tour_type == 'othmaint') & (df.duration==2)),coef_maintenance_calibration_constant_duration_3 -util_maintenance_calibration_constant_duration_4,MAINTENANCE - Calibration Constant - Duration = 4,@((df.tour_type == 'othmaint') & (df.duration==3)),coef_maintenance_calibration_constant_duration_4 -util_maintenance_calibration_constant_duration_5,MAINTENANCE - Calibration Constant - Duration = 5,@((df.tour_type == 'othmaint') & (df.duration==4)),coef_maintenance_calibration_constant_duration_5 -#EAT-OUT,#EAT-OUT,,#EAT-OUT -util_eatout_distance_to_destination_duration_less_than_1_hr,EAT-OUT - Distance to destination - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)) * (df.origin_to_destination_distance), 0)",coef_eatout_distance_to_destination_duration_less_than_1_hr -util_eatout_distance_to_destination_duration_greater_than_1_hr,EAT-OUT - Distance to destination - Duration > 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)) *(df.origin_to_destination_distance), 0)",coef_eatout_distance_to_destination_duration_greater_than_1_hr -util_eatout_low_income_duration_less_than_1_hr,EAT-OUT - Low income (<25000) - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.is_income_less25K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_low_income_duration_less_than_1_hr -util_eatout_medium_income_duration_less_than_1_hr,EAT-OUT - Medium (25k to 60k) - Duration < 1 hr,"@np.where(((df.tour_type == 'eatout') & (df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_medium_income_duration_less_than_1_hr -util_eatout_zeroauto_HH_duration_greater_than_1_hr,EAT-OUT - Zero auto HH - Duration > 1 hrs,"@np.where(((df.tour_type == 'eatout') & (df.auto_ownership == 0) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_zeroauto_HH_duration_greater_than_1_hr -util_eatout_university_student_departure_after_7_pm_linear,EAT-OUT - University student - Departure after 7:00 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.start>32) & (df.ptype == 3)), (np.where((df.start<=32), np.minimum(32-df.start,29), 0) + np.where((df.start>32), np.minimum(df.start-32,8), 0)), 0)",coef_eatout_university_student_departure_after_7_pm_linear -util_eatout_female_duration_less_than_1_hr,EAT-OUT - Female - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration<2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_less_than_1_hr -util_eatout_female_duration_greater_than_1_hr,EAT-OUT - Female - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>2) & (df.female)), (np.where((df.duration<=2), np.minimum(2-df.duration,47), 0) + np.where((df.duration>2), np.minimum(df.duration-2,14), 0)), 0)",coef_eatout_female_duration_greater_than_1_hr -util_eatout_time_pressure_departure_before_6_30_pm,EAT-OUT - Time Pressure - Departure before 6:30 pm,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<32)), (np.minimum(32-df.start,29)) * (np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_departure_before_6_30_pm -util_eatout_time_pressure_duration_less_than_1_hr,EAT-OUT - Time Pressure - Duration < 1 hrs,"@np.where(((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.duration<2)), np.minimum(2-df.duration,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_eatout_time_pressure_duration_less_than_1_hr -util_eatout_departure_constant_7_30_am_to_9_am,EAT-OUT - Departure Constant: 07:30 AM - 09:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>=10) & (df.start<=12)),coef_eatout_departure_constant_7_30_am_to_9_am -util_eatout_departure_constant_10_30_am_to_11_am,EAT-OUT - Departure Constant: 10:30 AM - 11:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==16)),coef_eatout_departure_constant_10_30_am_to_11_am -util_eatout_departure_constant_11_am_to_11_30_am,EAT-OUT - Departure Constant: 11:00 AM - 11:30 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==17)),coef_eatout_departure_constant_11_am_to_11_30_am -util_eatout_departure_constant_11_30_am_to_12_pm,EAT-OUT - Departure Constant: 11:30 AM - 12:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==18)),coef_eatout_departure_constant_11_30_am_to_12_pm -util_eatout_departure_constant_12_pm_to_12_30_pm,EAT-OUT - Departure Constant: 12:00 PM - 12:30 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.start==19)),coef_eatout_departure_constant_12_pm_to_12_30_pm -util_eatout_departure_constant_12_30_pm_to_1_pm,EAT-OUT - Departure Constant: 12:30 PM - 01:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==20)),coef_eatout_departure_constant_12_30_pm_to_1_pm -util_eatout_departure_constant_1_pm_to_1_30_pm,EAT-OUT - Departure Constant: 01:00 PM - 01:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==21)),coef_eatout_departure_constant_1_pm_to_1_30_pm -util_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear,EAT-OUT - Departure Constant: Shift for every 30 minutes before 05:30 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<31)), (np.where((df.start<30), np.minimum(30-df.start,27), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_eatout_departure_constant_shift_for_every_30_minutes_before_5_30_pm_linear -util_eatout_departure_constant_before_6_pm,EAT-OUT - Departure Constant: Before 06:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start<31)),coef_eatout_departure_constant_before_6_pm -util_eatout_departure_constant_6_pm_to_6_30_pm,EAT-OUT - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==31)),coef_eatout_departure_constant_6_pm_to_6_30_pm -util_eatout_departure_constant_6_30_pm_to_7_pm,EAT-OUT - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==32)),coef_eatout_departure_constant_6_30_pm_to_7_pm -util_eatout_departure_constant_7_pm_to_7_30_pm,EAT-OUT - Departure Constant: 07:00 PM - 07:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start==33)),coef_eatout_departure_constant_7_pm_to_7_30_pm -util_eatout_departure_constant_after_7_30_pm,EAT-OUT - Departure Constant: After 07:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>33)),coef_eatout_departure_constant_after_7_30_pm -util_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,EAT-OUT - Departure Constant: Shift for every 30 minutes after 08:00 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.start>34)), (np.where((df.start<30), np.minimum(30-df.start,27), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_eatout_departure_constant_shift_for_every_30_minutes_after_8_pm_linear -util_eatout_arrival_constant_9_30_am_to_11_am,EAT-OUT - Arrival Constant: 9:30 AM to 11:00 AM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end>=14) & (df.end<=16)),coef_eatout_arrival_constant_9_30_am_to_11_am -util_eatout_arrival_constant_12_30_pm_to_1_pm,EAT-OUT - Arrival Constant: 12:30 PM to 01:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==20)),coef_eatout_arrival_constant_12_30_pm_to_1_pm -util_eatout_arrival_constant_1_pm_to_1_30_pm,EAT-OUT - Arrival Constant: 01:00 PM to 01:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==21)),coef_eatout_arrival_constant_1_pm_to_1_30_pm -util_eatout_arrival_constant_1_30_pm_to_2_pm,EAT-OUT - Arrival Constant: 01:30 PM to 02:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==22)),coef_eatout_arrival_constant_1_30_pm_to_2_pm -util_eatout_arrival_constant_2_pm_to_2_30_pm,EAT-OUT - Arrival Constant: 02:00 PM to 02:30 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==23)),coef_eatout_arrival_constant_2_pm_to_2_30_pm -util_eatout_arrival_constant_2_30_pm_to_3_pm,EAT-OUT - Arrival Constant: 02:30 PM to 03:00 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.end==24)),coef_eatout_arrival_constant_2_30_pm_to_3_pm -util_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,EAT-OUT - Arrival Constant: Shift for every 30 minutes before 06:00 pm - Linear,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end<31)),coef_eatout_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear -util_eatout_arrival_constant_before_6_30_pm,EAT-OUT - Arrival Constant: Before 6:30 PM,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end<32)), (np.where((df.end<31), np.minimum(31-df.end,24), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_eatout_arrival_constant_before_6_30_pm -util_eatout_arrival_constant_6_30_pm_to_7_pm,EAT-OUT - Arrival Constant: 6:30 PM to 7:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==32)),coef_eatout_arrival_constant_6_30_pm_to_7_pm -util_eatout_arrival_constant_7_pm_to_7_30_pm,EAT-OUT - Arrival Constant: 7:00 PM to 7:30 PM,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.end==33)),coef_eatout_arrival_constant_7_pm_to_7_30_pm -util_eatout_arrival_constant_7_30_pm_to_8_pm,EAT-OUT - Arrival Constant: 7:30 PM to 8:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==34)),coef_eatout_arrival_constant_7_30_pm_to_8_pm -util_eatout_arrival_constant_8_pm_to_8_30_pm,EAT-OUT - Arrival Constant: 8:00 PM to 8:30 PM,@((df.tour_category != 'joint') &(df.tour_type == 'eatout') & (df.end==35)),coef_eatout_arrival_constant_8_pm_to_8_30_pm -util_eatout_arrival_constant_8_30_pm_to_9_pm,EAT-OUT - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end==36)),coef_eatout_arrival_constant_8_30_pm_to_9_pm -util_eatout_arrival_constant_after_9_pm,EAT-OUT - Arrival Constant: After 9:00 PM,@((df.tour_category != 'joint')& (df.tour_type == 'eatout') & (df.end>36)),coef_eatout_arrival_constant_after_9_pm -util_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,EAT-OUT - Arrival Constant: Shift for every 30 minutes after 09:30 pm - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.end>37)), (np.where((df.end<31), np.minimum(31-df.end,24), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_eatout_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear -util_eatout_duration_constant_0_hour,EAT-OUT - Duration Constant: 0 hour,@((df.tour_category != 'joint') & (df.tour_type== 'eatout') & (df.duration==0)),coef_eatout_duration_constant_0_hour -util_eatout_duration_constant_30_minutes,EAT-OUT - Duration Constant: 0.5 hour,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==1)),coef_eatout_duration_constant_30_minutes -util_eatout_duration_constant_1_hour,EAT-OUT - Duration Constant: 1 hour,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==2)),coef_eatout_duration_constant_1_hour -util_eatout_duration_constant_1_hour_30_minutes,EAT-OUT - Duration Constant: 1.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration==3)),coef_eatout_duration_constant_1_hour_30_minutes -util_eatout_duration_constant_2_hours,EAT-OUT - Duration Constant: 2 hours,@((df.tour_category != 'joint')& (df.tour_type == 'eatout') & (df.duration==4)),coef_eatout_duration_constant_2_hours -util_eatout_duration_constant_2_hour_30_minutes_or_more,EAT-OUT - Duration Constant: 2.5 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>4)),coef_eatout_duration_constant_2_hour_30_minutes_or_more -util_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,EAT-OUT - Duration Constant: Shift for every 30 minutes more than 3 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'eatout') & (df.duration>5)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>5), np.minimum(df.duration-5,11), 0)), 0)",coef_eatout_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear -util_eatout_calibration_constant_duration_1,EAT-OUT - Calibration Constant - Duration = 1,@((df.tour_type == 'eatout') & (df.duration==0)),coef_eatout_calibration_constant_duration_1 -util_eatout_calibration_constant_duration_2,EAT-OUT - Calibration Constant - Duration = 2,@((df.tour_type == 'eatout') & (df.duration==1)),coef_eatout_calibration_constant_duration_2 -util_eatout_calibration_constant_duration_3,EAT-OUT - Calibration Constant - Duration = 3,@((df.tour_type== 'eatout') & (df.duration==2)),coef_eatout_calibration_constant_duration_3 -util_eatout_calibration_constant_duration_4,EAT-OUT - Calibration Constant - Duration = 4,@((df.tour_type == 'eatout') & (df.duration==3)),coef_eatout_calibration_constant_duration_4 -util_eatout_calibration_constant_departure_1,EAT-OUT - Calibration Constant - Departure = 1,@((df.tour_type == 'eatout') & (df.start == 1)),coef_eatout_calibration_constant_departure_1 -util_eatout_calibration_constant_departure_2,EAT-OUT - Calibration Constant - Departure = 2,@((df.tour_type == 'eatout') & (df.start == 2)),coef_eatout_calibration_constant_departure_2 -util_eatout_calibration_constant_departure_3,EAT-OUT - Calibration Constant - Departure = 3,@((df.tour_type== 'eatout') & (df.start == 3)),coef_eatout_calibration_constant_departure_3 -util_eatout_calibration_constant_departure_17,EAT-OUT - Calibration Constant - Departure = 17,@((df.tour_type == 'eatout') & (df.start ==17)),coef_eatout_calibration_constant_departure_17 -util_eatout_calibration_constant_departure_18,EAT-OUT - Calibration Constant - Departure = 18,@((df.tour_type== 'eatout') & (df.start ==18)),coef_eatout_calibration_constant_departure_18 -util_eatout_calibration_constant_departure_19,EAT-OUT - Calibration Constant - Departure = 19,@((df.tour_type == 'eatout') & (df.start ==19)),coef_eatout_calibration_constant_departure_19 -util_eatout_calibration_constant_departure_20,EAT-OUT - Calibration Constant - Departure = 20,@((df.tour_type == 'eatout') & (df.start ==20)),coef_eatout_calibration_constant_departure_20 -util_eatout_calibration_constant_departure_21,EAT-OUT - Calibration Constant - Departure = 21,@((df.tour_type == 'eatout') & (df.start ==21)),coef_eatout_calibration_constant_departure_21 -#SOCIAL,#SOCIAL,,#SOCIAL -util_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Person< 18 years old: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear -util_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Person< 18 years old: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear -util_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Non-working senior/ retiree: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3) & (df.ptype == 5)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_non_working_senior_or_retiree_duration_less_than_1_hr_30_minutes_linear -util_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Retiree/ Non-working senior only HH: Duration < 1.5 hrs - Linear,"@np.where(((df.retired_adults_only_hh) & (df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_retiree_or_non_working_senior_only_HH_duration_less_than_1_hr_30_minutes_linear -util_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Zero auto households: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership == 0) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_zero_auto_households_duration_less_than_1_hr_30_minutes_linear -util_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Zero auto households: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership == 0) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0)",coef_social_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear -util_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,SOCIAL - Number of auto more than number of adults: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership > 0) &(df.auto_ownership > df.num_adults) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear -util_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,SOCIAL - Number of auto more than number of adults: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_type == 'social') & (df.auto_ownership > 0) & (df.auto_ownership > df.num_adults) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear -"# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, -util_social_auto_distance_duration_less_than_1_hr_linear,SOCIAL - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)), 0) * (df.origin_to_destination_distance)",coef_social_auto_distance_duration_less_than_1_hr_linear -util_social_auto_distance_duration_greater_than_1_hr_linear,SOCIAL - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'social') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0) * (df.origin_to_destination_distance) ",coef_social_auto_distance_duration_greater_than_1_hr_linear -util_social_time_pressure_duration_less_than_1_hr,SOCIAL - Time Pressure - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3)), np.minimum(3-df.duration,47), 0)* (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_less_than_1_hr -util_social_time_pressure_duration_greater_than_1_hr,SOCIAL - Time Pressure - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>3)), np.minimum(df.duration-3,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_greater_than_1_hr -util_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,SOCIAL - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.num_add_soc_discr_tours), 0)",coef_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr -util_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@(df.tour_type == 'social') & (df.start<12) * ((np.minimum(12-df.start,48)*(df.start<48)) + (np.minimum(df.start-48,48)*(df.start>48)))",coef_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear -util_social_departure_constant_before_9_am,SOCIAL - Departure Constant: Before 09:00 AM,@(df.tour_type == 'social') & (df.start<13),coef_social_departure_constant_before_9_am -util_social_departure_constant_9_am_to_9_30_am,SOCIAL - Departure Constant: 09:00 AM to 09:30 AM,@(df.tour_type == 'social') & (df.start==13),coef_social_departure_constant_9_am_to_9_30_am -util_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 05:00 pm - Linear,"@np.where((df.start<29), (np.where((df.start<29), np.minimum(29-df.start,8), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_social_departure_constant_shift_for_every_30_minutes_before_5_pm_linear -util_social_departure_constant_before_5_30_pm,SOCIAL - Departure Constant: Before 05:30 PM,@((df.tour_type == 'social') & (df.start<30)),coef_social_departure_constant_before_5_30_pm -util_social_departure_constant_5_30_pm_to_6_pm,SOCIAL - Departure Constant: 05:30 PM - 06:00 PM,@((df.tour_type == 'social') & (df.start==30)),coef_social_departure_constant_5_30_pm_to_6_pm -util_social_departure_constant_6_pm_to_6_30_pm,SOCIAL - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_type == 'social') & (df.start==31)),coef_social_departure_constant_6_pm_to_6_30_pm -util_social_departure_constant_6_30_pm_to_7_pm,SOCIAL - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_type == 'social') & (df.start==32)),coef_social_departure_constant_6_30_pm_to_7_pm -util_social_departure_constant_7_pm_to_7_30_pm,SOCIAL - Departure Constant: 07:00 PM - 07:30 PM,@((df.tour_type == 'social') & (df.start==33)),coef_social_departure_constant_7_pm_to_7_30_pm -util_social_departure_constant_after_7_30_pm,SOCIAL - Departure Constant: After 07:30 PM,@((df.tour_type == 'social') & (df.start>33)),coef_social_departure_constant_after_7_30_pm -util_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear,SOCIAL - Departure Constant: Shift for every 30 minutes after 08:00 pm - Linear,"@np.where((df.start>34), (np.where((df.start<29), np.minimum(29-df.start,8), 0) + np.where((df.start>34), np.minimum(df.start-34,6), 0)), 0)",coef_social_departure_constant_shift_for_every_30_minutes_after_8_pm_linear -util_social_arrival_constant_3_pm_to_3_30_pm,SOCIAL - Arrival Constant: 03:00 PM to 03:30 PM,@((df.tour_type == 'social') & (df.end==25)),coef_social_arrival_constant_3_pm_to_3_30_pm -util_social_arrival_constant_3_30_pm_to_4_pm,SOCIAL - Arrival Constant: 03:30 PM to 04:00 PM,@((df.tour_type == 'social') & (df.end==26)),coef_social_arrival_constant_3_30_pm_to_4_pm -util_social_arrival_constant_4_pm_to_4_30_pm,SOCIAL - Arrival Constant: 04:00 PM to 04:30 PM,@((df.tour_type == 'social') & (df.end==27)),coef_social_arrival_constant_4_pm_to_4_30_pm -util_social_arrival_constant_5_pm_to_6_pm,SOCIAL - Arrival Constant: 05:00 PM to 06:00 PM,@((df.tour_type == 'social') & (df.end>=29) & (df.end<=30)),coef_social_arrival_constant_5_pm_to_6_pm -util_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear,SOCIAL - Arrival Constant: Shift for every 30 minutes before 08:00 pm - Linear,"@np.where(((df.tour_type == 'social') & (df.end<35)), (np.where((df.end<35), np.minimum(35-df.end,48), 0) + np.where((df.end>40), np.minimum(df.end-40,48), 0)), 0)",coef_social_arrival_constant_shift_for_every_30_minutes_before_8_pm_linear -util_social_arrival_constant_before_8_30_pm,SOCIAL - Arrival Constant: Before 8:30 PM,@((df.tour_type == 'social') & (df.end<36)),coef_social_arrival_constant_before_8_30_pm -util_social_arrival_constant_8_30_pm_to_9_pm,SOCIAL - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_type == 'social') & (df.end==36)),coef_social_arrival_constant_8_30_pm_to_9_pm -util_social_arrival_constant_9_pm_to_9_30_pm,SOCIAL - Arrival Constant: 9:00 PM to 9:30 PM,@((df.tour_type == 'social') & (df.end==37)),coef_social_arrival_constant_9_pm_to_9_30_pm -util_social_arrival_constant_9_30_pm_to_10_pm,SOCIAL - Arrival Constant: 9:30 PM to10:00 PM,@((df.tour_type == 'social') & (df.end==38)),coef_social_arrival_constant_9_30_pm_to_10_pm -util_social_arrival_constant_10_pm_to_10_30_pm,SOCIAL - Arrival Constant: 10:00 PM to 10:30 PM,@((df.tour_type == 'social') & (df.end==39)),coef_social_arrival_constant_10_pm_to_10_30_pm -util_social_arrival_constant_after_10_30_pm,SOCIAL - Arrival Constant: After 10:30 PM,@((df.tour_type == 'social') & (df.end>39)),coef_social_arrival_constant_after_10_30_pm -util_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear,SOCIAL - Arrival Constant: Shift for every 30 minutes after 11:00 pm - Linear,"@np.where(((df.tour_type == 'social') & (df.end>40)), (np.where((df.end<35), np.minimum(35-df.end,48), 0) +np.where((df.end>40),np.minimum(df.end-40,48),0)), 0)",coef_social_arrival_constant_shift_for_every_30_minutes_after_11_pm_linear -util_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear,SOCIAL - Duration Constant: Shift for every 30 minutes less than 2.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<5)), (np.where((df.duration<5), np.minimum(5-df.duration,47), 0) + np.where((df.duration>7), np.minimum(df.duration-7,47), 0)), 0)",coef_social_duration_constant_shift_for_every_30_minutes_less_than_2_hr_30_minutes_linear -util_social_duration_constant_less_than_3_hours,SOCIAL - Duration Constant: Less than 3 hrs,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration<6)),coef_social_duration_constant_less_than_3_hours -util_social_duration_constant_3_hours,SOCIAL - Duration Constant: 3 hours,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration==6)),coef_social_duration_constant_3_hours -util_social_duration_constant_3_hrs_30_minutes,SOCIAL - Duration Constant: 3.5 hours,@((df.tour_category != 'joint')& (df.tour_type == 'social') & (df.duration==7)),coef_social_duration_constant_3_hrs_30_minutes -util_social_duration_constant_4_hours_or_more,SOCIAL - Duration Constant: 4 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>7)),coef_social_duration_constant_4_hours_or_more -util_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear,SOCIAL - Duration Constant: Shift for every 30 minutes more than 4.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'social') & (df.duration>8)), (np.where((df.duration<5), np.minimum(5-df.duration,47), 0) + np.where((df.duration>8), np.minimum(df.duration-8,47), 0)), 0)",coef_social_duration_constant_shift_for_every_30_minutes_more_than_4_hr_30_minutes_linear -util_social_calibration_constant_duration_1,SOCIAL - Calibration Constant - Duration = 1,@((df.tour_type == 'social') & (df.duration ==0)),coef_social_calibration_constant_duration_1 -util_social_calibration_constant_duration_2,SOCIAL - Calibration Constant - Duration = 2,@((df.tour_type == 'social') & (df.duration == 1)),coef_social_calibration_constant_duration_2 -util_social_calibration_constant_duration_3,SOCIAL - Calibration Constant - Duration = 3,@((df.tour_type == 'social') & (df.duration ==2)),coef_social_calibration_constant_duration_3 -util_social_calibration_constant_duration_4,SOCIAL - Calibration Constant - Duration = 4,@((df.tour_type == 'social') & (df.duration ==3)),coef_social_calibration_constant_duration_4 -util_social_calibration_constant_duration_5,SOCIAL - Calibration Constant - Duration = 5,@((df.tour_type == 'social') & (df.duration ==4)),coef_social_calibration_constant_duration_5 -util_social_calibration_constant_duration_6,SOCIAL - Calibration Constant - Duration = 6,@((df.tour_type == 'social') & (df.duration ==5)),coef_social_calibration_constant_duration_6 -util_social_calibration_constant_duration_7,SOCIAL - Calibration Constant - Duration = 7,@((df.tour_type == 'social') & (df.duration ==6)),coef_social_calibration_constant_duration_7 -util_social_calibration_constant_duration_8,SOCIAL - Calibration Constant - Duration = 8,@((df.tour_type == 'social') & (df.duration ==7)),coef_social_calibration_constant_duration_8 -util_social_calibration_constant_duration_9,SOCIAL - Calibration Constant - Duration = 9,@((df.tour_type == 'social') & (df.duration ==8)),coef_social_calibration_constant_duration_9 -#DISCRETIONARY,#DISCRETIONARY,,#DISCRETIONARY -util_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Person< 18 years old: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_person_less_than_18_years_old_duration_less_than_1_hr_30_minutes_linear -util_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Person< 18 years old: Duration > 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>3) & (df.age<18)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_person_less_than_18_years_old_duration_greater_than_1_hr_30_minutes_linear -util_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Non-working senior/ retiree: Duration < 1.5 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3) & (df.ptype == 5)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_non_working_senior_retiree_duration_less_than_1_hr_30_minutes_linear -util_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear,DISCRETIONARY - Retiree/ Non-working senior only HH: Duration < 1.5 hrs - Linear,"@np.where(((df.retired_adults_only_hh) & (df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_retiree_non_working_senior_only_HH_duration_1_hr_30_minutes_linear -util_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Zero auto households: Duration < 1.5 hrs - Linear,"@np.where(((df.auto_ownership == 0) & (df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_zero_auto_households_duration_less_than_1_hr_30_minutes_linear -util_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Zero auto households: Duration > 1.5 hrs - Linear,"@np.where(((df.auto_ownership == 0) & (df.tour_type == 'othdiscr') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_zero_auto_households_duration_greater_than_1_hr_30_minutes_linear -util_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear,DISCRETIONARY - Number of auto more that number of adults: Duration < 1.5 hrs - Linear,"@np.where(((df.auto_ownership > 0) & (df.tour_type == 'othdiscr') & (df.auto_ownership > df.num_adults) & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)),0)",coef_discretionary_number_of_auto_more_than_number_of_adults_duration_less_than_1_hr_30_minutes_linear -util_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear,DISCRETIONARY - Number of auto more that number of adults: Duration > 1.5 hrs - Linear,"@np.where(((df.auto_ownership > 0) &(df.tour_type == 'othdiscr')&(df.auto_ownership > df.num_adults) & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)), 0)",coef_discretionary_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr_30_minutes_linear -"# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, -util_discretionary_auto_distance_duration_less_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_less_than_1_hr_linear -util_discretionary_auto_distance_duration_greater_than_1_hr_linear,DISCRETIONARY - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_discretionary_auto_distance_duration_greater_than_1_hr_linear -util_discretionary_time_pressure_duration_less_than_1_hr,DISCRETIONARY - Time Pressure - Duration < 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration<3)), np.minimum(3-df.duration,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_discretionary_time_pressure_duration_less_than_1_hr -util_discretionary_time_pressure_duration_greater_than_1_hr,DISCRETIONARY - Time Pressure - Duration > 1 hr,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>3)), np.minimum(df.duration-3,47) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_discretionary_time_pressure_duration_greater_than_1_hr -util_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,DISCRETIONARY - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.tour_category != 'joint')&(df.tour_type == 'othdiscr') & (df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3), np.minimum(df.duration-3,47), 0))*(df.num_add_soc_discr_tours),0)",coef_discretionary_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr -util_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 07:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start<9)), (np.where((df.start<9), np.minimum(9-df.start,48), 0) + np.where((df.start>48), np.minimum(df.start-48,48),0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_7_30_pm_linear -util_discretionary_departure_constant_before_7_30_am,DISCRETIONARY - Departure Constant: Before 7:30 AM ,@((df.tour_type == 'othdiscr') & (df.start<10)),coef_discretionary_departure_constant_before_7_30_am -util_discretionary_departure_constant_7_30_am_to_8_am,DISCRETIONARY - Departure Constant: 7:30 AM to 8:00 AM,@((df.tour_type == 'othdiscr') & (df.start==10)),coef_discretionary_departure_constant_7_30_am_to_8_am -util_discretionary_departure_constant_8_am_to_8_30_am,DISCRETIONARY - Departure Constant: 8:00 AM to 8:30 AM,@((df.tour_type == 'othdiscr') & (df.start==11)),coef_discretionary_departure_constant_8_am_to_8_30_am -util_discretionary_departure_constant_8_30_am_to_9_am,DISCRETIONARY - Departure Constant: 8:30 AM to 9:00 AM,@((df.tour_type == 'othdiscr') & (df.start==12)),coef_discretionary_departure_constant_8_30_am_to_9_am -util_discretionary_departure_constant_9_am_to_9_30_am,DISCRETIONARY - Departure Constant: 9:00 AM to 9:30 AM,@((df.tour_type == 'othdiscr') & (df.start==13)),coef_discretionary_departure_constant_9_am_to_9_30_am -util_discretionary_departure_constant_9_30_am_to_10_am,DISCRETIONARY - Departure Constant: 9:30 AM to 10:00 AM,@((df.tour_type == 'othdiscr') & (df.start==14)),coef_discretionary_departure_constant_9_30_am_to_10_am -util_discretionary_departure_constant_10_am_to_10_30_am,DISCRETIONARY - Departure Constant: 10:00 AM to 10:30 AM,@((df.tour_type == 'othdiscr') & (df.start==15)),coef_discretionary_departure_constant_10_am_to_10_30_am -util_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes before 04:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start<28)), (np.where((df.start<28), np.minimum(28-df.start,8),0) + np.where((df.start>33), np.minimum(df.start-33,6), 0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_before_4_30_pm_linear -util_discretionary_departure_constant_before_5_pm,DISCRETIONARY - Departure Constant: Before 05:00 PM,@((df.tour_type == 'othdiscr') & (df.start<29)),coef_discretionary_departure_constant_before_5_pm -util_discretionary_departure_constant_5_pm_to_5_30_pm,DISCRETIONARY - Departure Constant: 05:00 PM - 05:30 PM,@((df.tour_type == 'othdiscr') & (df.start==29)),coef_discretionary_departure_constant_5_pm_to_5_30_pm -util_discretionary_departure_constant_5_30_pm_to_6_pm,DISCRETIONARY - Departure Constant: 05:30 PM - 06:00 PM,@((df.tour_type == 'othdiscr') & (df.start==30)),coef_discretionary_departure_constant_5_30_pm_to_6_pm -util_discretionary_departure_constant_6_pm_to_6_30_pm,DISCRETIONARY - Departure Constant: 06:00 PM - 06:30 PM,@((df.tour_type == 'othdiscr') & (df.start==31)),coef_discretionary_departure_constant_6_pm_to_6_30_pm -util_discretionary_departure_constant_6_30_pm_to_7_pm,DISCRETIONARY - Departure Constant: 06:30 PM - 07:00 PM,@((df.tour_type == 'othdiscr') & (df.start==32)),coef_discretionary_departure_constant_6_30_pm_to_7_pm -util_discretionary_departure_constant_after_7_pm,DISCRETIONARY - Departure Constant: After 07:00 PM,@((df.tour_type == 'othdiscr') & (df.start>32)),coef_discretionary_departure_constant_after_7_pm -util_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear,DISCRETIONARY - Departure Constant: Shift for every 30 minutes after 07:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.start>33)), (np.where((df.start<28), np.minimum(28-df.start,8), 0) + np.where((df.start>33), np.minimum(df.start-33,6), 0)), 0)",coef_discretionary_departure_constant_shift_for_every_30_minutes_after_7_30_pm_linear -util_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear,DISCRETIONARY - Arrival Constant: Shift for every 30 minutes before 06:00 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.end<31)), (np.where((df.end<31), np.minimum(31-df.end,48), 0) + np.where((df.end>37), np.minimum(df.end-37,48), 0)), 0)",coef_discretionary_arrival_constant_shift_for_every_30_minutes_before_6_pm_linear -util_discretionary_arrival_constant_before_6_30_pm,DISCRETIONARY - Arrival Constant: Before 6:30 PM,@((df.tour_type == 'othdiscr') & (df.end<32)),coef_discretionary_arrival_constant_before_6_30_pm -util_discretionary_arrival_constant_6_30_pm_to_7_pm,DISCRETIONARY - Arrival Constant: 6:30 PM to 7:00 PM,@((df.tour_type == 'othdiscr') & (df.end==32)),coef_discretionary_arrival_constant_6_30_pm_to_7_pm -util_discretionary_arrival_constant_7_pm_to_7_30_pm,DISCRETIONARY - Arrival Constant: 7:00 PM to 7:30 PM,@((df.tour_type == 'othdiscr') & (df.end==33)),coef_discretionary_arrival_constant_7_pm_to_7_30_pm -util_discretionary_arrival_constant_7_30_pm_to_8_pm,DISCRETIONARY - Arrival Constant: 7:30 PM to 8:00 PM,@((df.tour_type == 'othdiscr') & (df.end==34)),coef_discretionary_arrival_constant_7_30_pm_to_8_pm -util_discretionary_arrival_constant_8_pm_to_8_30_pm,DISCRETIONARY - Arrival Constant: 8:00 PM to 8:30 PM,@((df.tour_type == 'othdiscr') & (df.end==35)),coef_discretionary_arrival_constant_8_pm_to_8_30_pm -util_discretionary_arrival_constant_8_30_pm_to_9_pm,DISCRETIONARY - Arrival Constant: 8:30 PM to 9:00 PM,@((df.tour_type == 'othdiscr') & (df.end==36)),coef_discretionary_arrival_constant_8_30_pm_to_9_pm -util_discretionary_arrival_constant_after_9_pm,DISCRETIONARY - Arrival Constant: After 9:00 PM,@((df.tour_type == 'othdiscr') & (df.end>36)),coef_discretionary_arrival_constant_after_9_pm -util_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear,DISCRETIONARY - Arrival Constant: Shift for every 30 minutes after 09:30 pm - Linear,"@np.where(((df.tour_type == 'othdiscr') & (df.end>37)), (np.where((df.end<31), np.minimum(31-df.end,48), 0) + np.where((df.end>37), np.minimum(df.end-37,48),0)), 0)",coef_discretionary_arrival_constant_shift_for_every_30_minutes_after_9_30_pm_linear -util_discretionary_duration_constant_0_hour,DISCRETIONARY - Duration Constant: 0 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==0)),coef_discretionary_duration_constant_0_hour -util_discretionary_duration_constant_30_minutes,DISCRETIONARY -Duration Constant: 0.5 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==1)),coef_discretionary_duration_constant_30_minutes -util_discretionary_duration_constant_1_hour,DISCRETIONARY -Duration Constant: 1 hour,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==2)),coef_discretionary_duration_constant_1_hour -util_discretionary_duration_constant_1_hr_30_minutes,DISCRETIONARY -Duration Constant: 1.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==3)),coef_discretionary_duration_constant_1_hr_30_minutes -util_discretionary_duration_constant_2_hours,DISCRETIONARY -Duration Constant: 2 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==4)),coef_discretionary_duration_constant_2_hours -util_discretionary_duration_constant_2_hr_30_minutes,DISCRETIONARY -Duration Constant: 2.5 hours,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration==5)),coef_discretionary_duration_constant_2_hr_30_minutes -util_discretionary_duration_constant_3_hours_or_more,DISCRETIONARY -Duration Constant: 3 hours or more,@((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>5)),coef_discretionary_duration_constant_3_hours_or_more -util_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear,DISCRETIONARY -Duration Constant: Shift for every 30 minutes more than 3 hrs - Linear,"@np.where(((df.tour_category != 'joint') & (df.tour_type == 'othdiscr') & (df.duration>6)), (np.where((df.duration<0), np.minimum(0-df.duration,47), 0) + np.where((df.duration>6), np.minimum(df.duration-6,47), 0)), 0)",coef_discretionary_duration_constant_shift_for_every_30_minutes_more_than_3_hrs_linear -util_discretionary_calibration_constant_duration_4,DISCRETIONARY -Calibration Constant - Duration = 4,@((df.tour_type == 'othdiscr') & (df.duration==3)),coef_discretionary_calibration_constant_duration_4 -util_discretionary_calibration_constant_duration_5,DISCRETIONARY -Calibration Constant - Duration = 5,@((df.tour_type == 'othdiscr') & (df.duration==4)),coef_discretionary_calibration_constant_duration_5 -util_discretionary_calibration_constant_departure_29,DISCRETIONARY -Calibration Constant - Departure = 29,@((df.tour_type == 'othdiscr') & (df.start==29)),coef_discretionary_calibration_constant_departure_29 -util_discretionary_calibration_constant_departure_30,DISCRETIONARY -Calibration Constant - Departure = 30,@((df.tour_type == 'othdiscr') & (df.start==30)),coef_discretionary_calibration_constant_departure_30 -util_discretionary_calibration_constant_departure_31,DISCRETIONARY -Calibration Constant - Departure = 31,@((df.tour_type == 'othdiscr') & (df.start==31)),coef_discretionary_calibration_constant_departure_31 -util_discretionary_calibration_constant_departure_32,DISCRETIONARY -Calibration Constant - Departure = 32,@((df.tour_type == 'othdiscr') & (df.start==32)),coef_discretionary_calibration_constant_departure_32 diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shopping.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shopping.csv index 07e94fd82..11211303e 100644 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shopping.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_shopping.csv @@ -15,8 +15,7 @@ util_shopping_low_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Low util_shopping_medium_income_duration_less_than_1_hour_30_minutes,"SHOPPING - Medium Income ($25,001 to $60,000): Duration < 1.5 hrs","@np.where(((df.is_income_25K_to_60K) & (df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_income_duration_less_than_1_hour_30_minutes util_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes,"SHOPPING - Medium-High Income ($60,001 to $120,00): Duration > 1.5 hrs","@np.where(((df.is_income_60K_to_120K) & (df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2), np.minimum(df.duration-2,26), 0)), 0)",coef_shopping_medium_high_income_duration_greater_than_1_hour_30_minutes util_shopping_distance_duration_less_than_1_hour_30_minutes,SHOPPING - Distance: Duration < 1.5 hrs,"@np.where(((df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_less_than_1_hour_30_minutes -#util_shopping_distance_duration_greater_than_1_hour_30_minutes,SHOPPING - Distance: Duration > 1.5 hrs,"@np.where(((df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_greater_than_1_hour_30_minutes -util_shopping_time_pressure_duration_greater_than_1_hour_30_minutes,SHOPPING - Time Pressure - Duration > 1.5 hrs,"@np.where(((df.duration>2)), np.minimum(df.duration-2,26) *(np.log10 (30 *(tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_shopping_time_pressure_duration_greater_than_1_hour_30_minutes +util_shopping_distance_duration_greater_than_1_hour_30_minutes,SHOPPING - Distance: Duration > 1.5 hrs,"@np.where(((df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) * (df.origin_to_destination_distance), 0)",coef_shopping_distance_duration_greater_than_1_hour_30_minutes util_shopping_time_pressure_duration_greater_than_1_hour_30_minutes,SHOPPING - Time Pressure - Duration > 1.5 hrs,"@np.where(((df.duration>2)), np.minimum(df.duration-2,26) *(np.log10 (30 *(tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num)))), 0)",coef_shopping_time_pressure_duration_greater_than_1_hour_30_minutes util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration < 1.5 hrs,"@np.where(((df.duration<2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_less_than_1_hour_30_minutes util_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes,SHOPPING - Number of additional individual shop and maint. tours - Duration > 1.5 hrs,"@np.where(((df.tour_type == 'shopping') &(df.duration>2)), (np.where((df.duration<=2), np.minimum(2-df.duration,1), 0) + np.where((df.duration>2),np.minimum(df.duration-2,26), 0)) *(df.num_add_shop_maint_tours), 0)",coef_shopping_number_of_additional_individual_shop_and_maint_tours_duration_greater_than_1_hour_30_minutes diff --git a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_social.csv b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_social.csv index febe0516d..174da53c8 100644 --- a/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_social.csv +++ b/activitysim/examples/example_semcog/configs/tour_scheduling_nonmandatory_social.csv @@ -11,8 +11,8 @@ util_social_number_of_auto_more_than_number_of_adults_duration_greater_than_1_hr "# In CTRAMP, although the description below says duration is less than 1 hr, expression is for less than 1.5 hr",,, util_social_auto_distance_duration_less_than_1_hr_linear,SOCIAL - Auto Distance: Duration < 1 hr - Linear,"@np.where(((df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_social_auto_distance_duration_less_than_1_hr_linear util_social_auto_distance_duration_greater_than_1_hr_linear,SOCIAL - Auto Distance: Duration > 1 hr - Linear,"@np.where(((df.duration>3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.origin_to_destination_distance), 0)",coef_social_auto_distance_duration_greater_than_1_hr_linear -util_social_time_pressure_duration_less_than_1_hr,SOCIAL - Time Pressure - Duration < 1 hr,"@np.where(((df.duration<3)), np.minimum(3-df.duration,47), 0)* (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_less_than_1_hr -util_social_time_pressure_duration_greater_than_1_hr,SOCIAL - Time Pressure - Duration > 1 hr,"@np.where(((df.duration>3)), np.minimum(df.duration-3,47), 0) * (np.log10 (30 * (tt.remaining_periods_available(df.person_id, df.start, df.end)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_greater_than_1_hr +util_social_time_pressure_duration_less_than_1_hr,SOCIAL - Time Pressure - Duration < 1 hr,"@np.where(((df.duration<3)), np.minimum(3-df.duration,47), 0)* (np.log10 (30 * (tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_less_than_1_hr +util_social_time_pressure_duration_greater_than_1_hr,SOCIAL - Time Pressure - Duration > 1 hr,"@np.where(((df.duration>3)), np.minimum(df.duration-3,47), 0) * (np.log10 (30 * (tt.max_time_block_available(df.person_id)/(1.0 + df.tour_count - df.tour_num))))",coef_social_time_pressure_duration_greater_than_1_hr util_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr,SOCIAL - Number of additional individual social and dicretionary tours - Duration < 1 hr,"@np.where(((df.duration<3)), (np.where((df.duration<=3), np.minimum(3-df.duration,47), 0) + np.where((df.duration>3),np.minimum(df.duration-3,47), 0)) * (df.num_add_soc_discr_tours), 0)",coef_social_number_of_additional_individual_social_and_dicretionary_tours_duration_less_than_1_hr util_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear,SOCIAL - Departure Constant: Shift for every 30 minutes before 08:30 am - Linear,"@((df.start<12)) * ((np.minimum(12-df.start,48)*(df.start<12)) + (np.minimum(df.start-48,48)*(df.start>48)))",coef_social_departure_constant_shift_for_every_30_minutes_before_8_30_am_linear util_social_departure_constant_before_9_am,SOCIAL - Departure Constant: Before 09:00 AM,@(df.start<13),coef_social_departure_constant_before_9_am diff --git a/activitysim/examples/example_semcog/configs/transit_pass_ownership.csv b/activitysim/examples/example_semcog/configs/transit_pass_ownership.csv index 15a053d16..2891e1625 100644 --- a/activitysim/examples/example_semcog/configs/transit_pass_ownership.csv +++ b/activitysim/examples/example_semcog/configs/transit_pass_ownership.csv @@ -9,13 +9,13 @@ util_inc2,$10-$24k,"@df.income.between(10000, 24000)",0,coef_inc2_pass util_inc3,$25-$34k,"@df.income.between(25000,34000)",0,coef_inc3_pass util_inc4,$35-$49k,"@df.income.between(35000,49000)",0,coef_inc4_pass util_inc10,$250k+,@df.income >= 250000,0,coef_inc10_pass -#util_na20,NAICS 20 (mining/utilities/construct),@df.industry==20,0,coef_na20_pas -#util_na30,NAICS 30 (manufacturing,@df.industry==30,0,coef_na30_pas -#util_na50,NAICS 50 (Info/Fin/insur/real estate/prof/sci/tech/manage/admin),@df.industry==50,0,coef_na50_pas -#util_na70,NAICS 70 (Entertain/accom),@df.industry==70,0,coef_na70_pas -#util_na80,NAICS 80 (Other services),@df.industry==80,0,coef_na80_pas -#util_publ,NAICS 90 (Public admin),@df.industry==90,0,coef_publ_pas -#approximate measure for the time being,,, +util_na20,NAICS 20 (mining/utilities/construct),@df.industry_naics=='20',0,coef_na20_pas +util_na30,NAICS 30 (manufacturing,@df.industry_naics=='30',0,coef_na30_pas +util_na50,NAICS 50 (Info/Fin/insur/real estate/prof/sci/tech/manage/admin),@df.industry_naics=='50',0,coef_na50_pas +util_na70,NAICS 70 (Entertain/accom),@df.industry_naics=='70',0,coef_na70_pas +util_na80,NAICS 80 (Other services),@df.industry_naics=='80',0,coef_na80_pas +util_publ,NAICS 90 (Public admin),@df.industry_naics=='90',0,coef_publ_pas +#approximate measure for the time being,,,, util_wrkamt,Auto minus transit time (work),@df.work_auto_savings * -1,0,coef_wrkamt_pas util_subs,Subsidy offered,@df.transit_pass_subsidy,0,coef_subs_pas utils_pass_asc,Constant,1,0,coef_pass_asc diff --git a/activitysim/examples/example_semcog/configs/transit_pass_subsidy.csv b/activitysim/examples/example_semcog/configs/transit_pass_subsidy.csv index eaaff3fd0..e458c1324 100644 --- a/activitysim/examples/example_semcog/configs/transit_pass_subsidy.csv +++ b/activitysim/examples/example_semcog/configs/transit_pass_subsidy.csv @@ -2,11 +2,11 @@ Label,Description,Expression,no_subsidy,subsidy util_ft,Full-time worker,@df.pemploy==PEMPLOY_FULL,0,coef_ft util_pt,Part-time worker,@df.pemploy==PEMPLOY_PART,0,coef_pt util_un,University/College,@df.ptype==PTYPE_SCHOOL,0,coef_un -#util_na70,NAICS 70 (Entertain/accom),@df.industry==70,0,coef_na70 -#util_na80,NAICS 80 (Other services),@df.industry==80,0,coef_na80 -#util_publ,NAICS 90 (Public admin),@df.industry==90,0,coef_publ -#approximate measure for the time being,,, +util_na70,NAICS 70 (Entertain/accom),@df.industry_naics=='70',0,coef_na70 +util_na80,NAICS 80 (Other services),@df.industry_naics=='80',0,coef_na80 +util_publ,NAICS 90 (Public admin),@df.industry_naics=='90',0,coef_publ +#approximate measure for the time being,,,, util_tr_hh_emp,Household transit accessibility,@df.trOpRetail,0,coef_tr_hh_emp -#approximate measure for the time being,,, +#approximate measure for the time being,,,, util_pkcost,Daily parking cost (dollars),@df.PRKCST+df.OPRKCST,0,coef_pkcost utils_sub_asc,Constant,1,0,coef_sub_asc diff --git a/activitysim/examples/example_semcog/configs/trip_destination.csv b/activitysim/examples/example_semcog/configs/trip_destination.csv index 827feeabf..4d8b3a85d 100755 --- a/activitysim/examples/example_semcog/configs/trip_destination.csv +++ b/activitysim/examples/example_semcog/configs/trip_destination.csv @@ -1,17 +1,17 @@ -Description,Expression,work,univ,school,escort,shopping,eatout,othmaint,social,othdiscr,atwork -size term,"@np.log1p(size_terms.get(df.dest_taz, df.purpose))",1,1,1,1,1,1,1,1,1,1 -no attractions,"@size_terms.get(df.dest_taz, df.purpose) == 0",-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -#stop zone CBD area type,"@reindex(land_use.AreaType, df.dest_taz) < setting('cbd_threshold')",,,,,,,,,, -distance (calibration adjustment individual - inbound),@(~df.is_joint & ~df.outbound) * (od_skims['DIST'] + dp_skims['DIST']),-0.049725916,-0.0613,-0.1056,-0.1491,-0.1192,-0.1029,-0.0962,-0.1329,-0.126172224,-0.122334597 -distance (calibration adjustment individual - outbound),@(~df.is_joint & df.outbound) * (od_skims['DIST'] + dp_skims['DIST']),0.147813279,-0.0613,-0.1056,-0.1491,-0.1192,-0.1029,-0.0962,-0.1329,-0.126172224,-0.122334597 -distance (calibration adjustment joint),@df.is_joint * (od_skims['DIST'] + dp_skims['DIST']),0,0,0,-0.1238,-0.1238,-0.1238,-0.1238,-0.1238,-0.123801985,0 -stop proximity to home (outbound),@df.outbound * od_skims['DIST'],-0.38,0,0,0,0,0,0,0,0,0 -stop proximity to home (inbound),@~df.outbound * dp_skims['DIST'],-0.15,0,0,0,0,0,0,0,0,0 -stop proximity to main destination (outbound),@df.outbound * dp_skims['DIST'],-0.26,,,,,,,,, -stop proximity to main destination (inbound),@~df.outbound * od_skims['DIST'],0,,,,,,,,, -#,,,,,,,,,,, -Sample of alternatives correction factor,"@np.minimum(np.log(df.pick_count/df.prob), 60)",1,1,1,1,1,1,1,1,1,1 -Mode choice logsum from origin to stop,od_logsum,1.821,1.821,1.821,1.821,1.821,1.821,1.821,1.821,1.821,1.821 -Can't access stop zone by this tour mode,(od_logsum < -100),-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 -Mode choice logsum from stop to destination,dp_logsum,1.821,1.821,1.821,1.821,1.821,1.821,1.821,1.821,1.821,1.821 -Can't access destination zone by this tour mode,(dp_logsum < -100),-999,-999,-999,-999,-999,-999,-999,-999,-999,-999 +Label,Description,Expression,work,univ,school,escort,shopping,eatout,othmaint,social,othdiscr,atwork +util_size_term,size term,"@np.log1p(size_terms.get(df.dest_taz, df.purpose))",coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one +util_no_attractions,no attractions,"@size_terms.get(df.dest_taz, df.purpose) == 0",coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE +#util_stop_zone_CDB_are_type,#stop zone CBD area type,"@reindex(land_use.area_type, df.dest_taz) < setting('cbd_threshold')",,,,,,,,,, +util_distance_inbound,distance (calibration adjustment individual - inbound),@(~df.is_joint & ~df.outbound) * (od_skims['DIST'] + dp_skims['DIST']),coef_util_distance_work_outbound,coef_util_distance_univ,coef_util_distance_school,coef_util_distance_escort,coef_util_distance_shopping,coef_util_distance_eatout,coef_util_distance_othmaint,coef_util_distance_social,coef_util_distance_othdiscr,coef_util_distance_atwork +util_distance_outbound,distance (calibration adjustment individual - outbound),@(~df.is_joint & df.outbound) * (od_skims['DIST'] + dp_skims['DIST']),coef_util_distance_work_inbound,coef_util_distance_univ,coef_util_distance_school,coef_util_distance_escort,coef_util_distance_shopping,coef_util_distance_eatout,coef_util_distance_othmaint,coef_util_distance_social,coef_util_distance_othdiscr,coef_util_distance_atwork +util_distance_joint,distance (calibration adjustment joint),@df.is_joint * (od_skims['DIST'] + dp_skims['DIST']),,,,coef_distance_joint,coef_distance_joint,coef_distance_joint,coef_distance_joint,coef_distance_joint,coef_distance_joint, +util_prox_home_outbound,stop proximity to home (outbound),@df.outbound * od_skims['DIST'],coef_prox_home_outbound_work,,,,,,,,, +util_prox_home_inbound,stop proximity to home (inbound),@~df.outbound * dp_skims['DIST'],coef_prox_home_inbound_work,,,,,,,,, +util_prox_dest_outbound,stop proximity to main destination (outbound),@df.outbound * dp_skims['DIST'],coef_prox_dest_outbound_work,,,,,,,,, +util_prox_dest_inbound,stop proximity to main destination (inbound),@~df.outbound * od_skims['DIST'],0,,,,,,,,, +#,,,,,,,,,,,, +util_sample_of_alternatives_correction_factor,Sample of alternatives correction factor,"@np.minimum(np.log(df.pick_count/df.prob), 60)",coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one,coef_one +util_mode_choice_logsum_os,Mode choice logsum from origin to stop,od_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum +util_stop_not_accessible_by_this_tour_mode,Can't access stop zone by this tour mode,(od_logsum < -100),coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE +util_mode_choice_logsum_sd,Mode choice logsum from stop to destination,dp_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum,coef_mode_choice_logsum +util_dest_not_accessible_by_this_tour_mode,Can't access destination zone by this tour mode,(dp_logsum < -100),coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE,coef_UNAVAILABLE diff --git a/activitysim/examples/example_semcog/configs/trip_destination.yaml b/activitysim/examples/example_semcog/configs/trip_destination.yaml index 7ea232427..bc7947ea6 100755 --- a/activitysim/examples/example_semcog/configs/trip_destination.yaml +++ b/activitysim/examples/example_semcog/configs/trip_destination.yaml @@ -1,8 +1,11 @@ +SAMPLE_SPEC: trip_destination_sample.csv +SPEC: trip_destination.csv +COEFFICIENTS: trip_destination_coefficients.csv + SAMPLE_SIZE: 30 DESTINATION_SAMPLE_SPEC: trip_destination_sample.csv DESTINATION_SPEC: trip_destination.csv -COEFFICIENTS: _dummy_coefficients.csv LOGSUM_SETTINGS: trip_mode_choice.yaml @@ -17,6 +20,8 @@ TRIP_ORIGIN: origin ALT_DEST_COL_NAME: dest_taz PRIMARY_DEST: destination +# tour_mode is already in trips table, so we don't need it from tours +# (it is assigned in trip_destination_annotate_trips_preprocessor ) REDUNDANT_TOURS_MERGED_CHOOSER_COLUMNS: - tour_mode @@ -34,3 +39,6 @@ preprocessor: # drop failed trips and cleanup failed trip leg_mates for consistency # (i.e. adjust trip_count, trip_num, first for missing failed trips) CLEANUP: False + +# this setting is used by testing code to force failed trip_destination +# fail_some_trips_for_testing: False diff --git a/activitysim/examples/example_semcog/configs/trip_destination_coefficients.csv b/activitysim/examples/example_semcog/configs/trip_destination_coefficients.csv new file mode 100644 index 000000000..c6fd18589 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/trip_destination_coefficients.csv @@ -0,0 +1,19 @@ +coefficient_name,value,constrain +coef_UNAVAILABLE,-999.0,T +coef_one,1,T +coef_mode_choice_logsum,1.821,F +coef_distance_joint,-0.1238,F +coef_util_distance_work_outbound,-0.04972591574229,F +coef_util_distance_work_inbound,0.147813278663948,F +coef_util_distance_univ,-0.0613,F +coef_util_distance_school,-0.1056,F +coef_util_distance_escort,-0.1491,F +coef_util_distance_shopping,-0.1192,F +coef_util_distance_eatout,-0.1029,F +coef_util_distance_othmaint,-0.0962,F +coef_util_distance_social,-0.1329,F +coef_util_distance_othdiscr,-0.126172224,F +coef_util_distance_atwork,-0.122334597,F +coef_prox_home_outbound_work,-0.3800,F +coef_prox_home_inbound_work,-0.1500,F +coef_prox_dest_outbound_work,-0.26,F diff --git a/activitysim/examples/example_semcog/configs/trip_mode_choice.csv b/activitysim/examples/example_semcog/configs/trip_mode_choice.csv index 0484fec64..5aaac79d6 100755 --- a/activitysim/examples/example_semcog/configs/trip_mode_choice.csv +++ b/activitysim/examples/example_semcog/configs/trip_mode_choice.csv @@ -1,399 +1,379 @@ -Description,Expression,DRIVEALONE,SHARED2,SHARED3,WALK,BIKE,WALK_LOC,WALK_PRM,WALK_MIX,PNR_LOC,PNR_PRM,PNR_MIX,KNR_LOC,KNR_PRM,KNR_MIX,SCHOOLBUS,TAXI,TNC_SINGLE,TNC_SHARED -#Drive alone no toll,,,,,,,,,,,,,,,,,,, -DRIVEALONE - Unavailable,sov_available == False,-999,,,,,,,,,,,,,,,,, -DRIVEALONE - Unavailable for persons less than 16,age < 16,-999,,,,,,,,,,,,,,,,, -DRIVEALONE - Unavailable for joint tours,is_joint == True,-999,,,,,,,,,,,,,,,,, -DRIVEALONE - Unavailable if didn't drive to work,is_atwork_subtour & ~work_tour_is_SOV,-999,,,,,,,,,,,,,,,,, -DRIVEALONE - In-vehicle time,@c_ivt*odt_skims['SOV_TIME'],1,,,,,,,,,,,,,,,,, -DRIVEALONE - Terminal time,@c_walktimeshort * df.total_terminal_time,1,,,,,,,,,,,,,,,,, -DRIVEALONE - Operating cost ,@df.c_cost * costPerMile * odt_skims['SOV_DIST'],1,,,,,,,,,,,,,,,,, -DRIVEALONE - Parking cost ,c_cost * total_parking_cost,1,,,,,,,,,,,,,,,,, -DRIVEALONE - Person is between 16 and 19 years old,@c_age1619_da * ((df.age >= 16) & (df.age <= 19)),1,,,,,,,,,,,,,,,,, -#Shared ride 2,,,,,,,,,,,,,,,,,,, -SHARED2 - Unavailable,hov2_available == False,,-999,,,,,,,,,,,,,,,, -SHARED2 - Unavailable based on party size,is_joint & (number_of_participants > 2),,-999,,,,,,,,,,,,,,,, -SHARED2 - In-vehicle time,@c_ivt * odt_skims['HOV2_TIME'],,1,,,,,,,,,,,,,,,, -SHARED2 - Terminal time,@c_walktimeshort * df.total_terminal_time,,1,,,,,,,,,,,,,,,, -SHARED2 - Operating cost,@df.c_cost * costPerMile * odt_skims['HOV2_DIST'],,1,,,,,,,,,,,,,,,, -SHARED2 - Parking cost,@df.c_cost * df.total_parking_cost / costShareSr2,,1,,,,,,,,,,,,,,,, -SHARED2 - One person household,@c_hhsize1_sr * (df.hhsize == 1),,1,,,,,,,,,,,,,,,, -SHARED2 - Two person household,@c_hhsize2_sr * (df.hhsize == 2),,1,,,,,,,,,,,,,,,, -SHARED2 - Person is 16 years old or older,@c_age16p_sr * (df.age >= 16),,1,,,,,,,,,,,,,,,, -#Shared ride 3+,,,,,,,,,,,,,,,,,,, -SHARED3 - Unavailable,hov3_available == False,,,-999,,,,,,,,,,,,,,, -SHARED3 - Unavailable based joint tour mode,@df.is_joint & df.i_tour_mode.isin(I_SR2_MODES),,,-999,,,,,,,,,,,,,,, -SHARED3 - Unavailable if tour mode is shared 2,@df.i_tour_mode.isin(I_SR2_MODES),,,-999,,,,,,,,,,,,,,, -SHARED3 - In-vehicle time,@c_ivt * odt_skims['HOV3_TIME'],,,1,,,,,,,,,,,,,,, -SHARED3 - Terminal time,@c_walktimeshort * df.total_terminal_time,,,1,,,,,,,,,,,,,,, -SHARED3 - Operating cost,@df.c_cost * costPerMile * odt_skims['HOV3_DIST'],,,1,,,,,,,,,,,,,,, -SHARED3 - Parking cost,@df.c_cost * df.total_parking_cost / costShareSr3,,,1,,,,,,,,,,,,,,, -SHARED3 - One person household,@c_hhsize1_sr * (df.hhsize == 1),,,1,,,,,,,,,,,,,,, -SHARED3 - Two person household,@c_hhsize2_sr * (df.hhsize == 2),,,1,,,,,,,,,,,,,,, -SHARED3 - Person is 16 years old or older,@c_age16p_sr * (df.age >= 16),,,1,,,,,,,,,,,,,,, -#Walk,,,,,,,,,,,,,,,,,,, -WALK - Time up to 2 miles,@c_walktimeshort * od_skims['DISTWALK'].clip(upper=walkThresh) * 60/walkSpeed,,,,1,,,,,,,,,,,,,, -WALK - Time beyond 2 of a miles,@c_walktimelong * (od_skims['DISTWALK'] - walkThresh).clip(lower=0) * 60/walkSpeed,,,,1,,,,,,,,,,,,,, -WALK - Destination zone densityIndex,@c_density_index * df.density_index,,,,1,,,,,,,,,,,,,, -WALK - Topology,@c_topology_walk * df.trip_topology,,,,1,,,,,,,,,,,,,, -#Bike,,,,,,,,,,,,,,,,,,, -BIKE - Unavailable if tour mode is not bike,~tour_mode_is_bike,,,,,-999,,,,,,,,,,,,, -BIKE - Unavailable if didn't bike to work,is_atwork_subtour & ~work_tour_is_bike,,,,,-999,,,,,,,,,,,,, -BIKE - Time up to 6 miles,@c_biketimeshort * od_skims['DISTBIKE'].clip(upper=bikeThresh)*60/bikeSpeed,,,,,1,,,,,,,,,,,,, -BIKE - Time beyond 6 of a miles,@c_biketimelong * (od_skims['DISTBIKE']-bikeThresh).clip(lower=0)*60/bikeSpeed,,,,,1,,,,,,,,,,,,, -BIKE - Destination zone densityIndex,@c_density_index*df.density_index,,,,,1,,,,,,,,,,,,, -BIKE - Topology,@c_topology_bike * df.trip_topology,,,,,1,,,,,,,,,,,,, -#Walk to Local,,,,,,,,,,,,,,,,,,, -WALK_LOC - Unavailable,walk_local_available == False,,,,,,-999,,,,,,,,,,,, -WALK_LOC - In-vehicle time,@c_ivt * odt_skims['WLK_LOC_IVT'],,,,,,1,,,,,,,,,,,, -WALK_LOC - Short iwait time,@c_short_i_wait * (odt_skims['WLK_LOC_IWAIT']).clip(upper=waitThresh),,,,,,1,,,,,,,,,,,, -WALK_LOC - Long iwait time,@c_long_i_wait * (odt_skims['WLK_LOC_IWAIT']-waitThresh).clip(0),,,,,,1,,,,,,,,,,,, -WALK_LOC - transfer wait time,@c_xwait * odt_skims['WLK_LOC_XWAIT'],,,,,,1,,,,,,,,,,,, -WALK_LOC - number of transfers,@c_xfers_wlk * (odt_skims['WLK_LOC_NT']).clip(0),,,,,,1,,,,,,,,,,,, -WALK_LOC - Walk access time,@c_wacc * df.origin_walk_time,,,,,,1,,,,,,,,,,,, -WALK_LOC - Walk egress time,@c_wegr * df.destination_walk_time,,,,,,1,,,,,,,,,,,, -WALK_LOC - Walk other time,@c_waux * odt_skims['WLK_LOC_WAUX'],,,,,,1,,,,,,,,,,,, -WALK_LOC - Fare,@df.c_cost * odt_skims['WLK_LOC_FARE'],,,,,,1,,,,,,,,,,,, -WALK_LOC - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,1,,,,,,,,,,,, -WALK_LOC - Topology,@c_topology_trn * df.trip_topology,,,,,,1,,,,,,,,,,,, -WALK_LOC - Person is less than 10 years old,@c_age010_trn * (df.age <= 10),,,,,,1,,,,,,,,,,,, -#Walk to Premium,,,,,,,,,,,,,,,,,,, -WALK_PRM - Unavailable,walk_premium_available == False,,,,,,,-999,,,,,,,,,,, -WALK_PRM - In-vehicle time,@c_ivt * odt_skims['WLK_PRM_IVT'],,,,,,,1,,,,,,,,,,, -WALK_PRM - In-vehicle time on PMov,@(c_ivt_pmov - c_ivt) * odt_skims['WLK_PRM_IVTT_PMov'],,,,,,,1,,,,,,,,,,, -WALK_PRM - In-vehicle time on StCar,@(c_ivt_stcar - c_ivt) * odt_skims['WLK_PRM_IVTT_StCar'],,,,,,,1,,,,,,,,,,, -WALK_PRM - In-vehicle time on BRT,@(c_ivt_brt - c_ivt) * odt_skims['WLK_PRM_IVTT_Brt'],,,,,,,1,,,,,,,,,,, -WALK_PRM - In-vehicle time on URB,@(c_ivt_urb - c_ivt) * odt_skims['WLK_PRM_IVTT_UrbRail'],,,,,,,1,,,,,,,,,,, -WALK_PRM - In-vehicle time on COM,@(c_ivt_com - c_ivt) * odt_skims['WLK_PRM_IVTT_ComRail'],,,,,,,1,,,,,,,,,,, -WALK_PRM - Short iwait time,@c_short_i_wait * (odt_skims['WLK_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,1,,,,,,,,,,, -WALK_PRM - Long iwait time,@c_long_i_wait * (odt_skims['WLK_PRM_IWAIT']-waitThresh).clip(0),,,,,,,1,,,,,,,,,,, -WALK_PRM - transfer wait time,@c_xwait * odt_skims['WLK_PRM_XWAIT'],,,,,,,1,,,,,,,,,,, -WALK_PRM - number of transfers,@c_xfers_wlk * (odt_skims['WLK_PRM_NT']).clip(0),,,,,,,1,,,,,,,,,,, -WALK_PRM - Walk access time,@c_wacc * df.origin_walk_time,,,,,,,1,,,,,,,,,,, -WALK_PRM - Walk egress time,@c_wegr * df.destination_walk_time,,,,,,,1,,,,,,,,,,, -WALK_PRM - Walk otherLight rail/Ferry time,@c_waux * odt_skims['WLK_PRM_WAUX'],,,,,,,1,,,,,,,,,,, -WALK_PRM - Fare,@df.c_cost * odt_skims['WLK_PRM_FARE'],,,,,,,1,,,,,,,,,,, -WALK_PRM - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,1,,,,,,,,,,, -WALK_PRM - Topology,@c_topology_trn * df.trip_topology,,,,,,,1,,,,,,,,,,, -WALK_PRM - Person is less than 10 years old,@c_age010_trn * (df.age <= 10),,,,,,,1,,,,,,,,,,, -#Walk to Mix,,,,,,,,,,,,,,,,,,, -WALK_MIX - Unavailable,walk_mix_available == False,,,,,,,,-999,,,,,,,,,, -WALK_MIX - In-vehicle time,@c_ivt * odt_skims['WLK_MIX_IVT'],,,,,,,,1,,,,,,,,,, -WALK_MIX - In-vehicle time on Bus,@c_ivt * odt_skims['WLK_MIX_IVTT_Bus'],,,,,,,,1,,,,,,,,,, -WALK_MIX - In-vehicle time on PMov,@(c_ivt_pmov - c_ivt) * odt_skims['WLK_MIX_IVTT_PMov'],,,,,,,,1,,,,,,,,,, -WALK_MIX - In-vehicle time on StCar,@(c_ivt_stcar - c_ivt) * odt_skims['WLK_MIX_IVTT_StCar'],,,,,,,,1,,,,,,,,,, -WALK_MIX - In-vehicle time on BRT,@(c_ivt_brt - c_ivt) * odt_skims['WLK_MIX_IVTT_Brt'],,,,,,,,1,,,,,,,,,, -WALK_MIX - In-vehicle time on URB,@(c_ivt_urb - c_ivt) * odt_skims['WLK_MIX_IVTT_UrbRail'],,,,,,,,1,,,,,,,,,, -WALK_MIX - In-vehicle time on COM,@(c_ivt_com - c_ivt) * odt_skims['WLK_MIX_IVTT_ComRail'],,,,,,,,1,,,,,,,,,, -WALK_MIX - Short iwait time,@c_short_i_wait * (odt_skims['WLK_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,1,,,,,,,,,, -WALK_MIX - Long iwait time,@c_long_i_wait * (odt_skims['WLK_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,1,,,,,,,,,, -WALK_MIX - transfer wait time,@c_xwait * odt_skims['WLK_MIX_XWAIT'],,,,,,,,1,,,,,,,,,, -WALK_MIX - number of transfers,@c_xfers_wlk * (odt_skims['WLK_MIX_NT']).clip(0),,,,,,,,1,,,,,,,,,, -WALK_MIX - Walk access time,@c_wacc * df.origin_walk_time,,,,,,,,1,,,,,,,,,, -WALK_MIX - Walk egress time,@c_wegr * df.destination_walk_time,,,,,,,,1,,,,,,,,,, -WALK_MIX - Walk other time,@c_waux * odt_skims['WLK_MIX_WAUX'],,,,,,,,1,,,,,,,,,, -WALK_MIX - Fare,@df.c_cost * odt_skims['WLK_MIX_FARE'],,,,,,,,1,,,,,,,,,, -WALK_MIX - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,1,,,,,,,,,, -WALK_MIX - Topology,@c_topology_trn * df.trip_topology,,,,,,,,1,,,,,,,,,, -WALK_MIX - Person is less than 10 years old,@c_age010_trn * (df.age <= 10),,,,,,,,1,,,,,,,,,, -#PNR to Local,,,,,,,,,,,,,,,,,,, -PNR_LOC - Unavailable for zero auto households,auto_ownership == 0,,,,,,,,,-999,,,,,,,,, -PNR_LOC - Unavailable for persons less than 16,age < 16,,,,,,,,,-999,,,,,,,,, -PNR_LOC - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,,1,,,,,,,,, -PNR_LOC - Topology,@c_topology_trn * df.trip_topology,,,,,,,,,1,,,,,,,,, -PNR_LOC - Person is less than 10 years old,@c_age010_trn * (df.age < 10),,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Unavailable,outbound & ~pnr_local_available_outbound,,,,,,,,,-999,,,,,,,,, -PNR_LOC outbound - In-vehicle time,@df.outbound * c_ivt * odt_skims['PNR_LOC_IVT'],,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Short iwait time,@df.outbound * c_short_i_wait * (odt_skims['PNR_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Long iwait time,@df.outbound * c_long_i_wait * (odt_skims['PNR_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - transfer wait time,@df.outbound * c_xwait * odt_skims['PNR_LOC_XWAIT'],,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - number of transfers,@df.outbound * c_xfers_wlk * (odt_skims['PNR_LOC_NT']).clip(0),,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Drive time,@df.outbound * c_dtim * odt_skims['PNR_LOC_DTIME'],,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Walk egress time,@df.outbound * c_wegr * df.destination_walk_time,,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Walk other time,@df.outbound * c_waux * odt_skims['PNR_LOC_WAUX'],,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Fare and operating cost,@df.outbound * df.c_cost * (odt_skims['PNR_LOC_FARE'] + costPerMile*odt_skims['PNR_LOC_DDIST']),,,,,,,,,1,,,,,,,,, -PNR_LOC outbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['PNR_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Unavailable,inbound & ~pnr_local_available_inbound,,,,,,,,,-999,,,,,,,,, -PNR_LOC inbound - In-vehicle time,@df.inbound * c_ivt * odt_skims['PNRE_LOC_IVT'],,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Short iwait time,@df.inbound * c_short_i_wait * (odt_skims['PNRE_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Long iwait time,@df.inbound * c_long_i_wait * (odt_skims['PNRE_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - transfer wait time,@df.inbound * c_xwait * odt_skims['PNRE_LOC_XWAIT'],,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - number of transfers,@df.inbound * c_xfers_wlk * (odt_skims['PNRE_LOC_NT']).clip(0),,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Drive time,@df.inbound * c_dtim * odt_skims['PNRE_LOC_DTIME'],,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Walk access time,@df.inbound * c_wacc * df.origin_walk_time,,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Walk other time,@df.inbound * c_waux * odt_skims['PNRE_LOC_WAUX'],,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Fare and operating cost,@df.inbound * df.c_cost * (odt_skims['PNRE_LOC_FARE'] + costPerMile*odt_skims['PNRE_LOC_DDIST']),,,,,,,,,1,,,,,,,,, -PNR_LOC inbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['PNRE_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,1,,,,,,,,, -#Drive to Premium,,,,,,,,,,,,,,,,,,, -PNR_PRM - Unavailable for zero auto households,auto_ownership == 0,,,,,,,,,,-999,,,,,,,, -PNR_PRM - Unavailable for persons less than 16,age < 16,,,,,,,,,,-999,,,,,,,, -PNR_PRM - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,,,1,,,,,,,, -PNR_PRM - Topology,@c_topology_trn * df.trip_topology,,,,,,,,,,1,,,,,,,, -PNR_PRM - Person is less than 10 years old,@c_age010_trn * (df.age < 10),,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Unavailable,outbound & ~pnr_premium_available_outbound,,,,,,,,,,-999,,,,,,,, -PNR_PRM outbound - In-vehicle time,@df.outbound * c_ivt * odt_skims['PNR_PRM_IVT'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on PMov,@df.outbound * (c_ivt_pmov - c_ivt) * odt_skims['PNR_PRM_IVTT_PMov'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on StCar,@df.outbound * (c_ivt_stcar - c_ivt) * odt_skims['PNR_PRM_IVTT_StCar'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on BRT,@df.outbound * (c_ivt_brt - c_ivt) * odt_skims['PNR_PRM_IVTT_Brt'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on URB,@df.outbound * (c_ivt_urb - c_ivt) * odt_skims['PNR_PRM_IVTT_UrbRail'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on COM,@df.outbound * (c_ivt_com - c_ivt) * odt_skims['PNR_PRM_IVTT_ComRail'],,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Short iwait time,@df.outbound * c_short_i_wait * (odt_skims['PNR_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Long iwait time,@df.outbound * c_long_i_wait * (odt_skims['PNR_PRM_IWAIT']-waitThresh).clip(0) ,,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - transfer wait time,@df.outbound * c_xwait * odt_skims['PNR_PRM_XWAIT'],,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - number of transfers,@df.outbound * c_xfers_drv * (odt_skims['PNR_PRM_NT']).clip(0),,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Drive time,@df.outbound * c_dtim * odt_skims['PNR_PRM_DTIME'],,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Walk egress time,@df.outbound * c_wegr * df.destination_walk_time,,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Walk other time,@df.outbound * c_waux * odt_skims['PNR_PRM_WAUX'],,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Fare and operating cost,@df.outbound * df.c_cost * (odt_skims['PNR_PRM_FARE'] + costPerMile * odt_skims['PNR_PRM_DDIST']),,,,,,,,,,1,,,,,,,, -PNR_PRM outbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['PNR_PRM_DDIST']) / od_skims['DIST'],,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Unavailable,inbound & ~pnr_premium_available_inbound,,,,,,,,,,-999,,,,,,,, -PNR_PRM inbound - In-vehicle time,@df.inbound * c_ivt * odt_skims['PNRE_PRM_IVT'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on PMov,@df.inbound * (c_ivt_pmov - c_ivt) * odt_skims['PNRE_PRM_IVTT_PMov'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on StCar,@df.inbound * (c_ivt_stcar - c_ivt) * odt_skims['PNRE_PRM_IVTT_StCar'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on BRT,@df.inbound * (c_ivt_brt - c_ivt) * odt_skims['PNRE_PRM_IVTT_Brt'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on URB,@df.inbound * (c_ivt_urb - c_ivt) * odt_skims['PNRE_PRM_IVTT_UrbRail'],,,,,,,,,,1,,,,,,,, -PNR_PRM - In-vehicle time on COM,@df.inbound * (c_ivt_com - c_ivt) * odt_skims['PNRE_PRM_IVTT_ComRail'],,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Short iwait time,@df.inbound * c_short_i_wait * (odt_skims['PNRE_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Long iwait time,@df.inbound * c_long_i_wait * (odt_skims['PNRE_PRM_IWAIT']-waitThresh).clip(0),,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - transfer wait time,@df.inbound * c_xwait * odt_skims['PNRE_PRM_XWAIT'],,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - number of transfers,@df.inbound * c_xfers_drv * (odt_skims['PNRE_PRM_NT']).clip(0),,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Drive time,@df.inbound * c_dtim * odt_skims['PNRE_PRM_DTIME'],,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Walk access time,@df.inbound * c_wacc * df.origin_walk_time,,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Walk other time,@df.inbound * c_waux * odt_skims['PNRE_PRM_WAUX'],,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Fare and operating cost,@df.inbound * df.c_cost * (odt_skims['PNRE_PRM_FARE'] + costPerMile * odt_skims['PNRE_PRM_DDIST']),,,,,,,,,,1,,,,,,,, -PNR_PRM inbound - Ratio of drive access distance to OD distance,@df.inbound * c_dacc_ratio * (odt_skims['PNRE_PRM_DDIST'])/ od_skims['DIST'],,,,,,,,,,1,,,,,,,, -#PNR to Mix,,,,,,,,,,,,,,,,,,, -PNR_MIX - Unavailable for zero auto households,auto_ownership == 0,,,,,,,,,,,-999,,,,,,, -PNR_MIX - Unavailable for persons less than 16,age < 16,,,,,,,,,,,-999,,,,,,, -PNR_MIX - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,,,,1,,,,,,, -PNR_MIX - Topology,@c_topology_trn * df.trip_topology,,,,,,,,,,,1,,,,,,, -PNR_MIX - Person is less than 10 years old,@c_age010_trn * (df.age < 10),,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Unavailable,outbound & ~pnr_mix_available_outbound,,,,,,,,,,,-999,,,,,,, -PNR_MIX outbound - In-vehicle time,@df.outbound * c_ivt * odt_skims['PNR_MIX_IVT'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on Bus,@df.outbound * c_ivt * odt_skims['PNR_MIX_IVTT_Bus'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on PMov,@df.outbound * (c_ivt_pmov - c_ivt) * odt_skims['PNR_MIX_IVTT_PMov'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on StCar,@df.outbound * (c_ivt_stcar - c_ivt) * odt_skims['PNR_MIX_IVTT_StCar'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on BRT,@df.outbound * (c_ivt_brt - c_ivt) * odt_skims['PNR_MIX_IVTT_Brt'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on URB,@df.outbound * (c_ivt_urb - c_ivt) * odt_skims['PNR_MIX_IVTT_UrbRail'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on COM,@df.outbound * (c_ivt_com - c_ivt) * odt_skims['PNR_MIX_IVTT_ComRail'],,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Short iwait time,@df.outbound * c_short_i_wait * (odt_skims['PNR_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Long iwait time,@df.outbound * c_long_i_wait * (odt_skims['PNR_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - transfer wait time,@df.outbound * c_xwait * odt_skims['PNR_MIX_XWAIT'],,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - number of transfers,@df.outbound * c_xfers_drv * (odt_skims['PNR_MIX_NT']).clip(0),,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Drive time,@df.outbound * c_dtim * odt_skims['PNR_MIX_DTIME'],,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Walk egress ime,@df.outbound * c_wegr * df.destination_walk_time,,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Walk other time,@df.outbound * c_waux * odt_skims['PNR_MIX_WAUX'],,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Fare and operating cost,@df.outbound * df.c_cost * (odt_skims['PNR_MIX_FARE'] + costPerMile * odt_skims['PNR_MIX_DDIST']),,,,,,,,,,,1,,,,,,, -PNR_MIX outbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['PNR_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Unavailable,inbound & ~pnr_mix_available_inbound,,,,,,,,,,,-999,,,,,,, -PNR_MIX inbound - In-vehicle time,@df.inbound * c_ivt * odt_skims['PNRE_MIX_IVT'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on Bus,@df.inbound * c_ivt * odt_skims['PNRE_MIX_IVTT_Bus'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on PMov,@df.inbound * (c_ivt_pmov - c_ivt) * odt_skims['PNRE_MIX_IVTT_PMov'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on StCar,@df.inbound * (c_ivt_stcar - c_ivt) * odt_skims['PNRE_MIX_IVTT_StCar'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on BRT,@df.inbound * (c_ivt_brt - c_ivt) * odt_skims['PNRE_MIX_IVTT_Brt'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on URB,@df.inbound * (c_ivt_urb - c_ivt) * odt_skims['PNRE_MIX_IVTT_UrbRail'],,,,,,,,,,,1,,,,,,, -PNR_MIX - In-vehicle time on COM,@df.inbound * (c_ivt_com - c_ivt) * odt_skims['PNRE_MIX_IVTT_ComRail'],,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Short iwait time,@df.inbound * c_short_i_wait * (odt_skims['PNRE_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Long iwait time,@df.inbound * c_long_i_wait * (odt_skims['PNRE_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - transfer wait time,@df.inbound * c_xwait * odt_skims['PNRE_MIX_XWAIT'],,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - number of transfers,@df.inbound * c_xfers_drv * (odt_skims['PNRE_MIX_NT']).clip(0),,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Drive time,@df.inbound * c_dtim * odt_skims['PNRE_MIX_DTIME'],,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Walk access time,@df.inbound * c_wacc * df.origin_walk_time,,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Walk other time,@df.inbound * c_waux * odt_skims['PNRE_MIX_WAUX'],,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Fare and operating cost,@df.inbound * df.c_cost * (odt_skims['PNRE_MIX_FARE'] + costPerMile * odt_skims['PNRE_MIX_DDIST']),,,,,,,,,,,1,,,,,,, -PNR_MIX inbound - Ratio of drive access distance to OD distance,@df.inbound * c_dacc_ratio * (odt_skims['PNRE_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,1,,,,,,, -#KNR to Local,,,,,,,,,,,,,,,,,,, -KNR_LOC - Unavailable for persons less than 16,age < 16,,,,,,,,,,,,-999,,,,,, -KNR_LOC - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,,,,,1,,,,,, -KNR_LOC - Topology,@c_topology_trn * df.trip_topology,,,,,,,,,,,,1,,,,,, -KNR_LOC - Person is less than 10 years old,@c_age010_trn * (df.age < 10),,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Unavailable,outbound & ~knr_local_available_outbound,,,,,,,,,,,,-999,,,,,, -KNR_LOC outbound - In-vehicle time,@df.outbound * c_ivt * odt_skims['KNR_LOC_IVT'],,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Short iwait time,@df.outbound * c_short_i_wait * (odt_skims['KNR_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Long iwait time,@df.outbound * c_long_i_wait * (odt_skims['KNR_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - transfer wait time,@df.outbound * c_xwait * odt_skims['KNR_LOC_XWAIT'],,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - number of transfers,@df.outbound * c_xfers_wlk * (odt_skims['KNR_LOC_NT']).clip(0),,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Drive time,@df.outbound * c_dtim * odt_skims['KNR_LOC_DTIME'],,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Walk egress time,@df.outbound * c_wegr * df.destination_walk_time,,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Walk other time,@df.outbound * c_waux * odt_skims['KNR_LOC_WAUX'],,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Fare and operating cost,@df.outbound * df.c_cost * (odt_skims['KNR_LOC_FARE'] + costPerMile*odt_skims['KNR_LOC_DDIST']),,,,,,,,,,,,1,,,,,, -KNR_LOC outbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['KNR_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Unavailable,inbound & ~knr_local_available_inbound,,,,,,,,,,,,-999,,,,,, -KNR_LOC inbound - In-vehicle time,@df.inbound * c_ivt * odt_skims['KNRE_LOC_IVT'],,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Short iwait time,@df.inbound * c_short_i_wait * (odt_skims['KNRE_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Long iwait time,@df.inbound * c_long_i_wait * (odt_skims['KNRE_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - transfer wait time,@df.inbound * c_xwait * odt_skims['KNRE_LOC_XWAIT'],,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - number of transfers,@df.inbound * c_xfers_wlk * (odt_skims['KNRE_LOC_NT']).clip(0),,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Drive time,@df.inbound * c_dtim * odt_skims['KNRE_LOC_DTIME'],,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Walk access time,@df.inbound * c_wacc * df.origin_walk_time,,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Walk other time,@df.inbound * c_waux * odt_skims['KNRE_LOC_WAUX'],,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Fare and operating cost,@df.inbound * df.c_cost * (odt_skims['KNRE_LOC_FARE'] + costPerMile*odt_skims['KNRE_LOC_DDIST']),,,,,,,,,,,,1,,,,,, -KNR_LOC inbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['KNRE_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,,,,1,,,,,, -#Drive to Premium,,,,,,,,,,,,,,,,,,, -KNR_PRM - Unavailable for persons less than 16,age < 16,,,,,,,,,,,,,-999,,,,, -KNR_PRM - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,,,,,,1,,,,, -KNR_PRM - Topology,@c_topology_trn * df.trip_topology,,,,,,,,,,,,,1,,,,, -KNR_PRM - Person is less than 10 years old,@c_age010_trn * (df.age < 10),,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Unavailable,outbound & ~knr_premium_available_outbound,,,,,,,,,,,,,-999,,,,, -KNR_PRM outbound - In-vehicle time,@df.outbound * c_ivt * odt_skims['KNR_PRM_IVT'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on PMov,@df.outbound * (c_ivt_pmov - c_ivt) * odt_skims['KNR_PRM_IVTT_PMov'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on StCar,@df.outbound * (c_ivt_stcar - c_ivt) * odt_skims['KNR_PRM_IVTT_StCar'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on BRT,@df.outbound * (c_ivt_brt - c_ivt) * odt_skims['KNR_PRM_IVTT_Brt'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on URB,@df.outbound * (c_ivt_urb - c_ivt) * odt_skims['KNR_PRM_IVTT_UrbRail'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on COM,@df.outbound * (c_ivt_com - c_ivt) * odt_skims['KNR_PRM_IVTT_ComRail'],,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Short iwait time,@df.outbound * c_short_i_wait * (odt_skims['KNR_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Long iwait time,@df.outbound * c_long_i_wait * (odt_skims['KNR_PRM_IWAIT']-waitThresh).clip(0) ,,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - transfer wait time,@df.outbound * c_xwait * odt_skims['KNR_PRM_XWAIT'],,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - number of transfers,@df.outbound * c_xfers_drv * (odt_skims['KNR_PRM_NT']).clip(0),,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Drive time,@df.outbound * c_dtim * odt_skims['KNR_PRM_DTIME'],,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Walk egress time,@df.outbound * c_wegr * df.destination_walk_time,,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Walk other time,@df.outbound * c_waux * odt_skims['KNR_PRM_WAUX'],,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Fare and operating cost,@df.outbound * df.c_cost * (odt_skims['KNR_PRM_FARE'] + costPerMile * odt_skims['KNR_PRM_DDIST']),,,,,,,,,,,,,1,,,,, -KNR_PRM outbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['KNR_PRM_DDIST']) / od_skims['DIST'],,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Unavailable,inbound & ~knr_premium_available_inbound,,,,,,,,,,,,,-999,,,,, -KNR_PRM inbound - In-vehicle time,@df.inbound * c_ivt * odt_skims['KNRE_PRM_IVT'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on PMov,@df.inbound * (c_ivt_pmov - c_ivt) * odt_skims['KNRE_PRM_IVTT_PMov'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on StCar,@df.inbound * (c_ivt_stcar - c_ivt) * odt_skims['KNRE_PRM_IVTT_StCar'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on BRT,@df.inbound * (c_ivt_brt - c_ivt) * odt_skims['KNRE_PRM_IVTT_Brt'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on URB,@df.inbound * (c_ivt_urb - c_ivt) * odt_skims['KNRE_PRM_IVTT_UrbRail'],,,,,,,,,,,,,1,,,,, -KNR_PRM - In-vehicle time on COM,@df.inbound * (c_ivt_com - c_ivt) * odt_skims['KNRE_PRM_IVTT_ComRail'],,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Short iwait time,@df.inbound * c_short_i_wait * (odt_skims['KNRE_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Long iwait time,@df.inbound * c_long_i_wait * (odt_skims['KNRE_PRM_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - transfer wait time,@df.inbound * c_xwait * odt_skims['KNRE_PRM_XWAIT'],,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - number of transfers,@df.inbound * c_xfers_drv * (odt_skims['KNRE_PRM_NT']).clip(0),,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Drive time,@df.inbound * c_dtim * odt_skims['KNRE_PRM_DTIME'],,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Walk access time,@df.inbound * c_wacc * df.origin_walk_time,,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Walk other time,@df.inbound * c_waux * odt_skims['KNRE_PRM_WAUX'],,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Fare and operating cost,@df.inbound * df.c_cost * (odt_skims['KNRE_PRM_FARE'] + costPerMile * odt_skims['KNRE_PRM_DDIST']),,,,,,,,,,,,,1,,,,, -KNR_PRM inbound - Ratio of drive access distance to OD distance,@df.inbound * c_dacc_ratio * (odt_skims['KNRE_PRM_DDIST'])/ od_skims['DIST'],,,,,,,,,,,,,1,,,,, -#KNR to Mix,,,,,,,,,,,,,,,,,,, -KNR_MIX - Unavailable for persons less than 16,age < 16,,,,,,,,,,,,,,-999,,,, -KNR_MIX - Destination zone densityIndex,@c_density_index * df.density_index,,,,,,,,,,,,,,1,,,, -KNR_MIX - Topology,@c_topology_trn * df.trip_topology,,,,,,,,,,,,,,1,,,, -KNR_MIX - Person is less than 10 years old,@c_age010_trn * (df.age < 10),,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Unavailable,outbound & ~knr_mix_available_outbound,,,,,,,,,,,,,,-999,,,, -KNR_MIX outbound - In-vehicle time,@df.outbound * c_ivt * odt_skims['KNR_MIX_IVT'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on Bus,@df.outbound * c_ivt * odt_skims['KNR_MIX_IVTT_Bus'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on PMov,@df.outbound * (c_ivt_pmov - c_ivt) * odt_skims['KNR_MIX_IVTT_PMov'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on StCar,@df.outbound * (c_ivt_stcar - c_ivt) * odt_skims['KNR_MIX_IVTT_StCar'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on BRT,@df.outbound * (c_ivt_brt - c_ivt) * odt_skims['KNR_MIX_IVTT_Brt'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on URB,@df.outbound * (c_ivt_urb - c_ivt) * odt_skims['KNR_MIX_IVTT_UrbRail'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on COM,@df.outbound * (c_ivt_com - c_ivt) * odt_skims['KNR_MIX_IVTT_ComRail'],,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Short iwait time,@df.outbound * c_short_i_wait * (odt_skims['KNR_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Long iwait time,@df.outbound * c_long_i_wait * (odt_skims['KNR_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - transfer wait time,@df.outbound * c_xwait * odt_skims['KNR_MIX_XWAIT'],,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - number of transfers,@df.outbound * c_xfers_drv * (odt_skims['KNR_MIX_NT']).clip(0),,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Drive time,@df.outbound * c_dtim * odt_skims['KNR_MIX_DTIME'],,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Walk egress ime,@df.outbound * c_wegr * df.destination_walk_time,,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Walk other time,@df.outbound * c_waux * odt_skims['KNR_MIX_WAUX'],,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Fare and operating cost,@df.outbound * df.c_cost * (odt_skims['KNR_MIX_FARE'] + costPerMile * odt_skims['KNR_MIX_DDIST']),,,,,,,,,,,,,,1,,,, -KNR_MIX outbound - Ratio of drive access distance to OD distance,@df.outbound * c_dacc_ratio * (odt_skims['KNR_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Unavailable,inbound & ~knr_mix_available_inbound,,,,,,,,,,,,,,-999,,,, -KNR_MIX inbound - In-vehicle time,@df.inbound * c_ivt * odt_skims['KNRE_MIX_IVT'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on Bus,@df.inbound * c_ivt * odt_skims['KNRE_MIX_IVTT_Bus'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on PMov,@df.inbound * (c_ivt_pmov - c_ivt) * odt_skims['KNRE_MIX_IVTT_PMov'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on StCar,@df.inbound * (c_ivt_stcar - c_ivt) * odt_skims['KNRE_MIX_IVTT_StCar'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on BRT,@df.inbound * (c_ivt_brt - c_ivt) * odt_skims['KNRE_MIX_IVTT_Brt'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on URB,@df.inbound * (c_ivt_urb - c_ivt) * odt_skims['KNRE_MIX_IVTT_UrbRail'],,,,,,,,,,,,,,1,,,, -KNR_MIX - In-vehicle time on COM,@df.inbound * (c_ivt_com - c_ivt) * odt_skims['KNRE_MIX_IVTT_ComRail'],,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Short iwait time,@df.inbound * c_short_i_wait * (odt_skims['KNRE_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Long iwait time,@df.inbound * c_long_i_wait * (odt_skims['KNRE_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - transfer wait time,@df.inbound * c_xwait * odt_skims['KNRE_MIX_XWAIT'],,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - number of transfers,@df.inbound * c_xfers_drv * (odt_skims['KNRE_MIX_NT']).clip(0),,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Drive time,@df.inbound * c_dtim * odt_skims['KNRE_MIX_DTIME'],,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Walk access time,@df.inbound * c_wacc * df.origin_walk_time,,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Walk other time,@df.inbound * c_waux * odt_skims['KNRE_MIX_WAUX'],,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Fare and operating cost,@df.inbound * df.c_cost * (odt_skims['KNRE_MIX_FARE'] + costPerMile * odt_skims['KNRE_MIX_DDIST']),,,,,,,,,,,,,,1,,,, -KNR_MIX inbound - Ratio of drive access distance to OD distance,@df.inbound * c_dacc_ratio * (odt_skims['KNRE_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,,,,1,,,, -#Taxi,,,,,,,,,,,,,,,,,,, -Taxi - In-vehicle time,@c_ivt * odt_skims['HOV2_TIME'],,,,,,,,,,,,,,,,1,, -Taxi - Wait time,@c_ivt * 1.5 * df.origTaxiWaitTime,,,,,,,,,,,,,,,,1,, -#Taxi - Tolls,@df.c_cost * odt_skims['HOV2_VTOLL'],,,,,,,,,,,,,,,,1,, -#Taxi - Bridge toll,@df.c_cost * odt_skims['HOV2_BTOLL'],,,,,,,,,,,,,,,,1,, -Taxi - Fare,@df.c_cost * (Taxi_baseFare + odt_skims['HOV2_DIST'] * Taxi_costPerMile + odt_skims['HOV2_TIME'] * Taxi_costPerMinute)*100,,,,,,,,,,,,,,,,1,, -#TNC Single,,,,,,,,,,,,,,,,,,, -TNC Single - In-vehicle time,@c_ivt * odt_skims['HOV2_TIME'] ,,,,,,,,,,,,,,,,,1, -TNC Single - Wait time,@c_ivt * 1.5 * df.origSingleTNCWaitTime,,,,,,,,,,,,,,,,,1, -#TNC Single - Tolls,@df.c_cost * odt_skims['HOV2_VTOLL'],,,,,,,,,,,,,,,,,1, -#TNC Single - Bridge toll,@df.c_cost * (odt_skims['HOV2_BTOLL'] + dot_skims['HOV2_BTOLL']),,,,,,,,,,,,,,,,,1, -TNC Single - Cost,"@df.c_cost * np.maximum(TNC_single_baseFare + odt_skims['HOV2_DIST'] * TNC_single_costPerMile + odt_skims['HOV2_TIME'] * TNC_single_costPerMinute, TNC_single_costMinimum) * 100",,,,,,,,,,,,,,,,,1, -#TNC Shared,,,,,,,,,,,,,,,,,,, -TNC Shared - In-vehicle time,@c_ivt * odt_skims['HOV2_TIME'] * TNC_shared_IVTFactor,,,,,,,,,,,,,,,,,,1 -TNC Shared - Wait time,@c_ivt * 1.5 * df.origSharedTNCWaitTime,,,,,,,,,,,,,,,,,,1 -#TNC Shared - Tolls,@df.c_cost * odt_skims['HOV2_VTOLL'],,,,,,,,,,,,,,,,,,1 -#TNC Shared - Bridge toll,@df.c_cost * (odt_skims['HOV2_BTOLL'] + dot_skims['HOV2_BTOLL']),,,,,,,,,,,,,,,,,,1 -TNC Shared - Cost,"@df.c_cost * np.maximum(TNC_shared_baseFare + odt_skims['HOV2_DIST'] * TNC_shared_costPerMile + odt_skims['HOV2_TIME']* TNC_shared_costPerMinute, TNC_shared_costMinimum) * 100",,,,,,,,,,,,,,,,,,1 -#,,,,,,,,,,,,,,,,,,, -Auto tour mode availability,tour_mode_is_auto,,,,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,,, -Walk tour mode availability,tour_mode_is_walk,-999,-999,-999,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,,, -Bike tour mode availability,tour_mode_is_bike,-999,-999,-999,,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,,, -Walk to Transit tour mode availability,tour_mode_is_walk_transit,-999,,,,-999,,,,-999,-999,-999,-999,-999,-999,-999,,, -Drive to Transit tour mode availability,tour_mode_is_drive_transit,-999,-999,-999,-999,-999,-999,-999,-999,,,,,,,-999,,, -School bus tour mode availability,tour_mode_is_school_bus,-999,,,,-999,-999,-999,-999,-999,-999,-999,-999,-999,-999,,,, -#indiv tour ASCs,,,,,,,,,,,,,,,,,,, -Drive Alone tour mode ASC -- shared ride 2,@sov_ASC_sr2 * (df.is_indiv & df.i_tour_mode.isin(I_SOV_MODES)),,1,,,,,,,,,,,,,,,, -Drive Alone tour mode ASC -- shared ride 3+,@sov_ASC_sr3p * (df.is_indiv & df.i_tour_mode.isin(I_SOV_MODES)),,,1,,,,,,,,,,,,,,, -Drive Alone tour mode ASC -- walk,@sov_ASC_walk * (df.is_indiv & df.i_tour_mode.isin(I_SOV_MODES)),,,,1,,,,,,,,,,,,,, -Drive Alone tour mode ASC -- ride hail,@sov_ASC_rh * (df.is_indiv & df.i_tour_mode.isin(I_SOV_MODES)),,,,,,,,,,,,,,,,1,1,1 -#Shared Ride 2 tour mode ASC -- shared ride 2 - reference mode,@sr2_ASC_sr2 * (df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),,1,,,,,,,,,,,,,,,, -Shared Ride 2 tour mode ASC -- drive alone,@sr2_ASC_sov * (df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),1,,,,,,,,,,,,,,,,, -Shared Ride 2 tour mode ASC -- walk,@sr2_ASC_walk * (df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),,,,1,,,,,,,,,,,,,, -Shared Ride 2 tour mode ASC -- ride hail,@sr2_ASC_rh * (df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),,,,,,,,,,,,,,,,1,1,1 -Shared Ride 3+ tour mode ASC -- drive alone,@sr3p_ASC_sov * (df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),1,,,,,,,,,,,,,,,,, -Shared Ride 3+ tour mode ASC -- shared ride 2,@sr3p_ASC_sr2 * (df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,1,,,,,,,,,,,,,,,, -#Shared Ride 3+ tour mode ASC -- shared ride 3+ - reference mode,@sr3p_ASC_sr3p * (df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,,1,,,,,,,,,,,,,,, -Shared Ride 3+ tour mode ASC -- walk,@sr3p_ASC_walk * (df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,,,1,,,,,,,,,,,,,, -Shared Ride 3+ tour mode ASC -- ride hail,@sr3p_ASC_rh * (df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,,,,,,,,,,,,,,,1,1,1 -Walk tour mode ASC -- ride hail,@walk_ASC_rh * df.is_indiv * (df.i_tour_mode == I_WALK_MODE),,,,,,,,,,,,,,,,1,1,1 -Bike tour mode ASC -- walk,@bike_ASC_walk * df.is_indiv * (df.i_tour_mode == I_BIKE_MODE),,,,1,,,,,,,,,,,,,, -Bike tour mode ASC -- ride hail,@bike_ASC_rh * df.is_indiv * (df.i_tour_mode == I_BIKE_MODE),,,,,,,,,,,,,,,,1,1,1 -Walk-transit tour mode ASC -- shared ride 2,@walktransit_ASC_sr2 * (df.is_indiv & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,1,,,,,,,,,,,,,,,, -Walk-transit tour mode ASC -- shared ride 3+,@walktransit_ASC_sr3p * (df.is_indiv & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,1,,,,,,,,,,,,,,, -Walk-transit tour mode ASC -- walk,@walktransit_ASC_walk * (df.is_indiv & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,,1,,,,,,,,,,,,,, -Walk-transit tour mode ASC -- ride hail,@walk_transit_ASC_rh * (df.is_indiv & df.tour_mode_is_walk_transit),,,,,,,,,,,,,,,,1,1,1 -Drive to Transit tour mode ASC -- ride hail,@drive_transit_ASC_rh * (df.is_indiv & df.tour_mode_is_drive_transit),,,,,,,,,,,,,,,,1,1,1 -Ride Hail tour mode ASC -- ride hail,@ride_hail_ASC_taxi * (df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,1,, -Ride Hail tour mode ASC -- ride hail,@ride_hail_ASC_tnc_single * (df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,,1, -Ride Hail tour mode ASC -- ride hail,@ride_hail_ASC_tnc_shared * (df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,,,1 -#Walk-transit tour mode ASC -- walk-transit - reference mode,@walktransit_ASC_walktransit * (df.is_indiv & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,,,,1,1,1,,,,,,,,,, -#PNR tour mode ASC -- PNR - reference mode,@pnr_ASC_pnr * (df.is_indiv & df.i_tour_mode.isin(I_PNR_TRANSIT_MODES)),,,,,,,,,1,1,1,,,,,,, -#KNR tour mode ASC -- KNR - reference mode,@knr_ASC_knr * (df.is_indiv & df.i_tour_mode.isin(I_KNR_TRANSIT_MODES)),,,,,,,,,,,,1,1,1,,,, -#joint tour ASCs,,,,,,,,,,,,,,,,,,, -#joint - SR2 tour mode ASC -- shared ride 2 - reference mode,@joint_sr2_ASC_sr2 * (df.is_joint & df.i_tour_mode.isin(I_SR2_MODES)),,1,,,,,,,,,,,,,,,, -joint - SR2 tour mode ASC -- walk,@joint_sr2_ASC_walk * (df.is_joint & df.i_tour_mode.isin(I_SR2_MODES)),,,,1,,,,,,,,,,,,,, -#joint - SR3 tour mode ASC -- shared ride 3+ - reference mode,@joint_sr3p_ASC_sr3p * (df.is_joint & df.i_tour_mode.isin(I_SR3P_MODES)),,,1,,,,,,,,,,,,,,, -joint - SR3 tour mode ASC -- shared ride 2,@joint_sr3p_ASC_sr2 * (df.is_joint & df.i_tour_mode.isin(I_SR3P_MODES)),,1,,,,,,,,,,,,,,,, -joint - SR3 tour mode ASC -- walk,@joint_sr3p_ASC_walk * (df.is_joint & df.i_tour_mode.isin(I_SR3P_MODES)),,,,1,,,,,,,,,,,,,, -joint - auto tour mode ASC -- ride hail,@joint_auto_ASC_rh * (df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,1,1,1 -joint - Bike tour mode ASC -- walk,@joint_bike_ASC_walk * df.is_joint * (df.i_tour_mode == I_BIKE_MODE),,,,1,,,,,,,,,,,,,, -joint - Bike tour mode ASC -- ride hail,@joint_bike_ASC_rh * df.is_joint * (df.i_tour_mode == I_BIKE_MODE),,,,,,,,,,,,,,,,1,1,1 -joint - Walk-transit tour mode ASC -- shared ride 2,@joint_walktransit_ASC_sr2 * (df.is_joint & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,1,,,,,,,,,,,,,,,, -joint - Walk-transit tour mode ASC -- shared ride 3+,@joint_walktransit_ASC_sr3p * (df.is_joint & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,1,,,,,,,,,,,,,,, -joint - Walk-transit tour mode ASC -- walk,@joint_walktransit_ASC_walk * (df.is_joint & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,,1,,,,,,,,,,,,,, -joint - Walk to Transit tour mode ASC -- ride hail,@joint_walk_transit_ASC_rh * (df.is_joint & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,,,,,,,,,,,,,,1,1,1 -joint - Drive to Transit tour mode ASC -- ride hail,@joint_drive_transit_ASC_rh * (df.is_joint & df.tour_mode_is_drive_transit),,,,,,,,,,,,,,,,1,1,1 -joint - Ride Hail tour mode ASC -- ride hail,@joint_ride_hail_ASC_taxi * (df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,1,, -joint - Ride Hail tour mode ASC -- ride hail,@joint_ride_hail_ASC_tnc_single * (df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,,1, -joint - Ride Hail tour mode ASC -- ride hail,@joint_ride_hail_ASC_tnc_shared * (df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,,,1 -#joint - Walk-transit tour mode ASC -- walk-transit - reference mode,@joint_walktransit_ASC_walktransit * (df.is_joint & df.i_tour_mode.isin(I_WALK_TRANSIT_MODES)),,,,,,1,1,1,,,,,,,,,, -#joint - PNR tour mode ASC -- PNR - reference mode,@joint_pnr_ASC_pnr * (df.is_joint & df.i_tour_mode.isin(I_PNR_TRANSIT_MODES)),,,,,,,,,1,1,1,,,,,,, -#joint - KNR tour mode ASC -- KNR - reference mode,@joint_knr_ASC_knr * (df.is_joint & df.i_tour_mode.isin(I_KNR_TRANSIT_MODES)),,,,,,,,,,,,1,1,1,,,, -#,,,,,,,,,,,,,,,,,,, -Walk not available for long distances,@df.tour_mode_is_walk & (od_skims['DISTWALK'] > 3),,,,-999,,,,,,,,,,,,,, -Bike not available for long distances,@df.tour_mode_is_walk & (od_skims['DISTBIKE'] > 8),,,,,-999,,,,,,,,,,,,, -Origin density index,@(c_origin_density_index*df.origin_density_index).clip(c_origin_density_index_max) if origin_density_applied else 0,,,,1,1,1,1,1,,,,,,,,,, -#Walk-express penalty for intermediate stops,@c_walk_express_penalty * ~(df.first_trip | df.first_trip),,,,,,,,1,,,,,,,,,, -#School Bus,,,,,,,,,,,,,,,,,,, -School Bus Unavailable if primary purpose NOT school,~is_school,,,,,,,,,,,,,,,-999,,, -School Bus Unavailable - Tour Mode = SOV,tour_mode_is_SOV,,,,,,,,,,,,,,,-999,,, -School Bus Unavailable - Tour Mode = Transit,tour_mode_is_drive_transit,,,,,,,,,,,,,,,-999,,, -School Bus - In-vehicle time (20 miles per hour),@c_ivt * odt_skims['HOV3_DIST']*3,,,,,,,,,,,,,,,1,,, -School Bus - Walk Time,@c_wacc*10,,,,,,,,,,,,,,,1,,, -School Bus - Wait Time,@c_short_i_wait*10,,,,,,,,,,,,,,,1,,, -School Bus tour mode ASC -- shared ride 2,@schoolbus_ASC_sr2 * df.i_tour_mode.isin(I_SCHOOLBUS_MODE),,1,,,,,,,,,,,,,,,, -School Bus tour mode ASC -- shared ride 3+,@schoolbus_ASC_sr3p * df.i_tour_mode.isin(I_SCHOOLBUS_MODE),,,1,,,,,,,,,,,,,,, -School Bus tour mode ASC -- walk,@schoolbus_ASC_walk * df.i_tour_mode.isin(I_SCHOOLBUS_MODE),,,,1,,,,,,,,,,,,,, -local_ASC,@local_ASC,,,,,,1,,,1,,,1,,,,,, -premium_ASC,@premium_ASC,,,,,,,1,,,1,,,1,,,,, -mix_ASC,@mix_ASC,,,,,,,,1,,,1,,,1,,,, -Origin density index,@(c_origin_density_index*df.origin_density_index).clip(c_origin_density_index_max) if origin_density_applied else 0,,,,,,,1,1,1,1,1,1,1,,,,1,1 -TNC shared adjustment,@adjust_tnc_shared,,,,,,,,,,,,,,,,,,1 +Label,Description,Expression,DRIVEALONE,SHARED2,SHARED3,WALK,BIKE,WALK_LOC,WALK_PRM,WALK_MIX,PNR_LOC,PNR_PRM,PNR_MIX,KNR_LOC,KNR_PRM,KNR_MIX,SCHOOLBUS,TAXI,TNC_SINGLE,TNC_SHARED +#Drive_alone_no_toll,#Drive alone no toll,,,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Unavailable,DRIVEALONE - Unavailable,sov_available == False,coef_unavailable,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Unavailable_for_persons_less_than_16,DRIVEALONE - Unavailable for persons less than 16,age < 16,coef_unavailable,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Unavailable_for_joint_tours,DRIVEALONE - Unavailable for joint tours,is_joint == True,coef_unavailable,,,,,,,,,,,,,,,,, +#util_DRIVEALONE_Unavailable_if_didn't_drive_to_work,DRIVEALONE - Unavailable if didn't drive to work,is_atwork_subtour & ~work_tour_is_SOV,coef_unavailable,,,,,,,,,,,,,,,,, +util_DRIVEALONE_In-vehicle_time,DRIVEALONE - In-vehicle time,@odt_skims['SOV_TIME'],coef_ivt,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Terminal_time,DRIVEALONE - Terminal time,@coef_walktimeshort_multiplier * df.total_terminal_time,coef_ivt,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Operating_cost_,DRIVEALONE - Operating cost ,@ivt_cost_multiplier * df.ivot * costPerMile * odt_skims['SOV_DIST'],coef_ivt,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Parking_cost_,DRIVEALONE - Parking cost ,@ivt_cost_multiplier * df.ivot * df.total_parking_cost,coef_ivt,,,,,,,,,,,,,,,,, +util_DRIVEALONE_Person_is_between_16_and_19_years_old,DRIVEALONE - Person is between 16 and 19 years old,@(df.age >= 16) & (df.age <= 19),coef_age1619_da,,,,,,,,,,,,,,,,, +#Shared_ride_2,#Shared ride 2,,,,,,,,,,,,,,,,,,, +util_SHARED2_Unavailable,SHARED2 - Unavailable,hov2_available == False,,coef_unavailable,,,,,,,,,,,,,,,, +util_SHARED2_Unavailable_based_on_party_size,SHARED2 - Unavailable based on party size,is_joint & (number_of_participants > 2),,coef_unavailable,,,,,,,,,,,,,,,, +util_SHARED2_In-vehicle_time,SHARED2 - In-vehicle time,@odt_skims['HOV2_TIME'],,coef_ivt,,,,,,,,,,,,,,,, +util_SHARED2_Terminal_time,SHARED2 - Terminal time,@coef_walktimeshort_multiplier * df.total_terminal_time,,coef_ivt,,,,,,,,,,,,,,,, +util_SHARED2_Operating_cost,SHARED2 - Operating cost,@ivt_cost_multiplier * df.ivot * costPerMile * odt_skims['HOV2_DIST'],,coef_ivt,,,,,,,,,,,,,,,, +util_SHARED2_Parking_cost,SHARED2 - Parking cost,@ivt_cost_multiplier * df.ivot * df.total_parking_cost / costShareSr2,,coef_ivt,,,,,,,,,,,,,,,, +util_SHARED2_One_person_household,SHARED2 - One person household,@(df.hhsize == 1),,coef_hhsize1_sr,,,,,,,,,,,,,,,, +util_SHARED2_Two_person_household,SHARED2 - Two person household,@(df.hhsize == 2),,coef_hhsize2_sr,,,,,,,,,,,,,,,, +util_SHARED2_Person_is_16_years_old_or_older,SHARED2 - Person is 16 years old or older,@(df.age >= 16),,coef_age1619_da,,,,,,,,,,,,,,,, +#Shared_ride_3+,#Shared ride 3+,,,,,,,,,,,,,,,,,,, +util_SHARED3_Unavailable,SHARED3 - Unavailable,hov3_available == False,,,coef_unavailable,,,,,,,,,,,,,,, +util_SHARED3_Unavailable_based_joint_tour_mode,SHARED3 - Unavailable based joint tour mode,@df.is_joint & df.i_tour_mode.isin(I_SR2_MODES),,,coef_unavailable,,,,,,,,,,,,,,, +util_SHARED3_Unavailable_if_tour_mode_is_shared_2,SHARED3 - Unavailable if tour mode is shared 2,@df.i_tour_mode.isin(I_SR2_MODES),,,coef_unavailable,,,,,,,,,,,,,,, +util_SHARED3_In-vehicle_time,SHARED3 - In-vehicle time,@odt_skims['HOV3_TIME'],,,coef_ivt,,,,,,,,,,,,,,, +util_SHARED3_Terminal_time,SHARED3 - Terminal time,@coef_walktimeshort_multiplier * df.total_terminal_time,,,coef_ivt,,,,,,,,,,,,,,, +util_SHARED3_Operating_cost,SHARED3 - Operating cost,@ivt_cost_multiplier * df.ivot * costPerMile * odt_skims['HOV3_DIST'],,,coef_ivt,,,,,,,,,,,,,,, +util_SHARED3_Parking_cost,SHARED3 - Parking cost,@ivt_cost_multiplier * df.ivot * df.total_parking_cost / costShareSr3,,,coef_ivt,,,,,,,,,,,,,,, +util_SHARED3_One_person_household,SHARED3 - One person household,@(df.hhsize == 1),,,coef_hhsize1_sr,,,,,,,,,,,,,,, +util_SHARED3_Two_person_household,SHARED3 - Two person household,@(df.hhsize == 2),,,coef_hhsize2_sr,,,,,,,,,,,,,,, +util_SHARED3_Person_is_16_years_old_or_older,SHARED3 - Person is 16 years old or older,@(df.age >= 16),,,coef_age16p_sr,,,,,,,,,,,,,,, +#Walk,#Walk,,,,,,,,,,,,,,,,,,, +util_WALK_Time_up_to_2_miles,WALK - Time up to 2 miles,@coef_walktimeshort_multiplier * od_skims['DISTWALK'].clip(upper=walkThresh) * 60/walkSpeed,,,,coef_ivt,,,,,,,,,,,,,, +util_WALK_Time_beyond_2_of_a_miles,WALK - Time beyond 2 of a miles,@walktimelong_multiplier * (od_skims['DISTWALK'] - walkThresh).clip(lower=0) * 60/walkSpeed,,,,coef_ivt,,,,,,,,,,,,,, +util_WALK_Destination_zone_densityIndex,WALK - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,coef_ivt,,,,,,,,,,,,,, +util_WALK_Topology,WALK - Topology,@topology_walk_multiplier * df.trip_topology,,,,coef_ivt,,,,,,,,,,,,,, +#Bike,#Bike,,,,,,,,,,,,,,,,,,, +util_BIKE_Unavailable_if_tour_mode_is_not_bike,BIKE - Unavailable if tour mode is not bike,~tour_mode_is_bike,,,,,coef_unavailable,,,,,,,,,,,,, +#util_BIKE_Unavailable_if_didn't_bike_to_work,BIKE - Unavailable if didn't bike to work,is_atwork_subtour & ~work_tour_is_bike,,,,,coef_unavailable,,,,,,,,,,,,, +util_BIKE_Time_up_to_6_miles,BIKE - Time up to 6 miles,@coef_biketimeshort_multiplier * od_skims['DISTBIKE'].clip(upper=bikeThresh)*60/bikeSpeed,,,,,coef_ivt,,,,,,,,,,,,, +util_BIKE_Time_beyond_6_of_a_miles,BIKE - Time beyond 6 of a miles,@biketimelong_multiplier * (od_skims['DISTBIKE']-bikeThresh).clip(lower=0)*60/bikeSpeed,,,,,coef_ivt,,,,,,,,,,,,, +util_BIKE_Destination_zone_densityIndex,BIKE - Destination zone densityIndex,@density_index_multiplier*df.density_index,,,,,coef_ivt,,,,,,,,,,,,, +util_BIKE_Topology,BIKE - Topology,@topology_bike_multiplier * df.trip_topology,,,,,coef_ivt,,,,,,,,,,,,, +#Walk_to_Local,#Walk to Local,,,,,,,,,,,,,,,,,,, +util_WALK_LOC_Unavailable,WALK_LOC - Unavailable,walk_local_available == False,,,,,,coef_unavailable,,,,,,,,,,,, +util_WALK_LOC_In-vehicle_time,WALK_LOC - In-vehicle time,@odt_skims['WLK_LOC_IVT'],,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Short_iwait_time,WALK_LOC - Short iwait time,@coef_short_iwait_multiplier * (odt_skims['WLK_LOC_IWAIT']).clip(upper=waitThresh),,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Long_iwait_time,WALK_LOC - Long iwait time,@coef_long_iwait_multiplier * (odt_skims['WLK_LOC_IWAIT']-waitThresh).clip(0),,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_transfer_wait_time,WALK_LOC - transfer wait time,@coef_xwait_multiplier * odt_skims['WLK_LOC_XWAIT'],,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_number_of_transfers,WALK_LOC - number of transfers,@xfers_wlk_multiplier * (odt_skims['WLK_LOC_NT']).clip(0),,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Walk_access_time,WALK_LOC - Walk access time,@coef_wacc_multiplier * df.origin_walk_time,,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Walk_egress_time,WALK_LOC - Walk egress time,@coef_wegr_multiplier * df.destination_walk_time,,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Walk_other_time,WALK_LOC - Walk other time,@coef_waux_multiplier * odt_skims['WLK_LOC_WAUX'],,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Fare,WALK_LOC - Fare,@ivt_cost_multiplier * df.ivot * odt_skims['WLK_LOC_FARE'],,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Destination_zone_densityIndex,WALK_LOC - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Topology,WALK_LOC - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,coef_ivt,,,,,,,,,,,, +util_WALK_LOC_Person_is_less_than_10_years_old,WALK_LOC - Person is less than 10 years old,@(df.age <= 10),,,,,,coef_age010_trn,,,,,,,,,,,, +#Walk_to_Premium,#Walk to Premium,,,,,,,,,,,,,,,,,,, +util_WALK_PRM_Unavailable,WALK_PRM - Unavailable,walk_premium_available == False,,,,,,,coef_unavailable,,,,,,,,,,, +util_WALK_PRM_In-vehicle_time,WALK_PRM - In-vehicle time,@odt_skims['WLK_PRM_IVT'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_In-vehicle_time_on_PMov,WALK_PRM - In-vehicle time on PMov,@(coef_ivt_pmov_multiplier - 1) * odt_skims['WLK_PRM_IVTT_PMov'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_In-vehicle_time_on_StCar,WALK_PRM - In-vehicle time on StCar,@(coef_ivt_stcar_multiplier - 1) * odt_skims['WLK_PRM_IVTT_StCar'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_In-vehicle_time_on_BRT,WALK_PRM - In-vehicle time on BRT,@(coef_ivt_brt_multiplier - 1) * odt_skims['WLK_PRM_IVTT_Brt'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_In-vehicle_time_on_URB,WALK_PRM - In-vehicle time on URB,@(coef_ivt_urb_multiplier - 1) * odt_skims['WLK_PRM_IVTT_UrbRail'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_In-vehicle_time_on_COM,WALK_PRM - In-vehicle time on COM,@(coef_ivt_com_multiplier - 1) * odt_skims['WLK_PRM_IVTT_ComRail'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Short_iwait_time,WALK_PRM - Short iwait time,@coef_short_iwait_multiplier * (odt_skims['WLK_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Long_iwait_time,WALK_PRM - Long iwait time,@coef_long_iwait_multiplier * (odt_skims['WLK_PRM_IWAIT']-waitThresh).clip(0),,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_transfer_wait_time,WALK_PRM - transfer wait time,@coef_xwait_multiplier * odt_skims['WLK_PRM_XWAIT'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_number_of_transfers,WALK_PRM - number of transfers,@xfers_wlk_multiplier * (odt_skims['WLK_PRM_NT']).clip(0),,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Walk_access_time,WALK_PRM - Walk access time,@coef_wacc_multiplier * df.origin_walk_time,,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Walk_egress_time,WALK_PRM - Walk egress time,@coef_wegr_multiplier * df.destination_walk_time,,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Walk_otherLight_rail/Ferry_time,WALK_PRM - Walk otherLight rail/Ferry time,@coef_waux_multiplier * odt_skims['WLK_PRM_WAUX'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Fare,WALK_PRM - Fare,@ivt_cost_multiplier * df.ivot * odt_skims['WLK_PRM_FARE'],,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Destination_zone_densityIndex,WALK_PRM - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Topology,WALK_PRM - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,coef_ivt,,,,,,,,,,, +util_WALK_PRM_Person_is_less_than_10_years_old,WALK_PRM - Person is less than 10 years old,@(df.age <= 10),,,,,,,coef_age010_trn,,,,,,,,,,, +#Walk_to_Mix,#Walk to Mix,,,,,,,,,,,,,,,,,,, +util_WALK_MIX_Unavailable,WALK_MIX - Unavailable,walk_mix_available == False,,,,,,,,coef_unavailable,,,,,,,,,, +util_WALK_MIX_In-vehicle_time,WALK_MIX - In-vehicle time,@odt_skims['WLK_MIX_IVT'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_In-vehicle_time_on_Bus,WALK_MIX - In-vehicle time on Bus,@odt_skims['WLK_MIX_IVTT_Bus'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_In-vehicle_time_on_PMov,WALK_MIX - In-vehicle time on PMov,@(coef_ivt_pmov_multiplier - 1) * odt_skims['WLK_MIX_IVTT_PMov'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_In-vehicle_time_on_StCar,WALK_MIX - In-vehicle time on StCar,@(coef_ivt_stcar_multiplier - 1) * odt_skims['WLK_MIX_IVTT_StCar'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_In-vehicle_time_on_BRT,WALK_MIX - In-vehicle time on BRT,@(coef_ivt_brt_multiplier - 1) * odt_skims['WLK_MIX_IVTT_Brt'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_In-vehicle_time_on_URB,WALK_MIX - In-vehicle time on URB,@(coef_ivt_urb_multiplier - 1) * odt_skims['WLK_MIX_IVTT_UrbRail'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_In-vehicle_time_on_COM,WALK_MIX - In-vehicle time on COM,@(coef_ivt_com_multiplier - 1) * odt_skims['WLK_MIX_IVTT_ComRail'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Short_iwait_time,WALK_MIX - Short iwait time,@coef_short_iwait_multiplier * (odt_skims['WLK_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Long_iwait_time,WALK_MIX - Long iwait time,@coef_long_iwait_multiplier * (odt_skims['WLK_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_transfer_wait_time,WALK_MIX - transfer wait time,@coef_xwait_multiplier * odt_skims['WLK_MIX_XWAIT'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_number_of_transfers,WALK_MIX - number of transfers,@xfers_wlk_multiplier * (odt_skims['WLK_MIX_NT']).clip(0),,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Walk_access_time,WALK_MIX - Walk access time,@coef_wacc_multiplier * df.origin_walk_time,,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Walk_egress_time,WALK_MIX - Walk egress time,@coef_wegr_multiplier * df.destination_walk_time,,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Walk_other_time,WALK_MIX - Walk other time,@coef_waux_multiplier * odt_skims['WLK_MIX_WAUX'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Fare,WALK_MIX - Fare,@ivt_cost_multiplier * df.ivot * odt_skims['WLK_MIX_FARE'],,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Destination_zone_densityIndex,WALK_MIX - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Topology,WALK_MIX - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,coef_ivt,,,,,,,,,, +util_WALK_MIX_Person_is_less_than_10_years_old,WALK_MIX - Person is less than 10 years old,@(df.age <= 10),,,,,,,,coef_age010_trn,,,,,,,,,, +#PNR_to_Local,#PNR to Local,,,,,,,,,,,,,,,,,,, +util_PNR_LOC_Unavailable_for_zero_auto_households,PNR_LOC - Unavailable for zero auto households,auto_ownership == 0,,,,,,,,,coef_unavailable,,,,,,,,, +util_PNR_LOC_Unavailable_for_persons_less_than_16,PNR_LOC - Unavailable for persons less than 16,age < 16,,,,,,,,,coef_unavailable,,,,,,,,, +util_PNR_LOC_Destination_zone_densityIndex,PNR_LOC - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_Topology,PNR_LOC - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_Person_is_less_than_10_years_old,PNR_LOC - Person is less than 10 years old,@(df.age < 10),,,,,,,,,coef_age010_trn,,,,,,,,, +util_PNR_LOC_outbound_Unavailable,PNR_LOC outbound - Unavailable,outbound & ~pnr_local_available_outbound,,,,,,,,,coef_unavailable,,,,,,,,, +util_PNR_LOC_outbound_In-vehicle_time,PNR_LOC outbound - In-vehicle time,@df.outbound * odt_skims['PNR_LOC_IVT'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Short_iwait_time,PNR_LOC outbound - Short iwait time,@df.outbound * coef_short_iwait_multiplier * (odt_skims['PNR_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Long_iwait_time,PNR_LOC outbound - Long iwait time,@df.outbound * coef_long_iwait_multiplier * (odt_skims['PNR_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_transfer_wait_time,PNR_LOC outbound - transfer wait time,@df.outbound * coef_xwait_multiplier * odt_skims['PNR_LOC_XWAIT'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_number_of_transfers,PNR_LOC outbound - number of transfers,@df.outbound * xfers_wlk_multiplier * (odt_skims['PNR_LOC_NT']).clip(0),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Drive_time,PNR_LOC outbound - Drive time,@df.outbound * coef_dtim_multiplier * odt_skims['PNR_LOC_DTIME'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Walk_egress_time,PNR_LOC outbound - Walk egress time,@df.outbound * coef_wegr_multiplier * df.destination_walk_time,,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Walk_other_time,PNR_LOC outbound - Walk other time,@df.outbound * coef_waux_multiplier * odt_skims['PNR_LOC_WAUX'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Fare_and_operating_cost,PNR_LOC outbound - Fare and operating cost,@df.outbound * ivt_cost_multiplier * df.ivot * (odt_skims['PNR_LOC_FARE'] + costPerMile*odt_skims['PNR_LOC_DDIST']),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_outbound_Ratio_of_drive_access_distance_to_OD_distance,PNR_LOC outbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['PNR_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Unavailable,PNR_LOC inbound - Unavailable,inbound & ~pnr_local_available_inbound,,,,,,,,,coef_unavailable,,,,,,,,, +util_PNR_LOC_inbound_In-vehicle_time,PNR_LOC inbound - In-vehicle time,@df.inbound * odt_skims['PNRE_LOC_IVT'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Short_iwait_time,PNR_LOC inbound - Short iwait time,@df.inbound * coef_short_iwait_multiplier * (odt_skims['PNRE_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Long_iwait_time,PNR_LOC inbound - Long iwait time,@df.inbound * coef_long_iwait_multiplier * (odt_skims['PNRE_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_transfer_wait_time,PNR_LOC inbound - transfer wait time,@df.inbound * coef_xwait_multiplier * odt_skims['PNRE_LOC_XWAIT'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_number_of_transfers,PNR_LOC inbound - number of transfers,@df.inbound * xfers_wlk_multiplier * (odt_skims['PNRE_LOC_NT']).clip(0),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Drive_time,PNR_LOC inbound - Drive time,@df.inbound * coef_dtim_multiplier * odt_skims['PNRE_LOC_DTIME'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Walk_access_time,PNR_LOC inbound - Walk access time,@df.inbound * coef_wacc_multiplier * df.origin_walk_time,,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Walk_other_time,PNR_LOC inbound - Walk other time,@df.inbound * coef_waux_multiplier * odt_skims['PNRE_LOC_WAUX'],,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Fare_and_operating_cost,PNR_LOC inbound - Fare and operating cost,@df.inbound * ivt_cost_multiplier * df.ivot * (odt_skims['PNRE_LOC_FARE'] + costPerMile*odt_skims['PNRE_LOC_DDIST']),,,,,,,,,coef_ivt,,,,,,,,, +util_PNR_LOC_inbound_Ratio_of_drive_access_distance_to_OD_distance,PNR_LOC inbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['PNRE_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,coef_ivt,,,,,,,,, +#Drive_to_Premium,#Drive to Premium,,,,,,,,,,,,,,,,,,, +util_PNR_PRM_Unavailable_for_zero_auto_households,PNR_PRM - Unavailable for zero auto households,auto_ownership == 0,,,,,,,,,,coef_unavailable,,,,,,,, +util_PNR_PRM_Unavailable_for_persons_less_than_16,PNR_PRM - Unavailable for persons less than 16,age < 16,,,,,,,,,,coef_unavailable,,,,,,,, +util_PNR_PRM_Destination_zone_densityIndex,PNR_PRM - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_Topology,PNR_PRM - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_Person_is_less_than_10_years_old,PNR_PRM - Person is less than 10 years old,@(df.age < 10),,,,,,,,,,coef_age010_trn,,,,,,,, +util_PNR_PRM_outbound_Unavailable,PNR_PRM outbound - Unavailable,outbound & ~pnr_premium_available_outbound,,,,,,,,,,coef_unavailable,,,,,,,, +util_PNR_PRM_outbound_In-vehicle_time,PNR_PRM outbound - In-vehicle time,@df.outbound * odt_skims['PNR_PRM_IVT'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_PMov,PNR_PRM - In-vehicle time on PMov,@df.outbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['PNR_PRM_IVTT_PMov'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_StCar,PNR_PRM - In-vehicle time on StCar,@df.outbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['PNR_PRM_IVTT_StCar'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_BRT,PNR_PRM - In-vehicle time on BRT,@df.outbound * (coef_ivt_brt_multiplier - 1) * odt_skims['PNR_PRM_IVTT_Brt'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_URB,PNR_PRM - In-vehicle time on URB,@df.outbound * (coef_ivt_urb_multiplier - 1) * odt_skims['PNR_PRM_IVTT_UrbRail'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_COM,PNR_PRM - In-vehicle time on COM,@df.outbound * (coef_ivt_com_multiplier - 1) * odt_skims['PNR_PRM_IVTT_ComRail'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Short_iwait_time,PNR_PRM outbound - Short iwait time,@df.outbound * coef_short_iwait_multiplier * (odt_skims['PNR_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Long_iwait_time,PNR_PRM outbound - Long iwait time,@df.outbound * coef_long_iwait_multiplier * (odt_skims['PNR_PRM_IWAIT']-waitThresh).clip(0) ,,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_transfer_wait_time,PNR_PRM outbound - transfer wait time,@df.outbound * coef_xwait_multiplier * odt_skims['PNR_PRM_XWAIT'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_number_of_transfers,PNR_PRM outbound - number of transfers,@df.outbound * xfers_drv_multiplier * (odt_skims['PNR_PRM_NT']).clip(0),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Drive_time,PNR_PRM outbound - Drive time,@df.outbound * coef_dtim_multiplier * odt_skims['PNR_PRM_DTIME'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Walk_egress_time,PNR_PRM outbound - Walk egress time,@df.outbound * coef_wegr_multiplier * df.destination_walk_time,,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Walk_other_time,PNR_PRM outbound - Walk other time,@df.outbound * coef_waux_multiplier * odt_skims['PNR_PRM_WAUX'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Fare_and_operating_cost,PNR_PRM outbound - Fare and operating cost,@df.outbound * ivt_cost_multiplier * df.ivot * (odt_skims['PNR_PRM_FARE'] + costPerMile * odt_skims['PNR_PRM_DDIST']),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_outbound_Ratio_of_drive_access_distance_to_OD_distance,PNR_PRM outbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['PNR_PRM_DDIST']) / od_skims['DIST'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Unavailable,PNR_PRM inbound - Unavailable,inbound & ~pnr_premium_available_inbound,,,,,,,,,,coef_unavailable,,,,,,,, +util_PNR_PRM_inbound_In-vehicle_time,PNR_PRM inbound - In-vehicle time,@df.inbound * odt_skims['PNRE_PRM_IVT'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_PMov,PNR_PRM - In-vehicle time on PMov,@df.inbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['PNRE_PRM_IVTT_PMov'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_StCar,PNR_PRM - In-vehicle time on StCar,@df.inbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['PNRE_PRM_IVTT_StCar'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_BRT,PNR_PRM - In-vehicle time on BRT,@df.inbound * (coef_ivt_brt_multiplier - 1) * odt_skims['PNRE_PRM_IVTT_Brt'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_URB,PNR_PRM - In-vehicle time on URB,@df.inbound * (coef_ivt_urb_multiplier - 1) * odt_skims['PNRE_PRM_IVTT_UrbRail'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_In-vehicle_time_on_COM,PNR_PRM - In-vehicle time on COM,@df.inbound * (coef_ivt_com_multiplier - 1) * odt_skims['PNRE_PRM_IVTT_ComRail'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Short_iwait_time,PNR_PRM inbound - Short iwait time,@df.inbound * coef_short_iwait_multiplier * (odt_skims['PNRE_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Long_iwait_time,PNR_PRM inbound - Long iwait time,@df.inbound * coef_long_iwait_multiplier * (odt_skims['PNRE_PRM_IWAIT']-waitThresh).clip(0),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_transfer_wait_time,PNR_PRM inbound - transfer wait time,@df.inbound * coef_xwait_multiplier * odt_skims['PNRE_PRM_XWAIT'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_number_of_transfers,PNR_PRM inbound - number of transfers,@df.inbound * xfers_drv_multiplier * (odt_skims['PNRE_PRM_NT']).clip(0),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Drive_time,PNR_PRM inbound - Drive time,@df.inbound * coef_dtim_multiplier * odt_skims['PNRE_PRM_DTIME'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Walk_access_time,PNR_PRM inbound - Walk access time,@df.inbound * coef_wacc_multiplier * df.origin_walk_time,,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Walk_other_time,PNR_PRM inbound - Walk other time,@df.inbound * coef_waux_multiplier * odt_skims['PNRE_PRM_WAUX'],,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Fare_and_operating_cost,PNR_PRM inbound - Fare and operating cost,@df.inbound * ivt_cost_multiplier * df.ivot * (odt_skims['PNRE_PRM_FARE'] + costPerMile * odt_skims['PNRE_PRM_DDIST']),,,,,,,,,,coef_ivt,,,,,,,, +util_PNR_PRM_inbound_Ratio_of_drive_access_distance_to_OD_distance,PNR_PRM inbound - Ratio of drive access distance to OD distance,@df.inbound * dacc_ratio_multiplier * (odt_skims['PNRE_PRM_DDIST'])/ od_skims['DIST'],,,,,,,,,,coef_ivt,,,,,,,, +#PNR_to_Mix,#PNR to Mix,,,,,,,,,,,,,,,,,,, +util_PNR_MIX_Unavailable_for_zero_auto_households,PNR_MIX - Unavailable for zero auto households,auto_ownership == 0,,,,,,,,,,,coef_unavailable,,,,,,, +util_PNR_MIX_Unavailable_for_persons_less_than_16,PNR_MIX - Unavailable for persons less than 16,age < 16,,,,,,,,,,,coef_unavailable,,,,,,, +util_PNR_MIX_Destination_zone_densityIndex,PNR_MIX - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_Topology,PNR_MIX - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_Person_is_less_than_10_years_old,PNR_MIX - Person is less than 10 years old,@(df.age < 10),,,,,,,,,,,coef_age010_trn,,,,,,, +util_PNR_MIX_outbound_Unavailable,PNR_MIX outbound - Unavailable,outbound & ~pnr_mix_available_outbound,,,,,,,,,,,coef_unavailable,,,,,,, +util_PNR_MIX_outbound_In-vehicle_time,PNR_MIX outbound - In-vehicle time,@df.outbound * odt_skims['PNR_MIX_IVT'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_Bus,PNR_MIX - In-vehicle time on Bus,@df.outbound * odt_skims['PNR_MIX_IVTT_Bus'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_PMov,PNR_MIX - In-vehicle time on PMov,@df.outbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['PNR_MIX_IVTT_PMov'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_StCar,PNR_MIX - In-vehicle time on StCar,@df.outbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['PNR_MIX_IVTT_StCar'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_BRT,PNR_MIX - In-vehicle time on BRT,@df.outbound * (coef_ivt_brt_multiplier - 1) * odt_skims['PNR_MIX_IVTT_Brt'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_URB,PNR_MIX - In-vehicle time on URB,@df.outbound * (coef_ivt_urb_multiplier - 1) * odt_skims['PNR_MIX_IVTT_UrbRail'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_COM,PNR_MIX - In-vehicle time on COM,@df.outbound * (coef_ivt_com_multiplier - 1) * odt_skims['PNR_MIX_IVTT_ComRail'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Short_iwait_time,PNR_MIX outbound - Short iwait time,@df.outbound * coef_short_iwait_multiplier * (odt_skims['PNR_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Long_iwait_time,PNR_MIX outbound - Long iwait time,@df.outbound * coef_long_iwait_multiplier * (odt_skims['PNR_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_transfer_wait_time,PNR_MIX outbound - transfer wait time,@df.outbound * coef_xwait_multiplier * odt_skims['PNR_MIX_XWAIT'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_number_of_transfers,PNR_MIX outbound - number of transfers,@df.outbound * xfers_drv_multiplier * (odt_skims['PNR_MIX_NT']).clip(0),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Drive_time,PNR_MIX outbound - Drive time,@df.outbound * coef_dtim_multiplier * odt_skims['PNR_MIX_DTIME'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Walk_egress_ime,PNR_MIX outbound - Walk egress ime,@df.outbound * coef_wegr_multiplier * df.destination_walk_time,,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Walk_other_time,PNR_MIX outbound - Walk other time,@df.outbound * coef_waux_multiplier * odt_skims['PNR_MIX_WAUX'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Fare_and_operating_cost,PNR_MIX outbound - Fare and operating cost,@df.outbound * ivt_cost_multiplier * df.ivot * (odt_skims['PNR_MIX_FARE'] + costPerMile * odt_skims['PNR_MIX_DDIST']),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_outbound_Ratio_of_drive_access_distance_to_OD_distance,PNR_MIX outbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['PNR_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Unavailable,PNR_MIX inbound - Unavailable,inbound & ~pnr_mix_available_inbound,,,,,,,,,,,coef_unavailable,,,,,,, +util_PNR_MIX_inbound_In-vehicle_time,PNR_MIX inbound - In-vehicle time,@df.inbound * odt_skims['PNRE_MIX_IVT'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_Bus,PNR_MIX - In-vehicle time on Bus,@df.inbound * odt_skims['PNRE_MIX_IVTT_Bus'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_PMov,PNR_MIX - In-vehicle time on PMov,@df.inbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['PNRE_MIX_IVTT_PMov'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_StCar,PNR_MIX - In-vehicle time on StCar,@df.inbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['PNRE_MIX_IVTT_StCar'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_BRT,PNR_MIX - In-vehicle time on BRT,@df.inbound * (coef_ivt_brt_multiplier - 1) * odt_skims['PNRE_MIX_IVTT_Brt'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_URB,PNR_MIX - In-vehicle time on URB,@df.inbound * (coef_ivt_urb_multiplier - 1) * odt_skims['PNRE_MIX_IVTT_UrbRail'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_In-vehicle_time_on_COM,PNR_MIX - In-vehicle time on COM,@df.inbound * (coef_ivt_com_multiplier - 1) * odt_skims['PNRE_MIX_IVTT_ComRail'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Short_iwait_time,PNR_MIX inbound - Short iwait time,@df.inbound * coef_short_iwait_multiplier * (odt_skims['PNRE_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Long_iwait_time,PNR_MIX inbound - Long iwait time,@df.inbound * coef_long_iwait_multiplier * (odt_skims['PNRE_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_transfer_wait_time,PNR_MIX inbound - transfer wait time,@df.inbound * coef_xwait_multiplier * odt_skims['PNRE_MIX_XWAIT'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_number_of_transfers,PNR_MIX inbound - number of transfers,@df.inbound * xfers_drv_multiplier * (odt_skims['PNRE_MIX_NT']).clip(0),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Drive_time,PNR_MIX inbound - Drive time,@df.inbound * coef_dtim_multiplier * odt_skims['PNRE_MIX_DTIME'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Walk_access_time,PNR_MIX inbound - Walk access time,@df.inbound * coef_wacc_multiplier * df.origin_walk_time,,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Walk_other_time,PNR_MIX inbound - Walk other time,@df.inbound * coef_waux_multiplier * odt_skims['PNRE_MIX_WAUX'],,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Fare_and_operating_cost,PNR_MIX inbound - Fare and operating cost,@df.inbound * ivt_cost_multiplier * df.ivot * (odt_skims['PNRE_MIX_FARE'] + costPerMile * odt_skims['PNRE_MIX_DDIST']),,,,,,,,,,,coef_ivt,,,,,,, +util_PNR_MIX_inbound_Ratio_of_drive_access_distance_to_OD_distance,PNR_MIX inbound - Ratio of drive access distance to OD distance,@df.inbound * dacc_ratio_multiplier * (odt_skims['PNRE_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,coef_ivt,,,,,,, +#KNR_to_Local,#KNR to Local,,,,,,,,,,,,,,,,,,, +util_KNR_LOC_Unavailable_for_persons_less_than_16,KNR_LOC - Unavailable for persons less than 16,age < 16,,,,,,,,,,,,coef_unavailable,,,,,, +util_KNR_LOC_Destination_zone_densityIndex,KNR_LOC - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_Topology,KNR_LOC - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_Person_is_less_than_10_years_old,KNR_LOC - Person is less than 10 years old,@(df.age < 10),,,,,,,,,,,,coef_age010_trn,,,,,, +util_KNR_LOC_outbound_Unavailable,KNR_LOC outbound - Unavailable,outbound & ~knr_local_available_outbound,,,,,,,,,,,,coef_unavailable,,,,,, +util_KNR_LOC_outbound_In-vehicle_time,KNR_LOC outbound - In-vehicle time,@df.outbound * odt_skims['KNR_LOC_IVT'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Short_iwait_time,KNR_LOC outbound - Short iwait time,@df.outbound * coef_short_iwait_multiplier * (odt_skims['KNR_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Long_iwait_time,KNR_LOC outbound - Long iwait time,@df.outbound * coef_long_iwait_multiplier * (odt_skims['KNR_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_transfer_wait_time,KNR_LOC outbound - transfer wait time,@df.outbound * coef_xwait_multiplier * odt_skims['KNR_LOC_XWAIT'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_number_of_transfers,KNR_LOC outbound - number of transfers,@df.outbound * xfers_wlk_multiplier * (odt_skims['KNR_LOC_NT']).clip(0),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Drive_time,KNR_LOC outbound - Drive time,@df.outbound * coef_dtim_multiplier * odt_skims['KNR_LOC_DTIME'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Walk_egress_time,KNR_LOC outbound - Walk egress time,@df.outbound * coef_wegr_multiplier * df.destination_walk_time,,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Walk_other_time,KNR_LOC outbound - Walk other time,@df.outbound * coef_waux_multiplier * odt_skims['KNR_LOC_WAUX'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Fare_and_operating_cost,KNR_LOC outbound - Fare and operating cost,@df.outbound * ivt_cost_multiplier * df.ivot * (odt_skims['KNR_LOC_FARE'] + costPerMile*odt_skims['KNR_LOC_DDIST']),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_outbound_Ratio_of_drive_access_distance_to_OD_distance,KNR_LOC outbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['KNR_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Unavailable,KNR_LOC inbound - Unavailable,inbound & ~knr_local_available_inbound,,,,,,,,,,,,coef_unavailable,,,,,, +util_KNR_LOC_inbound_In-vehicle_time,KNR_LOC inbound - In-vehicle time,@df.inbound * odt_skims['KNRE_LOC_IVT'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Short_iwait_time,KNR_LOC inbound - Short iwait time,@df.inbound * coef_short_iwait_multiplier * (odt_skims['KNRE_LOC_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Long_iwait_time,KNR_LOC inbound - Long iwait time,@df.inbound * coef_long_iwait_multiplier * (odt_skims['KNRE_LOC_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_transfer_wait_time,KNR_LOC inbound - transfer wait time,@df.inbound * coef_xwait_multiplier * odt_skims['KNRE_LOC_XWAIT'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_number_of_transfers,KNR_LOC inbound - number of transfers,@df.inbound * xfers_wlk_multiplier * (odt_skims['KNRE_LOC_NT']).clip(0),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Drive_time,KNR_LOC inbound - Drive time,@df.inbound * coef_dtim_multiplier * odt_skims['KNRE_LOC_DTIME'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Walk_access_time,KNR_LOC inbound - Walk access time,@df.inbound * coef_wacc_multiplier * df.origin_walk_time,,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Walk_other_time,KNR_LOC inbound - Walk other time,@df.inbound * coef_waux_multiplier * odt_skims['KNRE_LOC_WAUX'],,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Fare_and_operating_cost,KNR_LOC inbound - Fare and operating cost,@df.inbound * ivt_cost_multiplier * df.ivot * (odt_skims['KNRE_LOC_FARE'] + costPerMile*odt_skims['KNRE_LOC_DDIST']),,,,,,,,,,,,coef_ivt,,,,,, +util_KNR_LOC_inbound_Ratio_of_drive_access_distance_to_OD_distance,KNR_LOC inbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['KNRE_LOC_DDIST'])/ (od_skims['DIST']),,,,,,,,,,,,coef_ivt,,,,,, +#Drive_to_Premium,#Drive to Premium,,,,,,,,,,,,,,,,,,, +util_KNR_PRM_Unavailable_for_persons_less_than_16,KNR_PRM - Unavailable for persons less than 16,age < 16,,,,,,,,,,,,,coef_unavailable,,,,, +util_KNR_PRM_Destination_zone_densityIndex,KNR_PRM - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_Topology,KNR_PRM - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_Person_is_less_than_10_years_old,KNR_PRM - Person is less than 10 years old,@(df.age < 10),,,,,,,,,,,,,coef_age010_trn,,,,, +util_KNR_PRM_outbound_Unavailable,KNR_PRM outbound - Unavailable,outbound & ~knr_premium_available_outbound,,,,,,,,,,,,,coef_unavailable,,,,, +util_KNR_PRM_outbound_In-vehicle_time,KNR_PRM outbound - In-vehicle time,@df.outbound * odt_skims['KNR_PRM_IVT'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_PMov,KNR_PRM - In-vehicle time on PMov,@df.outbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['KNR_PRM_IVTT_PMov'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_StCar,KNR_PRM - In-vehicle time on StCar,@df.outbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['KNR_PRM_IVTT_StCar'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_BRT,KNR_PRM - In-vehicle time on BRT,@df.outbound * (coef_ivt_brt_multiplier - 1) * odt_skims['KNR_PRM_IVTT_Brt'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_URB,KNR_PRM - In-vehicle time on URB,@df.outbound * (coef_ivt_urb_multiplier - 1) * odt_skims['KNR_PRM_IVTT_UrbRail'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_COM,KNR_PRM - In-vehicle time on COM,@df.outbound * (coef_ivt_com_multiplier - 1) * odt_skims['KNR_PRM_IVTT_ComRail'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Short_iwait_time,KNR_PRM outbound - Short iwait time,@df.outbound * coef_short_iwait_multiplier * (odt_skims['KNR_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Long_iwait_time,KNR_PRM outbound - Long iwait time,@df.outbound * coef_long_iwait_multiplier * (odt_skims['KNR_PRM_IWAIT']-waitThresh).clip(0) ,,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_transfer_wait_time,KNR_PRM outbound - transfer wait time,@df.outbound * coef_xwait_multiplier * odt_skims['KNR_PRM_XWAIT'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_number_of_transfers,KNR_PRM outbound - number of transfers,@df.outbound * xfers_drv_multiplier * (odt_skims['KNR_PRM_NT']).clip(0),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Drive_time,KNR_PRM outbound - Drive time,@df.outbound * coef_dtim_multiplier * odt_skims['KNR_PRM_DTIME'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Walk_egress_time,KNR_PRM outbound - Walk egress time,@df.outbound * coef_wegr_multiplier * df.destination_walk_time,,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Walk_other_time,KNR_PRM outbound - Walk other time,@df.outbound * coef_waux_multiplier * odt_skims['KNR_PRM_WAUX'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Fare_and_operating_cost,KNR_PRM outbound - Fare and operating cost,@df.outbound * ivt_cost_multiplier * df.ivot * (odt_skims['KNR_PRM_FARE'] + costPerMile * odt_skims['KNR_PRM_DDIST']),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_outbound_Ratio_of_drive_access_distance_to_OD_distance,KNR_PRM outbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['KNR_PRM_DDIST']) / od_skims['DIST'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Unavailable,KNR_PRM inbound - Unavailable,inbound & ~knr_premium_available_inbound,,,,,,,,,,,,,coef_unavailable,,,,, +util_KNR_PRM_inbound_In-vehicle_time,KNR_PRM inbound - In-vehicle time,@df.inbound * odt_skims['KNRE_PRM_IVT'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_PMov,KNR_PRM - In-vehicle time on PMov,@df.inbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['KNRE_PRM_IVTT_PMov'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_StCar,KNR_PRM - In-vehicle time on StCar,@df.inbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['KNRE_PRM_IVTT_StCar'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_BRT,KNR_PRM - In-vehicle time on BRT,@df.inbound * (coef_ivt_brt_multiplier - 1) * odt_skims['KNRE_PRM_IVTT_Brt'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_URB,KNR_PRM - In-vehicle time on URB,@df.inbound * (coef_ivt_urb_multiplier - 1) * odt_skims['KNRE_PRM_IVTT_UrbRail'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_In-vehicle_time_on_COM,KNR_PRM - In-vehicle time on COM,@df.inbound * (coef_ivt_com_multiplier - 1) * odt_skims['KNRE_PRM_IVTT_ComRail'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Short_iwait_time,KNR_PRM inbound - Short iwait time,@df.inbound * coef_short_iwait_multiplier * (odt_skims['KNRE_PRM_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Long_iwait_time,KNR_PRM inbound - Long iwait time,@df.inbound * coef_long_iwait_multiplier * (odt_skims['KNRE_PRM_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_transfer_wait_time,KNR_PRM inbound - transfer wait time,@df.inbound * coef_xwait_multiplier * odt_skims['KNRE_PRM_XWAIT'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_number_of_transfers,KNR_PRM inbound - number of transfers,@df.inbound * xfers_drv_multiplier * (odt_skims['KNRE_PRM_NT']).clip(0),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Drive_time,KNR_PRM inbound - Drive time,@df.inbound * coef_dtim_multiplier * odt_skims['KNRE_PRM_DTIME'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Walk_access_time,KNR_PRM inbound - Walk access time,@df.inbound * coef_wacc_multiplier * df.origin_walk_time,,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Walk_other_time,KNR_PRM inbound - Walk other time,@df.inbound * coef_waux_multiplier * odt_skims['KNRE_PRM_WAUX'],,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Fare_and_operating_cost,KNR_PRM inbound - Fare and operating cost,@df.inbound * ivt_cost_multiplier * df.ivot * (odt_skims['KNRE_PRM_FARE'] + costPerMile * odt_skims['KNRE_PRM_DDIST']),,,,,,,,,,,,,coef_ivt,,,,, +util_KNR_PRM_inbound_Ratio_of_drive_access_distance_to_OD_distance,KNR_PRM inbound - Ratio of drive access distance to OD distance,@df.inbound * dacc_ratio_multiplier * (odt_skims['KNRE_PRM_DDIST'])/ od_skims['DIST'],,,,,,,,,,,,,coef_ivt,,,,, +#KNR_to_Mix,#KNR to Mix,,,,,,,,,,,,,,,,,,, +util_KNR_MIX_Unavailable_for_persons_less_than_16,KNR_MIX - Unavailable for persons less than 16,age < 16,,,,,,,,,,,,,,coef_unavailable,,,, +util_KNR_MIX_Destination_zone_densityIndex,KNR_MIX - Destination zone densityIndex,@density_index_multiplier * df.density_index,,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_Topology,KNR_MIX - Topology,@topology_trn_multiplier * df.trip_topology,,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_Person_is_less_than_10_years_old,KNR_MIX - Person is less than 10 years old,@(df.age < 10),,,,,,,,,,,,,,coef_age010_trn,,,, +util_KNR_MIX_outbound_Unavailable,KNR_MIX outbound - Unavailable,outbound & ~knr_mix_available_outbound,,,,,,,,,,,,,,coef_unavailable,,,, +util_KNR_MIX_outbound_In-vehicle_time,KNR_MIX outbound - In-vehicle time,@df.outbound * odt_skims['KNR_MIX_IVT'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_Bus,KNR_MIX - In-vehicle time on Bus,@df.outbound * odt_skims['KNR_MIX_IVTT_Bus'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_PMov,KNR_MIX - In-vehicle time on PMov,@df.outbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['KNR_MIX_IVTT_PMov'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_StCar,KNR_MIX - In-vehicle time on StCar,@df.outbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['KNR_MIX_IVTT_StCar'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_BRT,KNR_MIX - In-vehicle time on BRT,@df.outbound * (coef_ivt_brt_multiplier - 1) * odt_skims['KNR_MIX_IVTT_Brt'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_URB,KNR_MIX - In-vehicle time on URB,@df.outbound * (coef_ivt_urb_multiplier - 1) * odt_skims['KNR_MIX_IVTT_UrbRail'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_COM,KNR_MIX - In-vehicle time on COM,@df.outbound * (coef_ivt_com_multiplier - 1) * odt_skims['KNR_MIX_IVTT_ComRail'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Short_iwait_time,KNR_MIX outbound - Short iwait time,@df.outbound * coef_short_iwait_multiplier * (odt_skims['KNR_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Long_iwait_time,KNR_MIX outbound - Long iwait time,@df.outbound * coef_long_iwait_multiplier * (odt_skims['KNR_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_transfer_wait_time,KNR_MIX outbound - transfer wait time,@df.outbound * coef_xwait_multiplier * odt_skims['KNR_MIX_XWAIT'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_number_of_transfers,KNR_MIX outbound - number of transfers,@df.outbound * xfers_drv_multiplier * (odt_skims['KNR_MIX_NT']).clip(0),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Drive_time,KNR_MIX outbound - Drive time,@df.outbound * coef_dtim_multiplier * odt_skims['KNR_MIX_DTIME'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Walk_egress_ime,KNR_MIX outbound - Walk egress ime,@df.outbound * coef_wegr_multiplier * df.destination_walk_time,,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Walk_other_time,KNR_MIX outbound - Walk other time,@df.outbound * coef_waux_multiplier * odt_skims['KNR_MIX_WAUX'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Fare_and_operating_cost,KNR_MIX outbound - Fare and operating cost,@df.outbound * ivt_cost_multiplier * df.ivot * (odt_skims['KNR_MIX_FARE'] + costPerMile * odt_skims['KNR_MIX_DDIST']),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_outbound_Ratio_of_drive_access_distance_to_OD_distance,KNR_MIX outbound - Ratio of drive access distance to OD distance,@df.outbound * dacc_ratio_multiplier * (odt_skims['KNR_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Unavailable,KNR_MIX inbound - Unavailable,inbound & ~knr_mix_available_inbound,,,,,,,,,,,,,,coef_unavailable,,,, +util_KNR_MIX_inbound_In-vehicle_time,KNR_MIX inbound - In-vehicle time,@df.inbound * odt_skims['KNRE_MIX_IVT'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_Bus,KNR_MIX - In-vehicle time on Bus,@df.inbound * odt_skims['KNRE_MIX_IVTT_Bus'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_PMov,KNR_MIX - In-vehicle time on PMov,@df.inbound * (coef_ivt_pmov_multiplier - 1) * odt_skims['KNRE_MIX_IVTT_PMov'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_StCar,KNR_MIX - In-vehicle time on StCar,@df.inbound * (coef_ivt_stcar_multiplier - 1) * odt_skims['KNRE_MIX_IVTT_StCar'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_BRT,KNR_MIX - In-vehicle time on BRT,@df.inbound * (coef_ivt_brt_multiplier - 1) * odt_skims['KNRE_MIX_IVTT_Brt'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_URB,KNR_MIX - In-vehicle time on URB,@df.inbound * (coef_ivt_urb_multiplier - 1) * odt_skims['KNRE_MIX_IVTT_UrbRail'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_In-vehicle_time_on_COM,KNR_MIX - In-vehicle time on COM,@df.inbound * (coef_ivt_com_multiplier - 1) * odt_skims['KNRE_MIX_IVTT_ComRail'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Short_iwait_time,KNR_MIX inbound - Short iwait time,@df.inbound * coef_short_iwait_multiplier * (odt_skims['KNRE_MIX_IWAIT']).clip(upper=waitThresh),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Long_iwait_time,KNR_MIX inbound - Long iwait time,@df.inbound * coef_long_iwait_multiplier * (odt_skims['KNRE_MIX_IWAIT']-waitThresh).clip(0),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_transfer_wait_time,KNR_MIX inbound - transfer wait time,@df.inbound * coef_xwait_multiplier * odt_skims['KNRE_MIX_XWAIT'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_number_of_transfers,KNR_MIX inbound - number of transfers,@df.inbound * xfers_drv_multiplier * (odt_skims['KNRE_MIX_NT']).clip(0),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Drive_time,KNR_MIX inbound - Drive time,@df.inbound * coef_dtim_multiplier * odt_skims['KNRE_MIX_DTIME'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Walk_access_time,KNR_MIX inbound - Walk access time,@df.inbound * coef_wacc_multiplier * df.origin_walk_time,,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Walk_other_time,KNR_MIX inbound - Walk other time,@df.inbound * coef_waux_multiplier * odt_skims['KNRE_MIX_WAUX'],,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Fare_and_operating_cost,KNR_MIX inbound - Fare and operating cost,@df.inbound * ivt_cost_multiplier * df.ivot * (odt_skims['KNRE_MIX_FARE'] + costPerMile * odt_skims['KNRE_MIX_DDIST']),,,,,,,,,,,,,,coef_ivt,,,, +util_KNR_MIX_inbound_Ratio_of_drive_access_distance_to_OD_distance,KNR_MIX inbound - Ratio of drive access distance to OD distance,@df.inbound * dacc_ratio_multiplier * (odt_skims['KNRE_MIX_DDIST']) / od_skims['DIST'],,,,,,,,,,,,,,coef_ivt,,,, +#Taxi,#Taxi,,,,,,,,,,,,,,,,,,, +util_Taxi_In-vehicle_time,Taxi - In-vehicle time,@odt_skims['HOV2_TIME'],,,,,,,,,,,,,,,,coef_ivt,, +util_Taxi_Wait_time,Taxi - Wait time,@ridehail_wait_time_multiplier * df.origTaxiWaitTime,,,,,,,,,,,,,,,,coef_ivt,, +util_Taxi_Fare,Taxi - Fare,@ivt_cost_multiplier * df.ivot * (Taxi_baseFare + odt_skims['HOV2_DIST'] * Taxi_costPerMile + odt_skims['HOV2_TIME'] * Taxi_costPerMinute)*100,,,,,,,,,,,,,,,,coef_ivt,, +util_TNC_Single_In-vehicle_time,TNC Single - In-vehicle time,@odt_skims['HOV2_TIME'] ,,,,,,,,,,,,,,,,,coef_ivt, +util_TNC_Single_Wait_time,TNC Single - Wait time,@ridehail_wait_time_multiplier * df.origSingleTNCWaitTime,,,,,,,,,,,,,,,,,coef_ivt, +util_TNC_Single_Cost,TNC Single - Cost,"@ivt_cost_multiplier * df.ivot * np.maximum(TNC_single_baseFare + odt_skims['HOV2_DIST'] * TNC_single_costPerMile + odt_skims['HOV2_TIME'] * TNC_single_costPerMinute, TNC_single_costMinimum) * 100",,,,,,,,,,,,,,,,,coef_ivt, +util_TNC_Shared_In-vehicle_time,TNC Shared - In-vehicle time,@odt_skims['HOV2_TIME'] * TNC_shared_IVTFactor,,,,,,,,,,,,,,,,,,coef_ivt +util_TNC_Shared_Wait_time,TNC Shared - Wait time,@ridehail_wait_time_multiplier * df.origSharedTNCWaitTime,,,,,,,,,,,,,,,,,,coef_ivt +util_TNC_Shared_Cost,TNC Shared - Cost,"@ivt_cost_multiplier * df.ivot * np.maximum(TNC_shared_baseFare + odt_skims['HOV2_DIST'] * TNC_shared_costPerMile + odt_skims['HOV2_TIME']* TNC_shared_costPerMinute, TNC_shared_costMinimum) * 100",,,,,,,,,,,,,,,,,,coef_ivt +#,#,,,,,,,,,,,,,,,,,,, +util_SOV_tour_mode_availability,SOV tour mode availability,tour_mode_is_SOV,,coef_unavailable,coef_unavailable,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable +util_sr2_tour_mode_availability,SR2 tour mode availability,tour_mode_is_sr2,,,coef_unavailable,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable +util_sr3p_tour_mode_availability,SR3+ tour mode availability,tour_mode_is_sr3p,,,,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable +util_Walk_tour_mode_availability,Walk tour mode availability,tour_mode_is_walk,coef_unavailable,coef_unavailable,coef_unavailable,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable +util_Bike_tour_mode_availability,Bike tour mode availability,tour_mode_is_bike,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable +util_Walk_to_Transit_tour_mode_availability,Walk to Transit tour mode availability,tour_mode_is_walk_transit,coef_unavailable,,,,coef_unavailable,,,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,,, +util_Drive_to_Transit_tour_mode_availability,Drive to Transit tour mode availability,tour_mode_is_drive_transit,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,,,,,,,coef_unavailable,,, +util_School_bus_tour_mode_availability,School bus tour mode availability,tour_mode_is_school_bus,coef_unavailable,,,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,,coef_unavailable,coef_unavailable,coef_unavailable +util_Ride_Hail_tour_mode_availability,Ride Hail tour mode availability,tour_mode_is_ride_hail,coef_unavailable,,,,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,coef_unavailable,,, +#indiv_tour_ASCs,#indiv tour ASCs,,,,,,,,,,,,,,,,,,, +util_Drive_Alone_tour_mode_ASC_walk,Drive Alone tour mode ASC -- walk,@(df.is_indiv & df.i_tour_mode.isin(I_SOV_MODES)),,,,sov_ASC_walk,,,,,,,,,,,,,, +util_Drive_Alone_tour_mode_ASC_ride_hail,Drive Alone tour mode ASC -- ride hail,@(df.is_indiv & df.i_tour_mode.isin(I_SOV_MODES)),,,,,,,,,,,,,,,,sov_ASC_taxi,sov_ASC_tnc_single,sov_ASC_tnc_shared +util_Shared_Ride_2_tour_mode_ASC_drive_alone,Shared Ride 2 tour mode ASC -- drive alone,@(df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),sr2_ASC_sov,,,,,,,,,,,,,,,,, +util_Shared_Ride_2_tour_mode_ASC_walk,Shared Ride 2 tour mode ASC -- walk,@(df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),,,,sr2_ASC_walk,,,,,,,,,,,,,, +util_Shared_Ride_2_tour_mode_ASC_ride_hail,Shared Ride 2 tour mode ASC -- ride hail,@(df.is_indiv & df.i_tour_mode.isin(I_SR2_MODES)),,,,,,,,,,,,,,,,sr2_ASC_taxi,sr2_ASC_tnc_single,sr2_ASC_tnc_shared +util_Shared_Ride_3+_tour_mode_ASC_drive_alone,Shared Ride 3+ tour mode ASC -- drive alone,@(df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),sr3p_ASC_sov,,,,,,,,,,,,,,,,, +util_Shared_Ride_3+_tour_mode_ASC_shared_ride_2,Shared Ride 3+ tour mode ASC -- shared ride 2,@(df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,sr3p_ASC_sr2,,,,,,,,,,,,,,,, +util_Shared_Ride_3+_tour_mode_ASC_walk,Shared Ride 3+ tour mode ASC -- walk,@(df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,,,sr3p_ASC_walk,,,,,,,,,,,,,, +util_Shared_Ride_3+_tour_mode_ASC_ride_hail,Shared Ride 3+ tour mode ASC -- ride hail,@(df.is_indiv & df.i_tour_mode.isin(I_SR3P_MODES)),,,,,,,,,,,,,,,,sr3p_ASC_taxi,sr3p_ASC_tnc_single,sr3p_ASC_tnc_shared +#util_Walk_tour_mode_ASC_ride_hail,Walk tour mode ASC -- ride hail,@df.is_indiv & (df.i_tour_mode == I_WALK_MODE),,,,,,,,,,,,,,,,walk_ASC_taxi,walk_ASC_tnc_single,walk_ASC_tnc_shared +util_Bike_tour_mode_ASC_walk,Bike tour mode ASC -- walk,@df.is_indiv & (df.i_tour_mode == I_BIKE_MODE),,,,bike_ASC_walk,,,,,,,,,,,,,, +#util_Bike_tour_mode_ASC_ride_hail,Bike tour mode ASC -- ride hail,@df.is_indiv & (df.i_tour_mode == I_BIKE_MODE),,,,,,,,,,,,,,,,bike_ASC_taxi,bike_ASC_tnc_single,bike_ASC_tnc_shared +util_Walk-transit_tour_mode_ASC_shared_ride_2,Walk-transit tour mode ASC -- shared ride 2,@(df.is_indiv & df.tour_mode_is_walk_transit),,walk_transit_ASC_sr2,,,,,,,,,,,,,,,, +util_Walk-transit_tour_mode_ASC_shared_ride_3+,Walk-transit tour mode ASC -- shared ride 3+,@(df.is_indiv & df.tour_mode_is_walk_transit),,,walk_transit_ASC_sr3p,,,,,,,,,,,,,,, +util_Walk-transit_tour_mode_ASC_walk,Walk-transit tour mode ASC -- walk,@(df.is_indiv & df.tour_mode_is_walk_transit),,,,walk_transit_ASC_walk,,,,,,,,,,,,,, +util_Walk-transit_tour_mode_ASC_ride_hail,Walk-transit tour mode ASC -- ride hail,@(df.is_indiv & df.tour_mode_is_walk_transit),,,,,,,,,,,,,,,,walk_transit_ASC_taxi,walk_transit_ASC_tnc_single,walk_transit_ASC_tnc_shared +util_Drive_to_Transit_tour_mode_ASC_ride_hail,Drive to Transit tour mode ASC -- ride hail,@(df.is_indiv & df.tour_mode_is_pnr_transit),,,,,,,,,,,,,,,,pnr_ASC_taxi,pnr_ASC_tnc_single,pnr_ASC_tnc_shared +util_Drive_to_Transit_tour_mode_ASC_ride_hail,Drive to Transit tour mode ASC -- ride hail,@(df.is_indiv & df.tour_mode_is_knr_transit),,,,,,,,,,,,,,,,knr_ASC_taxi,knr_ASC_tnc_single,knr_ASC_tnc_shared +util_Ride_Hail_tour_mode_ASC_ride_hail,Ride Hail tour mode ASC -- shared 2,@(df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,ride_hail_ASC_sr2,,,,,,,,,,,,,,,, +util_Ride_Hail_tour_mode_ASC_ride_hail,Ride Hail tour mode ASC -- shared 3+,@(df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,ride_hail_ASC_sr3p,,,,,,,,,,,,,,, +util_Ride_Hail_tour_mode_ASC_ride_hail,Ride Hail tour mode ASC -- walk,@(df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,ride_hail_ASC_walk,,,,,,,,,,,,,, +util_Ride_Hail_tour_mode_ASC_ride_hail,Ride Hail tour mode ASC -- walk-transit,@(df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,ride_hail_ASC_walk_transit,ride_hail_ASC_walk_transit,ride_hail_ASC_walk_transit,,,,,,,,, +util_Ride_Hail_tour_mode_ASC_ride_hail,Ride Hail tour mode ASC -- ride hail,@(df.is_indiv & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,ride_hail_ASC_taxi,,ride_hail_ASC_tnc_shared +util_Shared_Ride_2_tour_mode_ASC_walk,joint - sr2 tour mode ASC -- walk,@(df.is_joint & df.i_tour_mode.isin(I_SR2_MODES)),,,,joint_sr2_ASC_walk,,,,,,,,,,,,,, +util_Shared_Ride_3+_tour_mode_ASC_walk,joint - sr3p tour mode ASC,@(df.is_joint & df.i_tour_mode.isin(I_SR3P_MODES)),,joint_sr3p_ASC_sr2,,joint_sr3p_ASC_walk,,,,,,,,,,,,,, +util_joint_Walk-transit_tour_mode_ASC_shared_ride_2,joint - Walk-transit tour mode ASC -- shared ride 2,@(df.is_joint & df.tour_mode_is_walk_transit),,joint_walk_transit_ASC_sr2,,,,,,,,,,,,,,,, +util_joint_Walk-transit_tour_mode_ASC_shared_ride_3+,joint - Walk-transit tour mode ASC -- shared ride 3+,@(df.is_joint & df.tour_mode_is_walk_transit),,,joint_walk_transit_ASC_sr3p,,,,,,,,,,,,,,, +util_joint_Walk-transit_tour_mode_ASC_walk,joint - Walk-transit tour mode ASC -- walk,@(df.is_joint & df.tour_mode_is_walk_transit),,,,joint_walk_transit_ASC_walk,,,,,,,,,,,,,, +util_joint_Walk_to_Transit_tour_mode_ASC_ride_hail,joint - Walk to Transit tour mode ASC -- ride hail,@(df.is_joint & df.tour_mode_is_walk_transit),,,,,,,,,,,,,,,,joint_walk_transit_ASC_taxi,joint_walk_transit_ASC_tnc_single,joint_walk_transit_ASC_tnc_shared +util_joint_PNR_to_Transit_tour_mode_ASC_ride_hail,joint - PNR to Transit tour mode ASC -- ride hail,@(df.is_joint & df.tour_mode_is_pnr_transit),,,,,,,,,,,,,,,,joint_pnr_ASC_taxi,joint_pnr_ASC_tnc_single,joint_pnr_ASC_tnc_shared +util_joint_KNR_to_Transit_tour_mode_ASC_ride_hail,joint - KNR to Transit tour mode ASC -- ride hail,@(df.is_joint & df.tour_mode_is_knr_transit),,,,,,,,,,,,,,,,joint_knr_ASC_taxi,joint_knr_ASC_tnc_single,joint_knr_ASC_tnc_shared +util_joint_Ride_Hail_tour_mode_ASC_ride_hail,joint - Ride Hail tour mode ASC -- shared 2,@(df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,joint_ride_hail_ASC_sr2,,,,,,,,,,,,,,,, +util_joint_Ride_Hail_tour_mode_ASC_ride_hail,joint - Ride Hail tour mode ASC -- shared 3+,@ (df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,joint_ride_hail_ASC_sr3p,,,,,,,,,,,,,,, +util_joint_Ride_Hail_tour_mode_ASC_ride_hail,joint - Ride Hail tour mode ASC -- walk,@(df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,joint_ride_hail_ASC_walk,,,,,,,,,,,,,, +util_joint_Ride_Hail_tour_mode_ASC_ride_hail,joint - Ride Hail tour mode ASC -- taxi,@(df.is_joint & df.i_tour_mode.isin(I_RIDE_HAIL_MODES)),,,,,,,,,,,,,,,,joint_ride_hail_ASC_taxi,,joint_ride_hail_ASC_tnc_shared +util_Walk_not_available_for_long_distances,Walk not available for long distances,@df.tour_mode_is_walk & (od_skims['DISTWALK'] > 3),,,,coef_unavailable,,,,,,,,,,,,,, +util_Bike_not_available_for_long_distances,Bike not available for long distances,@df.tour_mode_is_walk & (od_skims['DISTBIKE'] > 8),,,,,coef_unavailable,,,,,,,,,,,,, +#School_Bus,#School Bus,,,,,,,,,,,,,,,,,,, +util_School_Bus_Unavailable_if_primary_purpose_NOT_school,School Bus Unavailable if primary purpose NOT school,~is_school,,,,,,,,,,,,,,,coef_unavailable,,, +util_School_Bus_Unavailable_Tour_Mode_=_SOV,School Bus Unavailable - Tour Mode = SOV,tour_mode_is_SOV,,,,,,,,,,,,,,,coef_unavailable,,, +util_School_Bus_Unavailable_Tour_Mode_=_Transit,School Bus Unavailable - Tour Mode = Transit,tour_mode_is_drive_transit,,,,,,,,,,,,,,,coef_unavailable,,, +util_School_Bus_In-vehicle_time_(20_miles_per_hour),School Bus - In-vehicle time (20 miles per hour),@odt_skims['HOV3_DIST']*3,,,,,,,,,,,,,,,coef_ivt,,, +util_School_Bus_Walk_Time,School Bus - Walk Time,@coef_wacc_multiplier*10,,,,,,,,,,,,,,,coef_ivt,,, +util_School_Bus_Wait_Time,School Bus - Wait Time,@coef_short_iwait_multiplier*10,,,,,,,,,,,,,,,coef_ivt,,, +util_School_Bus_tour_mode_ASC_shared_ride_2,School Bus tour mode ASC -- shared ride 2,@df.i_tour_mode.isin(I_SCHOOLBUS_MODE),,schoolbus_ASC_sr2,,,,,,,,,,,,,,,, +util_School_Bus_tour_mode_ASC_shared_ride_3+,School Bus tour mode ASC -- shared ride 3+,@df.i_tour_mode.isin(I_SCHOOLBUS_MODE),,,schoolbus_ASC_sr3p,,,,,,,,,,,,,,, +util_School_Bus_tour_mode_ASC_walk,School Bus tour mode ASC -- walk,@df.i_tour_mode.isin(I_SCHOOLBUS_MODE),,,,schoolbus_ASC_walk,,,,,,,,,,,,,, +util_Origin_density_index,Origin density index,@(origin_density_applied*df.origin_density_index).clip(origin_density_index_max) if origin_density_applied else 0,,,,,,,coef_ivt,coef_ivt,coef_ivt,coef_ivt,coef_ivt,coef_ivt,coef_ivt,,,,coef_ivt,coef_ivt +util_TNC_shared_adjustment,TNC shared adjustment,@adjust_tnc_shared,,,,,,,,,,,,,,,,,,coef_ivt +util_umt_unavailable_wlk,UMT unavailable for non affiliates WALK,@((odt_skims['WLK_LOC_IVTT_UMT'] + dot_skims['WLK_LOC_IVTT_UMT'])>0) & (df.umich_affiliate_trip==False),,,,,,coef_unavailable,,,,,,,,,,,, +util_umt_unavailable_pnr,UMT unavailable for non affiliates PNR,@((odt_skims['PNR_LOC_IVTT_UMT'] + dot_skims['PNRE_LOC_IVTT_UMT'])>0) & (df.umich_affiliate_trip==False),,,,,,,,,coef_unavailable,,,,,,,,, +util_umt_unavailable_knr,UMT unavailable for non affiliates KNR,@((odt_skims['KNR_LOC_IVTT_UMT'] + dot_skims['KNRE_LOC_IVTT_UMT'])>0) & (df.umich_affiliate_trip==False),,,,,,,,,,,,coef_unavailable,,,,,, diff --git a/activitysim/examples/example_semcog/configs/trip_mode_choice.yaml b/activitysim/examples/example_semcog/configs/trip_mode_choice.yaml index b9f02c0e1..784420320 100755 --- a/activitysim/examples/example_semcog/configs/trip_mode_choice.yaml +++ b/activitysim/examples/example_semcog/configs/trip_mode_choice.yaml @@ -1,6 +1,8 @@ +# trip_mode_choice.yaml + SPEC: trip_mode_choice.csv -#COEFFICIENTS: trip_mode_choice_coeffs.csv -LEGACY_COEFFICIENTS: trip_mode_choice_coeffs.csv +COEFFICIENTS: trip_mode_choice_coefficients.csv +COEFFICIENT_TEMPLATE: trip_mode_choice_coefficients_template.csv LOGIT_TYPE: NL @@ -152,6 +154,22 @@ CONSTANTS: 5: 0 min_waitTime: 0 max_waitTime: 50 + ivt_cost_multiplier: 0.6 + topology_bike_multiplier: 20 + topology_trn_multiplier: 2.20 + topology_walk_multiplier: 15 + ridehail_wait_time_multiplier: 1.5 + walktimelong_multiplier: 5 + biketimelong_multiplier: 5 + xfers_wlk_multiplier: 5 + xfers_drv_multiplier: 15 + dacc_ratio_multiplier: 0 + density_index_multiplier: -5 + origin_density_index_multiplier: -15 + origin_density_index_max: -15 + ivt_com_multiplier: 0.80 + ivt_exp_multiplier: -0.0175 + ivt_hvy_multiplier: 0.80 # so far, we can use the same spec as for non-joint tours preprocessor: @@ -160,6 +178,7 @@ preprocessor: TABLES: - land_use - tours + - persons # - SPEC: trip_mode_choice_annotate_trips_preprocessor2 # DF: df diff --git a/activitysim/examples/example_semcog/configs/trip_mode_choice_annotate_trips_preprocessor.csv b/activitysim/examples/example_semcog/configs/trip_mode_choice_annotate_trips_preprocessor.csv index 9d7038014..430a5f08a 100755 --- a/activitysim/examples/example_semcog/configs/trip_mode_choice_annotate_trips_preprocessor.csv +++ b/activitysim/examples/example_semcog/configs/trip_mode_choice_annotate_trips_preprocessor.csv @@ -1,89 +1,93 @@ -Description,Target,Expression, -,is_joint,(df.number_of_participants > 1), -,is_indiv,(df.number_of_participants == 1), -,is_atwork_subtour,~df.parent_tour_id.isnull(), -,is_school,"(df.primary_purpose=='school') & (df.purpose.isin(['school', 'Home']))", -,c_cost,(0.60 * c_ivt) / df.value_of_time, -#,,, -#atwork subtours,,, -#FIXME tripModeChoice uec wrongly conflates these with tour_mode_is_bike?,,, -,parent_tour_mode,"reindex(tours.tour_mode, df.parent_tour_id).fillna('')", -,work_tour_is_SOV,parent_tour_mode.isin(['DRIVEALONE']), -,work_tour_is_bike,parent_tour_mode=='BIKE', -#,,, -,i_tour_mode,df.tour_mode.map(I_MODE_MAP), -,tour_mode_is_SOV,i_tour_mode.isin(I_SOV_MODES), -,tour_mode_is_auto,i_tour_mode.isin(I_AUTO_MODES), -,tour_mode_is_walk,i_tour_mode.isin([I_WALK_MODE]), -,tour_mode_is_bike,i_tour_mode.isin([I_BIKE_MODE]), -,tour_mode_is_walk_transit,i_tour_mode.isin(I_WALK_TRANSIT_MODES), -,tour_mode_is_drive_transit,i_tour_mode.isin(I_DRIVE_TRANSIT_MODES), -,tour_mode_not_drive_transit,~tour_mode_is_drive_transit, -,tour_mode_is_pnr_transit,i_tour_mode.isin(I_PNR_TRANSIT_MODES), -,tour_mode_is_knr_transit,i_tour_mode.isin(I_KNR_TRANSIT_MODES), -,tour_mode_is_school_bus,i_tour_mode.isin(I_SCHOOLBUS_MODE), -,tour_mode_is_ride_hail,i_tour_mode.isin(I_RIDE_HAIL_MODES), -#,,, -,inbound,~df.outbound, -,first_trip,df.trip_num == 1, -,last_trip,df.trip_num == df.trip_count, -origin terminal time not counted at home,_origin_terminal_time,"np.where(df.outbound & first_trip, 0, reindex(land_use.TERMINAL, df[ORIGIN]))", -dest terminal time not counted at home,_dest_terminal_time,"np.where(inbound & last_trip, 0, reindex(land_use.TERMINAL, df[DESTINATION]))", -,total_terminal_time,_origin_terminal_time + _dest_terminal_time, -#,,, -,free_parking_available,(df.tour_type == 'work') & df.free_parking_at_work, -,dest_hourly_peak_parking_cost,"reindex(land_use.PRKCST, df[DESTINATION])", -,origin_hourly_peak_parking_cost,"reindex(land_use.PRKCST, df[ORIGIN])", -,origin_duration,"np.where(first_trip, np.where(inbound,df.duration/2 * ~free_parking_available,0), 1)", -,dest_duration,"np.where(last_trip, np.where(inbound, df.duration/2 * ~free_parking_available, 0), 1)", -,origin_parking_cost,origin_duration*origin_hourly_peak_parking_cost, -,dest_parking_cost,dest_duration*dest_hourly_peak_parking_cost, -,total_parking_cost,(origin_parking_cost + dest_parking_cost) / 2.0, -,trip_topology,"np.where(df.outbound, reindex(land_use.TOPOLOGY, df[DESTINATION]), reindex(land_use.TOPOLOGY, df[ORIGIN]))", -,density_index,"np.where(df.outbound, reindex(land_use.density_index, df[DESTINATION]), reindex(land_use.density_index, df[ORIGIN]))", -,origin_density_index,"np.where(df.outbound, reindex(land_use.density_index, df[ORIGIN]), reindex(land_use.density_index, df[DESTINATION]))", -# FIXME no transit subzones so all zones short walk to transit,,, -,_walk_transit_origin,True, -,_walk_transit_destination,True, -,walk_transit_available,_walk_transit_origin & _walk_transit_destination & (tour_mode_not_drive_transit), -,pnr_transit_available,tour_mode_is_pnr_transit, -,knr_transit_available,tour_mode_is_knr_transit, -,origin_walk_time,shortWalk*60/walkSpeed, -,destination_walk_time,shortWalk*60/walkSpeed, -# RIDEHAIL,,, -,origin_density_measure,"(reindex(land_use.tot_pop, df[orig_col_name]) + reindex(land_use.tot_emp, df[orig_col_name])) / (reindex(land_use.tot_acres, df[orig_col_name]) / 640)", -,origin_density,"pd.cut(origin_density_measure, bins=[-np.inf, 500, 2000, 5000, 15000, np.inf], labels=[5, 4, 3, 2, 1]).astype(int)", -,origin_zone_taxi_wait_time_mean,"origin_density.map({k: v for k, v in Taxi_waitTime_mean.items()})", -,origin_zone_taxi_wait_time_sd,"origin_density.map({k: v for k, v in Taxi_waitTime_sd.items()})", -# ,, Note that the mean and standard deviation are not the values for the distribution itself, but of the underlying normal distribution it is derived from -,origTaxiWaitTime,"rng.lognormal_for_df(df, mu=origin_zone_taxi_wait_time_mean, sigma=origin_zone_taxi_wait_time_sd, broadcast=True, scale=True).clip(min_waitTime, max_waitTime)", -,origin_zone_singleTNC_wait_time_mean,"origin_density.map({k: v for k, v in TNC_single_waitTime_mean.items()})", -,origin_zone_singleTNC_wait_time_sd,"origin_density.map({k: v for k, v in TNC_single_waitTime_sd.items()})", -,origSingleTNCWaitTime,"rng.lognormal_for_df(df, mu=origin_zone_singleTNC_wait_time_mean, sigma=origin_zone_singleTNC_wait_time_sd, broadcast=True, scale=True).clip(min_waitTime, max_waitTime)", -,origin_zone_sharedTNC_wait_time_mean,"origin_density.map({k: v for k, v in TNC_shared_waitTime_mean.items()})", -,origin_zone_sharedTNC_wait_time_sd,"origin_density.map({k: v for k, v in TNC_shared_waitTime_sd.items()})", -,origSharedTNCWaitTime,"rng.lognormal_for_df(df, mu=origin_zone_sharedTNC_wait_time_mean, sigma=origin_zone_sharedTNC_wait_time_sd, broadcast=True, scale=True).clip(min_waitTime, max_waitTime)", -#,,, -,sov_available,(odt_skims['SOV_TIME']>0) & tour_mode_not_drive_transit, -,hov2_available,(odt_skims['HOV2_TIME']>0) & tour_mode_not_drive_transit, -,hov3_available,(odt_skims['HOV3_TIME']>0) & tour_mode_not_drive_transit, -,walk_local_available,walk_transit_available & (odt_skims['WLK_LOC_IVT']>0), -,walk_premium_available,walk_transit_available & (odt_skims['WLK_PRM_IVT']>0), -,walk_mix_available,walk_transit_available & (odt_skims['WLK_MIX_IVT']>0), -,pnr_local_available_outbound,pnr_transit_available & df.outbound & (odt_skims['PNR_LOC_IVT']>0), -,pnr_local_available_inbound,pnr_transit_available & ~df.outbound & (odt_skims['PNRE_LOC_IVT']>0), -,pnr_premium_available_outbound,pnr_transit_available & df.outbound & (odt_skims['PNR_PRM_IVT']>0), -,pnr_premium_available_inbound,pnr_transit_available & ~df.outbound & (odt_skims['PNRE_PRM_IVT']>0), -,pnr_mix_available_outbound,pnr_transit_available & df.outbound & (odt_skims['PNR_MIX_IVT']>0), -,pnr_mix_available_inbound,pnr_transit_available & ~df.outbound & (odt_skims['PNRE_MIX_IVT']>0), -,knr_local_available_outbound,knr_transit_available & df.outbound & (odt_skims['KNR_LOC_IVT']>0), -,knr_local_available_inbound,knr_transit_available & ~df.outbound & (odt_skims['KNRE_LOC_IVT']>0), -,knr_premium_available_outbound,knr_transit_available & df.outbound & (odt_skims['KNR_PRM_IVT']>0), -,knr_premium_available_inbound,knr_transit_available & ~df.outbound & (odt_skims['KNRE_PRM_IVT']>0), -,knr_mix_available_outbound,knr_transit_available & df.outbound & (odt_skims['KNR_MIX_IVT']>0), -,knr_mix_available_inbound,knr_transit_available & ~df.outbound & (odt_skims['KNRE_MIX_IVT']>0), -#,od_dist_walk,od_skims['DISTWALK'], -#,do_dist_walk,od_skims.reverse('DISTWALK'), -#,max_dist_walk,od_skims.max('DISTWALK'), -#,dist_bike,od_skims['DISTBIKE'], -#,dist_only,od_skims['DIST'], +Description,Target,Expression +,is_joint,(df.number_of_participants > 1) +,is_indiv,(df.number_of_participants == 1) +,is_atwork_subtour,~df.parent_tour_id.isnull() +,is_school,"(df.primary_purpose=='school') & (df.purpose.isin(['school', 'Home']))" +,c_cost,(0.60 * coef_ivt) / df.value_of_time +,ivot,1.0/ df.value_of_time +#,, +#atwork subtours,, +#FIXME tripModeChoice uec wrongly conflates these with tour_mode_is_bike?,, +,parent_tour_mode,"reindex(tours.tour_mode, df.parent_tour_id).fillna('')" +,work_tour_is_SOV,parent_tour_mode.isin(['DRIVEALONE']) +,work_tour_is_bike,parent_tour_mode=='BIKE' +#,, +,i_tour_mode,df.tour_mode.map(I_MODE_MAP) +,tour_mode_is_SOV,"i_tour_mode.isin(I_SOV_MODES) & (df.get('parked_at_university', default = False)==False)" +,tour_mode_is_sr2,"i_tour_mode.isin(I_SR2_MODES) & (df.get('parked_at_university', default = False)==False)" +,tour_mode_is_sr3p,"i_tour_mode.isin(I_SR3P_MODES) & (df.get('parked_at_university', default = False)==False)" +,tour_mode_is_walk,i_tour_mode.isin([I_WALK_MODE]) +,tour_mode_is_bike,i_tour_mode.isin([I_BIKE_MODE]) +,tour_mode_is_walk_transit,"i_tour_mode.isin(I_WALK_TRANSIT_MODES) | (df.get('parked_at_university', default = False)==True)" +#,tour_mode_is_walk_transit,i_tour_mode.isin(I_WALK_TRANSIT_MODES) +,tour_mode_is_drive_transit,i_tour_mode.isin(I_DRIVE_TRANSIT_MODES) +,tour_mode_not_drive_transit,~tour_mode_is_drive_transit +,tour_mode_is_pnr_transit,i_tour_mode.isin(I_PNR_TRANSIT_MODES) +,tour_mode_is_knr_transit,i_tour_mode.isin(I_KNR_TRANSIT_MODES) +,tour_mode_is_school_bus,i_tour_mode.isin(I_SCHOOLBUS_MODE) +,tour_mode_is_ride_hail,i_tour_mode.isin(I_RIDE_HAIL_MODES) +#,, +,inbound,~df.outbound +,first_trip,df.trip_num == 1 +,last_trip,df.trip_num == df.trip_count +origin terminal time not counted at home,_origin_terminal_time,"np.where(df.outbound & first_trip, 0, reindex(land_use.TERMINAL, df[ORIGIN]))" +dest terminal time not counted at home,_dest_terminal_time,"np.where(inbound & last_trip, 0, reindex(land_use.TERMINAL, df[DESTINATION]))" +,total_terminal_time,_origin_terminal_time + _dest_terminal_time +#,, +,free_parking_available,(df.tour_type == 'work') & df.free_parking_at_work +,dest_hourly_peak_parking_cost,"reindex(land_use.PRKCST, df[DESTINATION])" +,origin_hourly_peak_parking_cost,"reindex(land_use.PRKCST, df[ORIGIN])" +,origin_duration,"np.where(first_trip, np.where(inbound,df.duration/2 * ~free_parking_available,0), 1)" +,dest_duration,"np.where(last_trip, np.where(inbound, df.duration/2 * ~free_parking_available, 0), 1)" +,origin_parking_cost,origin_duration*origin_hourly_peak_parking_cost +,dest_parking_cost,dest_duration*dest_hourly_peak_parking_cost +,total_parking_cost,(origin_parking_cost + dest_parking_cost) / 2.0 +,trip_topology,"np.where(df.outbound, reindex(land_use.TOPOLOGY, df[DESTINATION]), reindex(land_use.TOPOLOGY, df[ORIGIN]))" +,density_index,"np.where(df.outbound, reindex(land_use.density_index, df[DESTINATION]), reindex(land_use.density_index, df[ORIGIN]))" +,origin_density_index,"np.where(df.outbound, reindex(land_use.density_index, df[ORIGIN]), reindex(land_use.density_index, df[DESTINATION]))" +# FIXME no transit subzones so all zones short walk to transit,, +,_walk_transit_origin,True +,_walk_transit_destination,True +,walk_transit_available,_walk_transit_origin & _walk_transit_destination & (tour_mode_not_drive_transit) +,pnr_transit_available,tour_mode_is_pnr_transit +,knr_transit_available,tour_mode_is_knr_transit +,origin_walk_time,shortWalk*60/walkSpeed +,destination_walk_time,shortWalk*60/walkSpeed +# RIDEHAIL,, +,origin_density_measure,"(reindex(land_use.tot_pop, df[orig_col_name]) + reindex(land_use.tot_emp, df[orig_col_name])) / (reindex(land_use.tot_acres, df[orig_col_name]) / 640)" +,origin_density,"pd.cut(origin_density_measure, bins=[-np.inf, 500, 2000, 5000, 15000, np.inf], labels=[5, 4, 3, 2, 1]).astype(int)" +,origin_zone_taxi_wait_time_mean,"origin_density.map({k: v for k, v in Taxi_waitTime_mean.items()})" +,origin_zone_taxi_wait_time_sd,"origin_density.map({k: v for k, v in Taxi_waitTime_sd.items()})" +# ,, Note that the mean and standard deviation are not the values for the distribution itself +,origTaxiWaitTime,"rng.lognormal_for_df(df, mu=origin_zone_taxi_wait_time_mean, sigma=origin_zone_taxi_wait_time_sd, broadcast=True, scale=True).clip(min_waitTime, max_waitTime)" +,origin_zone_singleTNC_wait_time_mean,"origin_density.map({k: v for k, v in TNC_single_waitTime_mean.items()})" +,origin_zone_singleTNC_wait_time_sd,"origin_density.map({k: v for k, v in TNC_single_waitTime_sd.items()})" +,origSingleTNCWaitTime,"rng.lognormal_for_df(df, mu=origin_zone_singleTNC_wait_time_mean, sigma=origin_zone_singleTNC_wait_time_sd, broadcast=True, scale=True).clip(min_waitTime, max_waitTime)" +,origin_zone_sharedTNC_wait_time_mean,"origin_density.map({k: v for k, v in TNC_shared_waitTime_mean.items()})" +,origin_zone_sharedTNC_wait_time_sd,"origin_density.map({k: v for k, v in TNC_shared_waitTime_sd.items()})" +,origSharedTNCWaitTime,"rng.lognormal_for_df(df, mu=origin_zone_sharedTNC_wait_time_mean, sigma=origin_zone_sharedTNC_wait_time_sd, broadcast=True, scale=True).clip(min_waitTime, max_waitTime)" +#,, +,sov_available,(odt_skims['SOV_TIME']>0) & tour_mode_not_drive_transit +,hov2_available,(odt_skims['HOV2_TIME']>0) & tour_mode_not_drive_transit +,hov3_available,(odt_skims['HOV3_TIME']>0) & tour_mode_not_drive_transit +,walk_local_available,walk_transit_available & (odt_skims['WLK_LOC_IVT']>0) +,walk_premium_available,walk_transit_available & (odt_skims['WLK_PRM_IVT']>0) +,walk_mix_available,walk_transit_available & (odt_skims['WLK_MIX_IVT']>0) +,pnr_local_available_outbound,pnr_transit_available & df.outbound & (odt_skims['PNR_LOC_IVT']>0) +,pnr_local_available_inbound,pnr_transit_available & ~df.outbound & (odt_skims['PNRE_LOC_IVT']>0) +,pnr_premium_available_outbound,pnr_transit_available & df.outbound & (odt_skims['PNR_PRM_IVT']>0) +,pnr_premium_available_inbound,pnr_transit_available & ~df.outbound & (odt_skims['PNRE_PRM_IVT']>0) +,pnr_mix_available_outbound,pnr_transit_available & df.outbound & (odt_skims['PNR_MIX_IVT']>0) +,pnr_mix_available_inbound,pnr_transit_available & ~df.outbound & (odt_skims['PNRE_MIX_IVT']>0) +,knr_local_available_outbound,knr_transit_available & df.outbound & (odt_skims['KNR_LOC_IVT']>0) +,knr_local_available_inbound,knr_transit_available & ~df.outbound & (odt_skims['KNRE_LOC_IVT']>0) +,knr_premium_available_outbound,knr_transit_available & df.outbound & (odt_skims['KNR_PRM_IVT']>0) +,knr_premium_available_inbound,knr_transit_available & ~df.outbound & (odt_skims['KNRE_PRM_IVT']>0) +,knr_mix_available_outbound,knr_transit_available & df.outbound & (odt_skims['KNR_MIX_IVT']>0) +,knr_mix_available_inbound,knr_transit_available & ~df.outbound & (odt_skims['KNRE_MIX_IVT']>0) +#,od_dist_walk,od_skims['DISTWALK'] +#,do_dist_walk,od_skims.reverse('DISTWALK') +#,max_dist_walk,od_skims.max('DISTWALK') +#,dist_bike,od_skims['DISTBIKE'] +#,dist_only,od_skims['DIST'] +,umich_affiliate_trip,"reindex(persons.umich_worker, df.person_id) | reindex(persons.umich_student, df.person_id)" diff --git a/activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients.csv b/activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients.csv new file mode 100644 index 000000000..4e921dde6 --- /dev/null +++ b/activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients.csv @@ -0,0 +1,437 @@ +coefficient_name,value,constrain +coef_unavailable,-999.0,T +coef_one,1.0,T +coef_nest_root,1.0,T +coef_nest_AUTO,0.72,T +coef_nest_NONMOTORIZED,0.72,T +coef_nest_TRANSIT,0.72,T +coef_nest_WALKACCESS,0.5,T +coef_nest_PNRACCESS,0.5,T +coef_nest_KNRACCESS,0.5,T +coef_nest_RIDEHAIL,0.36,T +coef_ivt_othmaint_social,-0.02,F +coef_ivt_work,-0.02,F +coef_ivt_univ_school,-0.03,F +coef_ivt_escort_shopping_eatout_othdiscr_atwork,-0.03,F +coef_age1619_da,0.0,F +coef_age010_trn,0.0,F +coef_age16p_sr,0.0,F +coef_hhsize1_sr,-0.73,F +coef_hhsize2_sr,0.0,F +coef_walktimeshort_atwork,1.35,F +coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_biketimeshort_atwork,2.7,F +coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,4.0,T +coef_dtim_atwork,1.35,F +coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_ivt_pmov_multiplier,1.0,T +coef_ivt_stcar_multiplier,0.9,T +coef_ivt_brt_multiplier,0.9,T +coef_ivt_urb_multiplier,0.8,T +coef_ivt_com_multiplier,0.7,T +coef_long_iwait_atwork,0.67,F +coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,1.0,T +coef_short_iwait_atwork,1.35,F +coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_wacc_atwork,1.35,F +coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_waux_atwork,1.35,F +coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_wegr_atwork,1.35,F +coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_xwait_atwork,1.35,F +coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,2.0,T +coef_bike_ASC_walk_atwork,0.0,F +coef_bike_ASC_walk_eatout,0.0,F +coef_bike_ASC_walk_escort,0.0,F +coef_bike_ASC_walk_othdiscr,0.0,F +coef_bike_ASC_walk_othmaint,0.0,F +coef_bike_ASC_walk_school,0.0,F +coef_bike_ASC_walk_shopping,0.0,F +coef_bike_ASC_walk_social,0.0,F +coef_bike_ASC_walk_univ,0.0,F +coef_bike_ASC_walk_work,0.0,F +coef_joint_sr2_ASC_walk,-2.670434238,F +coef_joint_sr3p_ASC_sr2,5.16089494300816,F +coef_joint_sr3p_ASC_walk,-1.3963454599301088,F +coef_joint_walk_transit_ASC_sr2,-0.29671824727643636,F +coef_joint_walk_transit_ASC_sr3p,1.987381894150943,F +coef_joint_walk_transit_ASC_walk,7.270894272523597,F +coef_joint_walk_transit_ASC_taxi,-6.0,F +coef_joint_walk_transit_ASC_tnc_single,-6.0,F +coef_joint_walk_transit_ASC_tnc_shared,-6.0,F +coef_joint_pnr_ASC_taxi,-6.0,F +coef_joint_pnr_ASC_tnc_single,-6.0,F +coef_joint_pnr_ASC_tnc_shared,-6.0,F +coef_joint_knr_ASC_taxi,-2.0,F +coef_joint_knr_ASC_tnc_single,-2.0,F +coef_joint_knr_ASC_tnc_shared,-2.0,F +coef_schoolbus_ASC_sr2_atwork,0.0,F +coef_schoolbus_ASC_sr2_eatout,0.0,F +coef_schoolbus_ASC_sr2_escort,0.0,F +coef_schoolbus_ASC_sr2_othdiscr,0.0,F +coef_schoolbus_ASC_sr2_othmaint,0.0,F +coef_schoolbus_ASC_sr2_school,-7.993295787892883,F +coef_schoolbus_ASC_sr2_shopping,0.0,F +coef_schoolbus_ASC_sr2_social,0.0,F +coef_schoolbus_ASC_sr2_univ,0.0,F +coef_schoolbus_ASC_sr2_work,0.0,F +coef_schoolbus_ASC_sr3p_atwork,0.0,F +coef_schoolbus_ASC_sr3p_eatout,0.0,F +coef_schoolbus_ASC_sr3p_escort,0.0,F +coef_schoolbus_ASC_sr3p_othdiscr,0.0,F +coef_schoolbus_ASC_sr3p_othmaint,0.0,F +coef_schoolbus_ASC_sr3p_school,-7.932280693935852,F +coef_schoolbus_ASC_sr3p_shopping,0.0,F +coef_schoolbus_ASC_sr3p_social,0.0,F +coef_schoolbus_ASC_sr3p_univ,0.0,F +coef_schoolbus_ASC_sr3p_work,0.0,F +coef_schoolbus_ASC_walk_atwork,0.0,F +coef_schoolbus_ASC_walk_eatout,0.0,F +coef_schoolbus_ASC_walk_escort,0.0,F +coef_schoolbus_ASC_walk_othdiscr,0.0,F +coef_schoolbus_ASC_walk_othmaint,0.0,F +coef_schoolbus_ASC_walk_school,-7.278815870567198,F +coef_schoolbus_ASC_walk_shopping,0.0,F +coef_schoolbus_ASC_walk_social,0.0,F +coef_schoolbus_ASC_walk_univ,0.0,F +coef_schoolbus_ASC_walk_work,0.0,F +coef_sov_ASC_walk_atwork,-2.611862186784611,F +coef_sov_ASC_walk_eatout,-0.975339717,F +coef_sov_ASC_walk_escort,-0.315886949,F +coef_sov_ASC_walk_othdiscr,-1.185339717,F +coef_sov_ASC_walk_othmaint,-1.615886949,F +coef_sov_ASC_walk_school,-7.0,F +coef_sov_ASC_walk_shopping,-1.785886949,F +coef_sov_ASC_walk_social,-1.435339717,F +coef_sov_ASC_walk_univ,-1.190437786,F +coef_sov_ASC_walk_work,-1.755064575403934,F +coef_sov_ASC_taxi_atwork,-7.0,F +coef_sov_ASC_taxi_eatout,0.0,F +coef_sov_ASC_taxi_escort,0.0,F +coef_sov_ASC_taxi_othdiscr,0.0,F +coef_sov_ASC_taxi_othmaint,0.0,F +coef_sov_ASC_taxi_school,-5.65,F +coef_sov_ASC_taxi_shopping,0.0,F +coef_sov_ASC_taxi_social,0.0,F +coef_sov_ASC_taxi_univ,-6.65,F +coef_sov_ASC_taxi_work,-7.0,F +coef_sov_ASC_tnc_single_atwork,-7.0,F +coef_sov_ASC_tnc_single_eatout,0.0,F +coef_sov_ASC_tnc_single_escort,0.0,F +coef_sov_ASC_tnc_single_othdiscr,0.0,F +coef_sov_ASC_tnc_single_othmaint,0.0,F +coef_sov_ASC_tnc_single_school,-5.65,F +coef_sov_ASC_tnc_single_shopping,0.0,F +coef_sov_ASC_tnc_single_social,0.0,F +coef_sov_ASC_tnc_single_univ,-6.65,F +coef_sov_ASC_tnc_single_work,-7.0,F +coef_sov_ASC_tnc_shared_atwork,-7.0,F +coef_sov_ASC_tnc_shared_eatout,0.0,F +coef_sov_ASC_tnc_shared_escort,0.0,F +coef_sov_ASC_tnc_shared_othdiscr,0.0,F +coef_sov_ASC_tnc_shared_othmaint,0.0,F +coef_sov_ASC_tnc_shared_school,-5.65,F +coef_sov_ASC_tnc_shared_shopping,0.0,F +coef_sov_ASC_tnc_shared_social,0.0,F +coef_sov_ASC_tnc_shared_univ,-6.65,F +coef_sov_ASC_tnc_shared_work,-7.0,F +coef_sr2_ASC_sov_atwork,-1.65830843619847,F +coef_sr2_ASC_sov_eatout,-0.8128110270000001,F +coef_sr2_ASC_sov_escort,-0.516738762847956,F +coef_sr2_ASC_sov_othdiscr,-0.8128110270000001,F +coef_sr2_ASC_sov_othmaint,-0.516738762847956,F +coef_sr2_ASC_sov_school,-0.159700433,F +coef_sr2_ASC_sov_shopping,-0.516738762847956,F +coef_sr2_ASC_sov_social,-0.8128110270000001,F +coef_sr2_ASC_sov_univ,-1.0174420806480062,F +coef_sr2_ASC_sov_work,-0.503302855,F +coef_sr2_ASC_walk_atwork,-4.192554043879954,F +coef_sr2_ASC_walk_eatout,-0.459000825,F +coef_sr2_ASC_walk_escort,-3.357326837,F +coef_sr2_ASC_walk_othdiscr,-0.409000825,F +coef_sr2_ASC_walk_othmaint,-1.897326837,F +coef_sr2_ASC_walk_school,-0.4602985572380695,F +coef_sr2_ASC_walk_shopping,-1.4173268369999998,F +coef_sr2_ASC_walk_social,-1.179000825,F +coef_sr2_ASC_walk_univ,-0.4020943276312051,F +coef_sr2_ASC_walk_work,-0.757427466,F +coef_sr2_ASC_taxi_atwork,0.0,F +coef_sr2_ASC_taxi_eatout,0.0,F +coef_sr2_ASC_taxi_escort,0.0,F +coef_sr2_ASC_taxi_othdiscr,0.0,F +coef_sr2_ASC_taxi_othmaint,0.0,F +coef_sr2_ASC_taxi_school,0.0,F +coef_sr2_ASC_taxi_shopping,0.0,F +coef_sr2_ASC_taxi_social,0.0,F +coef_sr2_ASC_taxi_univ,0.0,F +coef_sr2_ASC_taxi_work,0.0,F +coef_sr2_ASC_tnc_single_atwork,0.0,F +coef_sr2_ASC_tnc_single_eatout,0.0,F +coef_sr2_ASC_tnc_single_escort,0.0,F +coef_sr2_ASC_tnc_single_othdiscr,0.0,F +coef_sr2_ASC_tnc_single_othmaint,0.0,F +coef_sr2_ASC_tnc_single_school,0.0,F +coef_sr2_ASC_tnc_single_shopping,0.0,F +coef_sr2_ASC_tnc_single_social,0.0,F +coef_sr2_ASC_tnc_single_univ,0.0,F +coef_sr2_ASC_tnc_single_work,0.0,F +coef_sr2_ASC_tnc_shared_atwork,0.0,F +coef_sr2_ASC_tnc_shared_eatout,0.0,F +coef_sr2_ASC_tnc_shared_escort,0.0,F +coef_sr2_ASC_tnc_shared_othdiscr,0.0,F +coef_sr2_ASC_tnc_shared_othmaint,0.0,F +coef_sr2_ASC_tnc_shared_school,0.0,F +coef_sr2_ASC_tnc_shared_shopping,0.0,F +coef_sr2_ASC_tnc_shared_social,0.0,F +coef_sr2_ASC_tnc_shared_univ,0.0,F +coef_sr2_ASC_tnc_shared_work,0.0,F +coef_sr3p_ASC_sov_atwork,-1.6837203264219032,F +coef_sr3p_ASC_sov_eatout,-1.4696694173296228,F +coef_sr3p_ASC_sov_escort,-1.1147216910406241,F +coef_sr3p_ASC_sov_othdiscr,-1.4696694173296228,F +coef_sr3p_ASC_sov_othmaint,-1.1147216910406241,F +coef_sr3p_ASC_sov_school,-1.8967873633778494,F +coef_sr3p_ASC_sov_shopping,-1.1147216910406241,F +coef_sr3p_ASC_sov_social,-1.4696694173296228,F +coef_sr3p_ASC_sov_univ,-1.1435334198239688,F +coef_sr3p_ASC_sov_work,-0.24531126083249408,F +coef_sr3p_ASC_sr2_atwork,-0.6183988081937625,F +coef_sr3p_ASC_sr2_eatout,-0.7332295999087196,F +coef_sr3p_ASC_sr2_escort,-0.6488546768412439,F +coef_sr3p_ASC_sr2_othdiscr,-1.0232295999087195,F +coef_sr3p_ASC_sr2_othmaint,-0.6688546768412439,F +coef_sr3p_ASC_sr2_school,-1.099215843248568,F +coef_sr3p_ASC_sr2_shopping,-0.458854676841244,F +coef_sr3p_ASC_sr2_social,-0.5732295999087196,F +coef_sr3p_ASC_sr2_univ,-0.8246824549421773,F +coef_sr3p_ASC_sr2_work,-0.32213669677846324,F +coef_sr3p_ASC_walk_atwork,-3.1702232186081076,F +coef_sr3p_ASC_walk_eatout,0.06600330377635152,F +coef_sr3p_ASC_walk_escort,-2.1213148274353544,F +coef_sr3p_ASC_walk_othdiscr,-0.4139966962236485,F +coef_sr3p_ASC_walk_othmaint,-1.0713148274353541,F +coef_sr3p_ASC_walk_school,-0.89577907,F +coef_sr3p_ASC_walk_shopping,-1.621314827435354,F +coef_sr3p_ASC_walk_social,-0.2039966962236485,F +coef_sr3p_ASC_walk_univ,-0.8483501178271754,F +coef_sr3p_ASC_walk_work,-1.044315109540901,F +coef_sr3p_ASC_taxi_atwork,0.0,F +coef_sr3p_ASC_taxi_eatout,0.0,F +coef_sr3p_ASC_taxi_escort,0.0,F +coef_sr3p_ASC_taxi_othdiscr,0.0,F +coef_sr3p_ASC_taxi_othmaint,0.0,F +coef_sr3p_ASC_taxi_school,0.0,F +coef_sr3p_ASC_taxi_shopping,0.0,F +coef_sr3p_ASC_taxi_social,0.0,F +coef_sr3p_ASC_taxi_univ,0.0,F +coef_sr3p_ASC_taxi_work,0.0,F +coef_sr3p_ASC_tnc_single_atwork,0.0,F +coef_sr3p_ASC_tnc_single_eatout,0.0,F +coef_sr3p_ASC_tnc_single_escort,0.0,F +coef_sr3p_ASC_tnc_single_othdiscr,0.0,F +coef_sr3p_ASC_tnc_single_othmaint,0.0,F +coef_sr3p_ASC_tnc_single_school,0.0,F +coef_sr3p_ASC_tnc_single_shopping,0.0,F +coef_sr3p_ASC_tnc_single_social,0.0,F +coef_sr3p_ASC_tnc_single_univ,0.0,F +coef_sr3p_ASC_tnc_single_work,0.0,F +coef_sr3p_ASC_tnc_shared_atwork,0.0,F +coef_sr3p_ASC_tnc_shared_eatout,0.0,F +coef_sr3p_ASC_tnc_shared_escort,0.0,F +coef_sr3p_ASC_tnc_shared_othdiscr,0.0,F +coef_sr3p_ASC_tnc_shared_othmaint,0.0,F +coef_sr3p_ASC_tnc_shared_school,0.0,F +coef_sr3p_ASC_tnc_shared_shopping,0.0,F +coef_sr3p_ASC_tnc_shared_social,0.0,F +coef_sr3p_ASC_tnc_shared_univ,0.0,F +coef_sr3p_ASC_tnc_shared_work,0.0,F +coef_walk_transit_ASC_sr2_atwork,-24.0,F +coef_walk_transit_ASC_sr2_eatout,-1.7369289478079428,F +coef_walk_transit_ASC_sr2_escort,-1.2111514739569071,F +coef_walk_transit_ASC_sr2_othdiscr,-1.7369289478079428,F +coef_walk_transit_ASC_sr2_othmaint,-1.2111514739569071,F +coef_walk_transit_ASC_sr2_school,0.450413306014773,F +coef_walk_transit_ASC_sr2_shopping,-1.2111514739569071,F +coef_walk_transit_ASC_sr2_social,-1.7369289478079428,F +coef_walk_transit_ASC_sr2_univ,-1.5666841980888735,F +coef_walk_transit_ASC_sr2_work,-1.6134052999855972,F +coef_walk_transit_ASC_sr3p_atwork,5.543020885152248,F +coef_walk_transit_ASC_sr3p_eatout,-2.229190593215116,F +coef_walk_transit_ASC_sr3p_escort,-2.4793639201672115,F +coef_walk_transit_ASC_sr3p_othdiscr,-2.229190593215116,F +coef_walk_transit_ASC_sr3p_othmaint,-2.4793639201672115,F +coef_walk_transit_ASC_sr3p_school,-0.3825800481513496,F +coef_walk_transit_ASC_sr3p_shopping,-2.4793639201672115,F +coef_walk_transit_ASC_sr3p_social,-2.229190593215116,F +coef_walk_transit_ASC_sr3p_univ,-3.0658369947645734,F +coef_walk_transit_ASC_sr3p_work,-1.7098363752835202,F +coef_walk_transit_ASC_walk_atwork,9.507358567968963,F +coef_walk_transit_ASC_walk_eatout,6.900437752139392,F +coef_walk_transit_ASC_walk_escort,6.092146950765866,F +coef_walk_transit_ASC_walk_othdiscr,6.900437752139392,F +coef_walk_transit_ASC_walk_othmaint,6.092146950765866,F +coef_walk_transit_ASC_walk_school,3.254118006559673,F +coef_walk_transit_ASC_walk_shopping,6.092146950765866,F +coef_walk_transit_ASC_walk_social,6.900437752139392,F +coef_walk_transit_ASC_walk_univ,4.362114140475233,F +coef_walk_transit_ASC_walk_work,2.7768822321306543,F +coef_walk_transit_ASC_taxi_atwork,-20.0,F +coef_walk_transit_ASC_taxi_eatout,-6.0,F +coef_walk_transit_ASC_taxi_escort,-6.0,F +coef_walk_transit_ASC_taxi_othdiscr,-6.0,F +coef_walk_transit_ASC_taxi_othmaint,-6.0,F +coef_walk_transit_ASC_taxi_school,-6.0,F +coef_walk_transit_ASC_taxi_shopping,-6.0,F +coef_walk_transit_ASC_taxi_social,-6.0,F +coef_walk_transit_ASC_taxi_univ,-8.0,F +coef_walk_transit_ASC_taxi_work,-6.0,F +coef_walk_transit_ASC_tnc_single_atwork,-17.644612763246165,F +coef_walk_transit_ASC_tnc_single_eatout,-1.7243332486054967,F +coef_walk_transit_ASC_tnc_single_escort,-1.7289088321322377,F +coef_walk_transit_ASC_tnc_single_othdiscr,-1.7243332486054967,F +coef_walk_transit_ASC_tnc_single_othmaint,-1.7289088321322377,F +coef_walk_transit_ASC_tnc_single_school,-6.0,F +coef_walk_transit_ASC_tnc_single_shopping,-1.7289088321322377,F +coef_walk_transit_ASC_tnc_single_social,-1.7243332486054967,F +coef_walk_transit_ASC_tnc_single_univ,-4.316421925255281,F +coef_walk_transit_ASC_tnc_single_work,-1.3078527416803412,F +coef_walk_transit_ASC_tnc_shared_atwork,-20.0,F +coef_walk_transit_ASC_tnc_shared_eatout,-4.0,F +coef_walk_transit_ASC_tnc_shared_escort,-3.821834096865145,F +coef_walk_transit_ASC_tnc_shared_othdiscr,-4.0,F +coef_walk_transit_ASC_tnc_shared_othmaint,-3.821834096865145,F +coef_walk_transit_ASC_tnc_shared_school,-6.0,F +coef_walk_transit_ASC_tnc_shared_shopping,-3.821834096865145,F +coef_walk_transit_ASC_tnc_shared_social,-4.0,F +coef_walk_transit_ASC_tnc_shared_univ,-8.0,F +coef_walk_transit_ASC_tnc_shared_work,-1.61079194119255,F +coef_pnr_ASC_taxi_atwork,0.0,F +coef_pnr_ASC_taxi_eatout,-4.0,F +coef_pnr_ASC_taxi_escort,-2.0,F +coef_pnr_ASC_taxi_othdiscr,-4.0,F +coef_pnr_ASC_taxi_othmaint,-2.0,F +coef_pnr_ASC_taxi_school,-2.0,F +coef_pnr_ASC_taxi_shopping,-2.0,F +coef_pnr_ASC_taxi_social,-4.0,F +coef_pnr_ASC_taxi_univ,-4.0,F +coef_pnr_ASC_taxi_work,-6.0,F +coef_pnr_ASC_tnc_single_atwork,0.0,F +coef_pnr_ASC_tnc_single_eatout,-6.0,F +coef_pnr_ASC_tnc_single_escort,-4.0,F +coef_pnr_ASC_tnc_single_othdiscr,-6.0,F +coef_pnr_ASC_tnc_single_othmaint,-4.0,F +coef_pnr_ASC_tnc_single_school,-2.0,F +coef_pnr_ASC_tnc_single_shopping,-4.0,F +coef_pnr_ASC_tnc_single_social,-6.0,F +coef_pnr_ASC_tnc_single_univ,-0.9393003481900788,F +coef_pnr_ASC_tnc_single_work,-6.0,F +coef_pnr_ASC_tnc_shared_atwork,0.0,F +coef_pnr_ASC_tnc_shared_eatout,-6.0,F +coef_pnr_ASC_tnc_shared_escort,-1.4708437216103394,F +coef_pnr_ASC_tnc_shared_othdiscr,-6.0,F +coef_pnr_ASC_tnc_shared_othmaint,-1.4708437216103394,F +coef_pnr_ASC_tnc_shared_school,-2.0,F +coef_pnr_ASC_tnc_shared_shopping,-1.4708437216103394,F +coef_pnr_ASC_tnc_shared_social,-6.0,F +coef_pnr_ASC_tnc_shared_univ,-1.084943489059154,F +coef_pnr_ASC_tnc_shared_work,-6.0,F +coef_knr_ASC_taxi_atwork,0.0,F +coef_knr_ASC_taxi_eatout,-2.0,F +coef_knr_ASC_taxi_escort,-4.0,F +coef_knr_ASC_taxi_othdiscr,-2.0,F +coef_knr_ASC_taxi_othmaint,-4.0,F +coef_knr_ASC_taxi_school,-2.0,F +coef_knr_ASC_taxi_shopping,-4.0,F +coef_knr_ASC_taxi_social,-2.0,F +coef_knr_ASC_taxi_univ,0.0,F +coef_knr_ASC_taxi_work,-6.0,F +coef_knr_ASC_tnc_single_atwork,0.0,F +coef_knr_ASC_tnc_single_eatout,-0.3588883143869817,F +coef_knr_ASC_tnc_single_escort,-4.0,F +coef_knr_ASC_tnc_single_othdiscr,-0.3588883143869817,F +coef_knr_ASC_tnc_single_othmaint,-4.0,F +coef_knr_ASC_tnc_single_school,-2.0,F +coef_knr_ASC_tnc_single_shopping,-4.0,F +coef_knr_ASC_tnc_single_social,-0.3588883143869817,F +coef_knr_ASC_tnc_single_univ,0.0,F +coef_knr_ASC_tnc_single_work,-6.0,F +coef_knr_ASC_tnc_shared_atwork,0.0,F +coef_knr_ASC_tnc_shared_eatout,-2.0,F +coef_knr_ASC_tnc_shared_escort,-6.0,F +coef_knr_ASC_tnc_shared_othdiscr,-2.0,F +coef_knr_ASC_tnc_shared_othmaint,-6.0,F +coef_knr_ASC_tnc_shared_school,-2.0,F +coef_knr_ASC_tnc_shared_shopping,-6.0,F +coef_knr_ASC_tnc_shared_social,-2.0,F +coef_knr_ASC_tnc_shared_univ,0.0,F +coef_knr_ASC_tnc_shared_work,-4.0,F +coef_ride_hail_ASC_sr2_atwork,-4.194814560252766,F +coef_ride_hail_ASC_sr2_eatout,-2.878486653970886,F +coef_ride_hail_ASC_sr2_escort,-3.837597849074165,F +coef_ride_hail_ASC_sr2_othdiscr,-2.878486653970886,F +coef_ride_hail_ASC_sr2_othmaint,-3.837597849074165,F +coef_ride_hail_ASC_sr2_school,0.0,F +coef_ride_hail_ASC_sr2_shopping,-3.837597849074165,F +coef_ride_hail_ASC_sr2_social,-2.878486653970886,F +coef_ride_hail_ASC_sr2_univ,-8.0,F +coef_ride_hail_ASC_sr2_work,-2.7306069794943824,F +coef_ride_hail_ASC_sr3p_atwork,-0.02816879275892241,F +coef_ride_hail_ASC_sr3p_eatout,-2.4022467069832416,F +coef_ride_hail_ASC_sr3p_escort,-5.43450391956938,F +coef_ride_hail_ASC_sr3p_othdiscr,-2.4022467069832416,F +coef_ride_hail_ASC_sr3p_othmaint,-5.43450391956938,F +coef_ride_hail_ASC_sr3p_school,0.0,F +coef_ride_hail_ASC_sr3p_shopping,-5.43450391956938,F +coef_ride_hail_ASC_sr3p_social,-2.4022467069832416,F +coef_ride_hail_ASC_sr3p_univ,-8.0,F +coef_ride_hail_ASC_sr3p_work,-4.358121247512555,F +coef_ride_hail_ASC_walk_atwork,-0.6050090625165803,F +coef_ride_hail_ASC_walk_eatout,4.233406392877863,F +coef_ride_hail_ASC_walk_escort,4.639495699397734,F +coef_ride_hail_ASC_walk_othdiscr,4.233406392877863,F +coef_ride_hail_ASC_walk_othmaint,4.639495699397734,F +coef_ride_hail_ASC_walk_school,0.0,F +coef_ride_hail_ASC_walk_shopping,4.639495699397734,F +coef_ride_hail_ASC_walk_social,4.233406392877863,F +coef_ride_hail_ASC_walk_univ,10.074765267738677,F +coef_ride_hail_ASC_walk_work,2.9228335785699096,F +coef_ride_hail_ASC_walk_transit_atwork,0.0,F +coef_ride_hail_ASC_walk_transit_eatout,0.0,F +coef_ride_hail_ASC_walk_transit_escort,0.0,F +coef_ride_hail_ASC_walk_transit_othdiscr,0.0,F +coef_ride_hail_ASC_walk_transit_othmaint,0.0,F +coef_ride_hail_ASC_walk_transit_school,0.0,F +coef_ride_hail_ASC_walk_transit_shopping,0.0,F +coef_ride_hail_ASC_walk_transit_social,0.0,F +coef_ride_hail_ASC_walk_transit_univ,0.0,F +coef_ride_hail_ASC_walk_transit_work,0.0,F +coef_ride_hail_ASC_taxi_atwork,-3.4409195618151758,F +coef_ride_hail_ASC_taxi_eatout,-3.0588378732963655,F +coef_ride_hail_ASC_taxi_escort,0.13668619034805163,F +coef_ride_hail_ASC_taxi_othdiscr,-3.0588378732963655,F +coef_ride_hail_ASC_taxi_othmaint,0.13668619034805163,F +coef_ride_hail_ASC_taxi_school,0.0,F +coef_ride_hail_ASC_taxi_shopping,0.13668619034805163,F +coef_ride_hail_ASC_taxi_social,-3.0588378732963655,F +coef_ride_hail_ASC_taxi_univ,-2.0,F +coef_ride_hail_ASC_taxi_work,-1.4997778696423307,F +coef_ride_hail_ASC_tnc_shared_atwork,0.08338096487616292,F +coef_ride_hail_ASC_tnc_shared_eatout,-0.6599026327711519,F +coef_ride_hail_ASC_tnc_shared_escort,-1.4546332301132097,F +coef_ride_hail_ASC_tnc_shared_othdiscr,-0.6599026327711519,F +coef_ride_hail_ASC_tnc_shared_othmaint,-1.4546332301132097,F +coef_ride_hail_ASC_tnc_shared_school,0.0,F +coef_ride_hail_ASC_tnc_shared_shopping,-1.4546332301132097,F +coef_ride_hail_ASC_tnc_shared_social,-0.6599026327711519,F +coef_ride_hail_ASC_tnc_shared_univ,0.20906146848733678,F +coef_ride_hail_ASC_tnc_shared_work,0.2349144594695466,F +coef_joint_ride_hail_ASC_sr2,9.049327481245165,F +coef_joint_ride_hail_ASC_sr3p,-2.593917552844828,F +coef_joint_ride_hail_ASC_walk,3.752001005825818,F +coef_joint_ride_hail_ASC_taxi,-4.0,F +coef_joint_ride_hail_ASC_tnc_shared,1.037068465915433,F +walk_express_penalty,10.0,T +adjust_tnc_shared,30.0,T +coef_origin_density_applied_work_univ_school,0.0,T +coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,1.0,T diff --git a/activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients_template.csv b/activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients_template.csv new file mode 100644 index 000000000..8cbdc63df --- /dev/null +++ b/activitysim/examples/example_semcog/configs/trip_mode_choice_coefficients_template.csv @@ -0,0 +1,98 @@ +coefficient_name,work,univ,school,escort,shopping,eatout,othmaint,social,othdiscr,atwork +#same for all segments,,,,,,,,,, +coef_unavailable,,,,,,,,,, +coef_one,,,,,,,,,, +coef_nest_root,,,,,,,,,, +coef_nest_AUTO,,,,,,,,,, +coef_nest_NONMOTORIZED,,,,,,,,,, +coef_nest_TRANSIT,,,,,,,,,, +coef_nest_WALKACCESS,,,,,,,,,, +coef_nest_PNRACCESS,,,,,,,,,, +coef_nest_KNRACCESS,,,,,,,,,, +coef_nest_RIDEHAIL,,,,,,,,,, +#,,,,,,,,,, +coef_ivt,coef_ivt_work,coef_ivt_univ_school,coef_ivt_univ_school,coef_ivt_escort_shopping_eatout_othdiscr_atwork,coef_ivt_escort_shopping_eatout_othdiscr_atwork,coef_ivt_escort_shopping_eatout_othdiscr_atwork,coef_ivt_othmaint_social,coef_ivt_othmaint_social,coef_ivt_escort_shopping_eatout_othdiscr_atwork,coef_ivt_escort_shopping_eatout_othdiscr_atwork +coef_age1619_da,,,,,,,,,, +coef_age010_trn,,,,,,,,,, +coef_age16p_sr,,,,,,,,,, +coef_hhsize1_sr,,,,,,,,,, +coef_hhsize2_sr,,,,,,,,,, +#multipliers that differ by purpose and were apparently estimated only for atwork,,,,,,,,,, +coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier,coef_ivt_pmov_multiplier +coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier,coef_ivt_stcar_multiplier +coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier,coef_ivt_brt_multiplier +coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier,coef_ivt_urb_multiplier +coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier,coef_ivt_com_multiplier +coef_short_iwait_multiplier,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_short_iwait_atwork +coef_long_iwait_multiplier,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_long_iwait_atwork +coef_wacc_multiplier,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wacc_atwork +coef_wegr_multiplier,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_wegr_atwork +coef_waux_multiplier,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_waux_atwork +coef_dtim_multiplier,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_dtim_atwork +coef_xwait_multiplier,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_xwait_atwork +coef_walktimeshort_multiplier,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_walktimeshort_atwork +coef_biketimeshort_multiplier,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_work_univ_school_escort_shopping_eatout_othmaint_social_othdiscr,coef_biketimeshort_atwork +#ASCs,,,,,,,,,, +sov_ASC_walk,coef_sov_ASC_walk_work,coef_sov_ASC_walk_univ,coef_sov_ASC_walk_school,coef_sov_ASC_walk_escort,coef_sov_ASC_walk_shopping,coef_sov_ASC_walk_eatout,coef_sov_ASC_walk_othmaint,coef_sov_ASC_walk_social,coef_sov_ASC_walk_othdiscr,coef_sov_ASC_walk_atwork +sov_ASC_taxi,coef_sov_ASC_taxi_work,coef_sov_ASC_taxi_univ,coef_sov_ASC_taxi_school,coef_sov_ASC_taxi_escort,coef_sov_ASC_taxi_shopping,coef_sov_ASC_taxi_eatout,coef_sov_ASC_taxi_othmaint,coef_sov_ASC_taxi_social,coef_sov_ASC_taxi_othdiscr,coef_sov_ASC_taxi_atwork +sov_ASC_tnc_single,coef_sov_ASC_tnc_single_work,coef_sov_ASC_tnc_single_univ,coef_sov_ASC_tnc_single_school,coef_sov_ASC_tnc_single_escort,coef_sov_ASC_tnc_single_shopping,coef_sov_ASC_tnc_single_eatout,coef_sov_ASC_tnc_single_othmaint,coef_sov_ASC_tnc_single_social,coef_sov_ASC_tnc_single_othdiscr,coef_sov_ASC_tnc_single_atwork +sov_ASC_tnc_shared,coef_sov_ASC_tnc_shared_work,coef_sov_ASC_tnc_shared_univ,coef_sov_ASC_tnc_shared_school,coef_sov_ASC_tnc_shared_escort,coef_sov_ASC_tnc_shared_shopping,coef_sov_ASC_tnc_shared_eatout,coef_sov_ASC_tnc_shared_othmaint,coef_sov_ASC_tnc_shared_social,coef_sov_ASC_tnc_shared_othdiscr,coef_sov_ASC_tnc_shared_atwork +sr2_ASC_sov,coef_sr2_ASC_sov_work,coef_sr2_ASC_sov_univ,coef_sr2_ASC_sov_school,coef_sr2_ASC_sov_escort,coef_sr2_ASC_sov_shopping,coef_sr2_ASC_sov_eatout,coef_sr2_ASC_sov_othmaint,coef_sr2_ASC_sov_social,coef_sr2_ASC_sov_othdiscr,coef_sr2_ASC_sov_atwork +sr2_ASC_walk,coef_sr2_ASC_walk_work,coef_sr2_ASC_walk_univ,coef_sr2_ASC_walk_school,coef_sr2_ASC_walk_escort,coef_sr2_ASC_walk_shopping,coef_sr2_ASC_walk_eatout,coef_sr2_ASC_walk_othmaint,coef_sr2_ASC_walk_social,coef_sr2_ASC_walk_othdiscr,coef_sr2_ASC_walk_atwork +sr2_ASC_taxi,coef_sr2_ASC_taxi_work,coef_sr2_ASC_taxi_univ,coef_sr2_ASC_taxi_school,coef_sr2_ASC_taxi_escort,coef_sr2_ASC_taxi_shopping,coef_sr2_ASC_taxi_eatout,coef_sr2_ASC_taxi_othmaint,coef_sr2_ASC_taxi_social,coef_sr2_ASC_taxi_othdiscr,coef_sr2_ASC_taxi_atwork +sr2_ASC_tnc_single,coef_sr2_ASC_tnc_single_work,coef_sr2_ASC_tnc_single_univ,coef_sr2_ASC_tnc_single_school,coef_sr2_ASC_tnc_single_escort,coef_sr2_ASC_tnc_single_shopping,coef_sr2_ASC_tnc_single_eatout,coef_sr2_ASC_tnc_single_othmaint,coef_sr2_ASC_tnc_single_social,coef_sr2_ASC_tnc_single_othdiscr,coef_sr2_ASC_tnc_single_atwork +sr2_ASC_tnc_shared,coef_sr2_ASC_tnc_shared_work,coef_sr2_ASC_tnc_shared_univ,coef_sr2_ASC_tnc_shared_school,coef_sr2_ASC_tnc_shared_escort,coef_sr2_ASC_tnc_shared_shopping,coef_sr2_ASC_tnc_shared_eatout,coef_sr2_ASC_tnc_shared_othmaint,coef_sr2_ASC_tnc_shared_social,coef_sr2_ASC_tnc_shared_othdiscr,coef_sov_ASC_tnc_shared_atwork +sr3p_ASC_sov,coef_sr3p_ASC_sov_work,coef_sr3p_ASC_sov_univ,coef_sr3p_ASC_sov_school,coef_sr3p_ASC_sov_escort,coef_sr3p_ASC_sov_shopping,coef_sr3p_ASC_sov_eatout,coef_sr3p_ASC_sov_othmaint,coef_sr3p_ASC_sov_social,coef_sr3p_ASC_sov_othdiscr,coef_sr3p_ASC_sov_atwork +sr3p_ASC_sr2,coef_sr3p_ASC_sr2_work,coef_sr3p_ASC_sr2_univ,coef_sr3p_ASC_sr2_school,coef_sr3p_ASC_sr2_escort,coef_sr3p_ASC_sr2_shopping,coef_sr3p_ASC_sr2_eatout,coef_sr3p_ASC_sr2_othmaint,coef_sr3p_ASC_sr2_social,coef_sr3p_ASC_sr2_othdiscr,coef_sr3p_ASC_sr2_atwork +sr3p_ASC_walk,coef_sr3p_ASC_walk_work,coef_sr3p_ASC_walk_univ,coef_sr3p_ASC_walk_school,coef_sr3p_ASC_walk_escort,coef_sr3p_ASC_walk_shopping,coef_sr3p_ASC_walk_eatout,coef_sr3p_ASC_walk_othmaint,coef_sr3p_ASC_walk_social,coef_sr3p_ASC_walk_othdiscr,coef_sr3p_ASC_walk_atwork +sr3p_ASC_taxi,coef_sr3p_ASC_taxi_work,coef_sr3p_ASC_taxi_univ,coef_sr3p_ASC_taxi_school,coef_sr3p_ASC_taxi_escort,coef_sr3p_ASC_taxi_shopping,coef_sr3p_ASC_taxi_eatout,coef_sr3p_ASC_taxi_othmaint,coef_sr3p_ASC_taxi_social,coef_sr3p_ASC_taxi_othdiscr,coef_sr3p_ASC_taxi_atwork +sr3p_ASC_tnc_single,coef_sr3p_ASC_tnc_single_work,coef_sr3p_ASC_tnc_single_univ,coef_sr3p_ASC_tnc_single_school,coef_sr3p_ASC_tnc_single_escort,coef_sr3p_ASC_tnc_single_shopping,coef_sr3p_ASC_tnc_single_eatout,coef_sr3p_ASC_tnc_single_othmaint,coef_sr3p_ASC_tnc_single_social,coef_sr3p_ASC_tnc_single_othdiscr,coef_sr3p_ASC_tnc_single_atwork +sr3p_ASC_tnc_shared,coef_sr3p_ASC_tnc_shared_work,coef_sr3p_ASC_tnc_shared_univ,coef_sr3p_ASC_tnc_shared_school,coef_sr3p_ASC_tnc_shared_escort,coef_sr3p_ASC_tnc_shared_shopping,coef_sr3p_ASC_tnc_shared_eatout,coef_sr3p_ASC_tnc_shared_othmaint,coef_sr3p_ASC_tnc_shared_social,coef_sr3p_ASC_tnc_shared_othdiscr,coef_sov_ASC_tnc_shared_atwork +#walk_ASC_rh,coef_walk_ASC_rh_work,coef_walk_ASC_rh_univ,coef_walk_ASC_rh_school,coef_walk_ASC_rh_escort,coef_walk_ASC_rh_shopping,coef_walk_ASC_rh_eatout,coef_walk_ASC_rh_othmaint,coef_walk_ASC_rh_social,coef_walk_ASC_rh_othdiscr,coef_walk_ASC_rh_atwork +bike_ASC_walk,coef_bike_ASC_walk_work,coef_bike_ASC_walk_univ,coef_bike_ASC_walk_school,coef_bike_ASC_walk_escort,coef_bike_ASC_walk_shopping,coef_bike_ASC_walk_eatout,coef_bike_ASC_walk_othmaint,coef_bike_ASC_walk_social,coef_bike_ASC_walk_othdiscr,coef_bike_ASC_walk_atwork +#bike_ASC_rh,coef_bike_ASC_rh_work,coef_bike_ASC_rh_univ,coef_bike_ASC_rh_school,coef_bike_ASC_rh_escort,coef_bike_ASC_rh_shopping,coef_bike_ASC_rh_eatout,coef_bike_ASC_rh_othmaint,coef_bike_ASC_rh_social,coef_bike_ASC_rh_othdiscr,coef_bike_ASC_rh_atwork +walk_transit_ASC_sr2,coef_walk_transit_ASC_sr2_work,coef_walk_transit_ASC_sr2_univ,coef_walk_transit_ASC_sr2_school,coef_walk_transit_ASC_sr2_escort,coef_walk_transit_ASC_sr2_shopping,coef_walk_transit_ASC_sr2_eatout,coef_walk_transit_ASC_sr2_othmaint,coef_walk_transit_ASC_sr2_social,coef_walk_transit_ASC_sr2_othdiscr,coef_walk_transit_ASC_sr2_atwork +walk_transit_ASC_sr3p,coef_walk_transit_ASC_sr3p_work,coef_walk_transit_ASC_sr3p_univ,coef_walk_transit_ASC_sr3p_school,coef_walk_transit_ASC_sr3p_escort,coef_walk_transit_ASC_sr3p_shopping,coef_walk_transit_ASC_sr3p_eatout,coef_walk_transit_ASC_sr3p_othmaint,coef_walk_transit_ASC_sr3p_social,coef_walk_transit_ASC_sr3p_othdiscr,coef_walk_transit_ASC_sr3p_atwork +walk_transit_ASC_walk,coef_walk_transit_ASC_walk_work,coef_walk_transit_ASC_walk_univ,coef_walk_transit_ASC_walk_school,coef_walk_transit_ASC_walk_escort,coef_walk_transit_ASC_walk_shopping,coef_walk_transit_ASC_walk_eatout,coef_walk_transit_ASC_walk_othmaint,coef_walk_transit_ASC_walk_social,coef_walk_transit_ASC_walk_othdiscr,coef_walk_transit_ASC_walk_atwork +walk_transit_ASC_taxi,coef_walk_transit_ASC_taxi_work,coef_walk_transit_ASC_taxi_univ,coef_walk_transit_ASC_taxi_school,coef_walk_transit_ASC_taxi_escort,coef_walk_transit_ASC_taxi_shopping,coef_walk_transit_ASC_taxi_eatout,coef_walk_transit_ASC_taxi_othmaint,coef_walk_transit_ASC_taxi_social,coef_walk_transit_ASC_taxi_othdiscr,coef_walk_transit_ASC_taxi_atwork +walk_transit_ASC_tnc_single,coef_walk_transit_ASC_tnc_single_work,coef_walk_transit_ASC_tnc_single_univ,coef_walk_transit_ASC_tnc_single_school,coef_walk_transit_ASC_tnc_single_escort,coef_walk_transit_ASC_tnc_single_shopping,coef_walk_transit_ASC_tnc_single_eatout,coef_walk_transit_ASC_tnc_single_othmaint,coef_walk_transit_ASC_tnc_single_social,coef_walk_transit_ASC_tnc_single_othdiscr,coef_walk_transit_ASC_tnc_single_atwork +walk_transit_ASC_tnc_shared,coef_walk_transit_ASC_tnc_shared_work,coef_walk_transit_ASC_tnc_shared_univ,coef_walk_transit_ASC_tnc_shared_school,coef_walk_transit_ASC_tnc_shared_escort,coef_walk_transit_ASC_tnc_shared_shopping,coef_walk_transit_ASC_tnc_shared_eatout,coef_walk_transit_ASC_tnc_shared_othmaint,coef_walk_transit_ASC_tnc_shared_social,coef_walk_transit_ASC_tnc_shared_othdiscr,coef_walk_transit_ASC_tnc_shared_atwork +pnr_ASC_taxi,coef_pnr_ASC_taxi_work,coef_pnr_ASC_taxi_univ,coef_pnr_ASC_taxi_school,coef_pnr_ASC_taxi_escort,coef_pnr_ASC_taxi_shopping,coef_pnr_ASC_taxi_eatout,coef_pnr_ASC_taxi_othmaint,coef_pnr_ASC_taxi_social,coef_pnr_ASC_taxi_othdiscr,coef_pnr_ASC_taxi_atwork +pnr_ASC_tnc_single,coef_pnr_ASC_tnc_single_work,coef_pnr_ASC_tnc_single_univ,coef_pnr_ASC_tnc_single_school,coef_pnr_ASC_tnc_single_escort,coef_pnr_ASC_tnc_single_shopping,coef_pnr_ASC_tnc_single_eatout,coef_pnr_ASC_tnc_single_othmaint,coef_pnr_ASC_tnc_single_social,coef_pnr_ASC_tnc_single_othdiscr,coef_pnr_ASC_tnc_single_atwork +pnr_ASC_tnc_shared,coef_pnr_ASC_tnc_shared_work,coef_pnr_ASC_tnc_shared_univ,coef_pnr_ASC_tnc_shared_school,coef_pnr_ASC_tnc_shared_escort,coef_pnr_ASC_tnc_shared_shopping,coef_pnr_ASC_tnc_shared_eatout,coef_pnr_ASC_tnc_shared_othmaint,coef_pnr_ASC_tnc_shared_social,coef_pnr_ASC_tnc_shared_othdiscr,coef_pnr_ASC_tnc_shared_atwork +knr_ASC_taxi,coef_knr_ASC_taxi_work,coef_knr_ASC_taxi_univ,coef_knr_ASC_taxi_school,coef_knr_ASC_taxi_escort,coef_knr_ASC_taxi_shopping,coef_knr_ASC_taxi_eatout,coef_knr_ASC_taxi_othmaint,coef_knr_ASC_taxi_social,coef_knr_ASC_taxi_othdiscr,coef_knr_ASC_taxi_atwork +knr_ASC_tnc_single,coef_knr_ASC_tnc_single_work,coef_knr_ASC_tnc_single_univ,coef_knr_ASC_tnc_single_school,coef_knr_ASC_tnc_single_escort,coef_knr_ASC_tnc_single_shopping,coef_knr_ASC_tnc_single_eatout,coef_knr_ASC_tnc_single_othmaint,coef_knr_ASC_tnc_single_social,coef_knr_ASC_tnc_single_othdiscr,coef_knr_ASC_tnc_single_atwork +knr_ASC_tnc_shared,coef_knr_ASC_tnc_shared_work,coef_knr_ASC_tnc_shared_univ,coef_knr_ASC_tnc_shared_school,coef_knr_ASC_tnc_shared_escort,coef_knr_ASC_tnc_shared_shopping,coef_knr_ASC_tnc_shared_eatout,coef_knr_ASC_tnc_shared_othmaint,coef_knr_ASC_tnc_shared_social,coef_knr_ASC_tnc_shared_othdiscr,coef_knr_ASC_tnc_shared_atwork +schoolbus_ASC_sr2,coef_schoolbus_ASC_sr2_work,coef_schoolbus_ASC_sr2_univ,coef_schoolbus_ASC_sr2_school,coef_schoolbus_ASC_sr2_escort,coef_schoolbus_ASC_sr2_shopping,coef_schoolbus_ASC_sr2_eatout,coef_schoolbus_ASC_sr2_othmaint,coef_schoolbus_ASC_sr2_social,coef_schoolbus_ASC_sr2_othdiscr,coef_schoolbus_ASC_sr2_atwork +schoolbus_ASC_sr3p,coef_schoolbus_ASC_sr3p_work,coef_schoolbus_ASC_sr3p_univ,coef_schoolbus_ASC_sr3p_school,coef_schoolbus_ASC_sr3p_escort,coef_schoolbus_ASC_sr3p_shopping,coef_schoolbus_ASC_sr3p_eatout,coef_schoolbus_ASC_sr3p_othmaint,coef_schoolbus_ASC_sr3p_social,coef_schoolbus_ASC_sr3p_othdiscr,coef_schoolbus_ASC_sr3p_atwork +schoolbus_ASC_walk,coef_schoolbus_ASC_walk_work,coef_schoolbus_ASC_walk_univ,coef_schoolbus_ASC_walk_school,coef_schoolbus_ASC_walk_escort,coef_schoolbus_ASC_walk_shopping,coef_schoolbus_ASC_walk_eatout,coef_schoolbus_ASC_walk_othmaint,coef_schoolbus_ASC_walk_social,coef_schoolbus_ASC_walk_othdiscr,coef_schoolbus_ASC_walk_atwork +#,,,,,,,,,, +ride_hail_ASC_sr2,coef_ride_hail_ASC_sr2_work,coef_ride_hail_ASC_sr2_univ,coef_ride_hail_ASC_sr2_school,coef_ride_hail_ASC_sr2_escort,coef_ride_hail_ASC_sr2_shopping,coef_ride_hail_ASC_sr2_eatout,coef_ride_hail_ASC_sr2_othmaint,coef_ride_hail_ASC_sr2_social,coef_ride_hail_ASC_sr2_othdiscr,coef_ride_hail_ASC_sr2_atwork +ride_hail_ASC_sr3p,coef_ride_hail_ASC_sr3p_work,coef_ride_hail_ASC_sr3p_univ,coef_ride_hail_ASC_sr3p_school,coef_ride_hail_ASC_sr3p_escort,coef_ride_hail_ASC_sr3p_shopping,coef_ride_hail_ASC_sr3p_eatout,coef_ride_hail_ASC_sr3p_othmaint,coef_ride_hail_ASC_sr3p_social,coef_ride_hail_ASC_sr3p_othdiscr,coef_ride_hail_ASC_sr3p_atwork +ride_hail_ASC_walk,coef_ride_hail_ASC_walk_work,coef_ride_hail_ASC_walk_univ,coef_ride_hail_ASC_walk_school,coef_ride_hail_ASC_walk_escort,coef_ride_hail_ASC_walk_shopping,coef_ride_hail_ASC_walk_eatout,coef_ride_hail_ASC_walk_othmaint,coef_ride_hail_ASC_walk_social,coef_ride_hail_ASC_walk_othdiscr,coef_ride_hail_ASC_walk_atwork +ride_hail_ASC_walk_transit,coef_ride_hail_ASC_walk_transit_work,coef_ride_hail_ASC_walk_transit_univ,coef_ride_hail_ASC_walk_transit_school,coef_ride_hail_ASC_walk_transit_escort,coef_ride_hail_ASC_walk_transit_shopping,coef_ride_hail_ASC_walk_transit_eatout,coef_ride_hail_ASC_walk_transit_othmaint,coef_ride_hail_ASC_walk_transit_social,coef_ride_hail_ASC_walk_transit_othdiscr,coef_ride_hail_ASC_walk_transit_atwork +ride_hail_ASC_taxi,coef_ride_hail_ASC_taxi_work,coef_ride_hail_ASC_taxi_univ,coef_ride_hail_ASC_taxi_school,coef_ride_hail_ASC_taxi_escort,coef_ride_hail_ASC_taxi_shopping,coef_ride_hail_ASC_taxi_eatout,coef_ride_hail_ASC_taxi_othmaint,coef_ride_hail_ASC_taxi_social,coef_ride_hail_ASC_taxi_othdiscr,coef_ride_hail_ASC_taxi_atwork +ride_hail_ASC_tnc_shared,coef_ride_hail_ASC_tnc_shared_work,coef_ride_hail_ASC_tnc_shared_univ,coef_ride_hail_ASC_tnc_shared_school,coef_ride_hail_ASC_tnc_shared_escort,coef_ride_hail_ASC_tnc_shared_shopping,coef_ride_hail_ASC_tnc_shared_eatout,coef_ride_hail_ASC_tnc_shared_othmaint,coef_ride_hail_ASC_tnc_shared_social,coef_ride_hail_ASC_tnc_shared_othdiscr,coef_ride_hail_ASC_tnc_shared_atwork +joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2,coef_joint_sr3p_ASC_sr2 +joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk,coef_joint_sr3p_ASC_walk +joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk,coef_joint_sr2_ASC_walk +joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2,coef_joint_walk_transit_ASC_sr2 +joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p,coef_joint_walk_transit_ASC_sr3p +joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk,coef_joint_walk_transit_ASC_walk +joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi,coef_joint_walk_transit_ASC_taxi +joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single,coef_joint_walk_transit_ASC_tnc_single +joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared,coef_joint_walk_transit_ASC_tnc_shared +joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi,coef_joint_pnr_ASC_taxi +joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single,coef_joint_pnr_ASC_tnc_single +joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared,coef_joint_pnr_ASC_tnc_shared +joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi,coef_joint_knr_ASC_taxi +joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single,coef_joint_knr_ASC_tnc_single +joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared,coef_joint_knr_ASC_tnc_shared +joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2,coef_joint_ride_hail_ASC_sr2 +joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p,coef_joint_ride_hail_ASC_sr3p +joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk,coef_joint_ride_hail_ASC_walk +joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi,coef_joint_ride_hail_ASC_taxi +joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared,coef_joint_ride_hail_ASC_tnc_shared +walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty,walk_express_penalty +adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared,adjust_tnc_shared +origin_density_applied,coef_origin_density_applied_work_univ_school,coef_origin_density_applied_work_univ_school,coef_origin_density_applied_work_univ_school,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork,coef_origin_density_applied_escort_shopping_eatout_othmaint_social_othdiscr_atwork diff --git a/activitysim/examples/example_semcog/configs/trip_mode_choice_coeffs.csv b/activitysim/examples/example_semcog/configs/trip_mode_choice_coeffs.csv deleted file mode 100755 index a451b62cb..000000000 --- a/activitysim/examples/example_semcog/configs/trip_mode_choice_coeffs.csv +++ /dev/null @@ -1,105 +0,0 @@ -coefficient_name,work,univ,school,escort,shopping,eatout,othmaint,social,othdiscr,atwork -c_ivt,-0.022,-0.0271,-0.0271,-0.0279,-0.0279,-0.0279,-0.0175,-0.0175,-0.0279,-0.0279 -c_ivt_pmov,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt,1.0 * c_ivt -c_ivt_stcar,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt -c_ivt_brt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt,0.90 * c_ivt -c_ivt_urb,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt,0.80 * c_ivt -c_ivt_com,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt,0.70 * c_ivt -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 -c_wegr,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_waux,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_dtim,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_xfers_wlk,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt,5.00 * c_ivt -c_xfers_drv,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt -c_xwait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait,c_short_i_wait -c_walktimeshort,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_walktimelong,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort,5.00 * c_walktimeshort -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,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort,5.00 * c_biketimeshort -#value_of_time is a person attribute so we cant compute c_cost as scalar here,,,,,,,,,, -#c_cost,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.60 * ivt) / valueOfTime,(0.6*ivt) / valueOfTime -c_dacc_ratio,0,0,0,0,0,0,0,0,0,0 -c_topology_walk,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt,15.00 * c_ivt -c_topology_bike,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,20.00 * c_ivt -c_topology_trn,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt,2.20 * c_ivt -c_density_index,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0,c_ivt / -5.0 -c_origin_density_index,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3,c_density_index * 3 -c_origin_density_index_max,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15,c_ivt * -15 -origin_density_applied,False,False,False,True,True,True,True,True,True,True -c_age1619_da,0,0,0,0,0,0,0,0,0,0 -c_age010_trn,0,0,0,0,0,0,0,0,0,0 -c_age16p_sr,0,0,0,0,0,0,0,0,0,0 -c_hhsize1_sr,-0.7346,-0.7346,-0.7346,-0.7346,-0.7346,-0.7346,-0.7346,-0.7346,-0.7346,-0.7346 -c_hhsize2_sr,0,0,0,0,0,0,0,0,0,0 -#free_parking_allowed,1,0,0,0,0,0,0,0,0,0 -#indiv tour ASCs,,,,,,,,,, -sov_ASC_sr2,-999,-999,-999,0,-999,-999,-999,-999,-999,-999 -sov_ASC_sr3p,-999,-999,-999,0,-999,-999,-999,-999,-999,-999 -sov_ASC_walk,-1.579278297,-0.329078195,-3,-0.407754765,-1.884354765,-1.129357279,-1.707054765,-1.592757279,-1.335757279,-3.034080783 -sov_ASC_rh,-7,-6.649,-5.6549,0,0,0,0,0,0,-7 -#sr2_ASC_sr2 - reference mode,0,0,0,0,0,0,0,0,0,0 -sr2_ASC_sov,-0.51299105,-1.058942553,-0.293588173,-0.536498222,-0.536498222,-0.849808648,-0.536498222,-0.849808648,-0.849808648,-0.601604001 -sr2_ASC_walk,-0.407385039,0.166984338,-0.173411375,-3.466936859,-1.525836859,-0.739819085,-2.013036859,-1.460119085,-0.693719085,-4.398412986 -sr2_ASC_rh,-7,-6.6897,-7,-7,-7,-7,-7,-7,-7,-7 -sr3p_ASC_sov,-0.229516694,-1.142035901,-1.860536359,-1.111545636,-1.111545636,-1.592880167,-1.111545636,-1.592880167,-1.592880167,-0.915383849 -sr3p_ASC_sr2,-0.333410245,-0.795945688,-1.095643656,-0.656228794,-0.466128794,-0.748226556,-0.683828794,-0.586026556,-1.044626556,-0.75108718 -#sr3p_ASC_sr3p - reference mode,0,0,0,0,0,0,0,0,0,0 -sr3p_ASC_walk,-0.72844504,0.021931966,-0.70641187,-2.362025557,-1.862425557,-0.146994878,-1.312325557,-0.416994878,-0.630794878,-3.892581674 -sr3p_ASC_rh,-71.9177,-7,-6.6714,-7,-7,-7,-7,-7,-7,-6.026 -walk_ASC_rh,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7 -bike_ASC_walk,-2.8333,-2.49405068,-3.238666604,-15.5203,-3.0245,-3.699,-2.5706,-14.2384,-2.3577,-5.0532 -bike_ASC_rh,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7 -#walktransit_ASC_walktransit - reference mode,0,0,0,0,0,0,0,0,0,0 -walktransit_ASC_sr2,-3.705971533,-4.132166342,-3.186743446,-3.139673944,-3.139673944,-3.696770924,-3.139673944,-3.696770924,-3.696770924,-4 -walktransit_ASC_sr3p,-3.578423306,-5.496253927,-3.595736858,-6.198039835,-6.198039835,-3.455537128,-6.198039835,-3.455537128,-3.455537128,-1.156825048 -walktransit_ASC_walk,2.289791885,0.742780398,-0.458321333,1.976505237,1.976505237,2.544557044,1.976505237,2.544557044,2.544557044,1.038327796 -walk_transit_ASC_rh,-3.7408,-4.2691,-7,-3.1136,-3.1136,-4.7508,-3.1136,-4.7508,-4.7508,-3.8506 -drive_transit_ASC_rh,0.6674,-0.6328,-0.1272,0.687,0.687,3.5701,0.687,3.5701,3.5701,-6.952 -ride_hail_ASC_sr2,-3.9085,-2.5785,-3.0613,-3.3353,-3.3353,-3.301,-3.3353,-3.301,-3.301,-4.2636 -ride_hail_ASC_sr3p,-10.8661,-3.1888,-4.0886,-7,-7,-4.0649,-7,-4.0649,-4.0649,-7 -ride_hail_ASC_walk,1.497,-10.8471,-1.2386,-7,-7,-1.3318,-7,-1.3318,-1.3318,-1.6755 -ride_hail_ASC_walk_transit,-10.8661,-7,-7,-7,-7,-7,-7,-7,-7,-7 -drive_transit_ASC_rh,-4.25,-4.25,-4.25,-4.25,-4.25,-4.25,-4.25,-4.25,-4.25,-4.25 -ride_hail_ASC_sr2,-6.108,-4.3372,-1.5869,-5.6483,-5.6483,-5.9692,-5.6483,-5.9692,-5.9692,-5.2763 -ride_hail_ASC_sr3p,-7,-4.922,-2.5362,-7,-7,-6.7199,-7,-6.7199,-6.7199,-7 -ride_hail_ASC_walk,0.2858,-7,0.245,-7,-7,-3.3603,-7,-3.3603,-3.3603,-2.6103 -ride_hail_ASC_walk_transit,0,0,0,0,0,0,0,0,0,0 -ride_hail_ASC_taxi,-2.385,-1.5994,-0.5869,-3.6629,-3.6629,-2.5543,-3.6629,-2.5543,-2.5543,-1.7764 -ride_hail_ASC_tnc_single,0.735,0.1081,0.3201,0.7879,0.7879,0.8274,0.7879,0.8274,0.8274,1.2143 -ride_hail_ASC_tnc_shared,0,0,0,0,0,0,0,0,0,0 -#pnr_ASC_pnr - reference mode,0,0,0,0,0,0,0,0,0,0 -#knr_ASC_knr - reference mode,0,0,0,0,0,0,0,0,0,0 -#joint tour ASCs,,,,,,,,,, -joint_auto_ASC_rh,0,0,0,0,-7,-7,-7,-7,-7,0 -joint_auto_ASC_rh,0,0,0,0,-7,-7,-7,-7,-7,0 -joint_walk_ASC_rh,0,0,0,0,-3.0362,-3.0362,-3.0362,-3.0362,-3.0362,0 -#joint_sr2_ASC_sr2 - reference mode,0,0,0,0,0,0,0,0,0,0 -joint_sr2_ASC_walk,0,0,0,-2.620466384,-2.620466384,-2.620466384,-2.620466384,-2.620466384,-2.620466384,0 -#joint_sr3p_ASC_sr3p - reference mode,0,0,0,0,0,0,0,0,0,0 -joint_sr3p_ASC_sr2,0,0,0,1.576317444,1.576317444,1.576317444,1.576317444,1.576317444,1.576317444,0 -joint_sr3p_ASC_walk,0,0,0,-1.238904557,-1.238904557,-1.238904557,-1.238904557,-1.238904557,-1.238904557,0 -joint_bike_ASC_walk,0,0,0,-3,-3,-3,-3,-3,-3,0 -joint_bike_ASC_rh,0,0,0,0,-12.3057,-12.3057,-12.3057,-12.3057,-12.3057,0 -#joint_walktransit_ASC_walktransit - reference mode,0,0,0,0,0,0,0,0,0,0 -joint_walktransit_ASC_sr2,0,0,0,-2.312902942,-2.312902942,-2.312902942,-2.312902942,-2.312902942,-2.312902942,0 -joint_walktransit_ASC_sr3p,0,0,0,-3.877768519,-3.877768519,-3.877768519,-3.877768519,-3.877768519,-3.877768519,0 -joint_walktransit_ASC_walk,0,0,0,1.576823424,1.576823424,1.576823424,1.576823424,1.576823424,1.576823424,0 -joint_walk_transit_ASC_rh,0,0,0,0,1.2266,1.2266,1.2266,1.2266,1.2266,0 -joint_drive_transit_ASC_rh,0,0,0,0,4.6138,4.6138,4.6138,4.6138,4.6138,0 -joint_ride_hail_ASC_taxi,0,0,0,0,-7,-7,-7,-7,-7,0 -joint_ride_hail_ASC_tnc_single,0,0,0,0,-4.7339,-4.7339,-4.7339,-4.7339,-4.7339,0 -joint_ride_hail_ASC_tnc_shared,0,0,0,0,0,0,0,0,0,0 -#joint_pnr_ASC_pnr - reference mode,0,0,0,0,0,0,0,0,0,0 -#joint_knr_ASC_knr - reference mode,0,0,0,0,0,0,0,0,0,0 -#,,,,,,,,,, -schoolbus_ASC_sr2,0,0,-3.289069276,0,0,0,0,0,0,0 -schoolbus_ASC_sr3p,0,0,-3.217740129,0,0,0,0,0,0,0 -schoolbus_ASC_walk,0,0,-2.277998613,0,0,0,0,0,0,0 -#c_walk_express_penalty,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,10.00 * c_ivt -local_ASC,0,0,0,0,0,0,0,0,0,0 -premium_ASC,0,0,0,0,0,0,0,0,0,0 -mix_ASC,0,0,0,0,0,0,0,0,0,0 -c_walk_express_penalty,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,10.00 * c_ivt -adjust_tnc_shared,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt,30 * c_ivt diff --git a/activitysim/examples/example_semcog/configs/trip_purpose_probs.csv b/activitysim/examples/example_semcog/configs/trip_purpose_probs.csv index 737f4fd50..b6c7d2003 100755 --- a/activitysim/examples/example_semcog/configs/trip_purpose_probs.csv +++ b/activitysim/examples/example_semcog/configs/trip_purpose_probs.csv @@ -8,7 +8,7 @@ work,TRUE,19,48,PTYPE_UNIVERSITY,0.049,0.086,0,0.392,0.159,0.157,0.069,0.073,0.0 work,TRUE,1,48,PTYPE_DRIVING,0,0,0,0,0.2,0.2,0.2,0.2,0.2 univ,TRUE,1,48,PTYPE_FULL,0.526,0.178,0,0.016,0.16,0.035,0.028,0.057,0 univ,TRUE,1,48,PTYPE_PART,0.059,0.941,0,0,0,0,0,0,0 -univ,TRUE,1,48,PTYPE_UNIVERSITY,0.109,0.034,0,0.382,0.136,0.147,0.094,0.048,0.05 +univ,TRUE,1,48,PTYPE_UNIVERSITY,0.166729,0.139607,0,0.118491,0.118491,0.118491,0.11273,0.11273,0.11273 school,TRUE,1,48,PTYPE_DRIVING,0,0,0,0.548,0.015,0.1,0.206,0.073,0.058 school,TRUE,1,48,PTYPE_SCHOOL,0,0,0,0.53,0.025,0.084,0.112,0.048,0.201 school,TRUE,1,48,PTYPE_PRESCHOOL,0,0,0,0.772,0.007,0.086,0.023,0.071,0.041 @@ -74,7 +74,7 @@ work,FALSE,31,48,PTYPE_UNIVERSITY,0.058,0.127,0,0.224,0.269,0.079,0.072,0.108,0. work,FALSE,1,48,PTYPE_DRIVING,0,0,0,0,0.2,0.2,0.2,0.2,0.2 univ,FALSE,1,48,PTYPE_FULL,0.352,0.032,0,0.032,0.146,0.114,0.177,0.028,0.119 univ,FALSE,1,48,PTYPE_PART,0,0,0,0.822,0.178,0,0,0,0 -univ,FALSE,1,48,PTYPE_UNIVERSITY,0.054,0.025,0,0.194,0.209,0.179,0.159,0.067,0.113 +univ,FALSE,1,48,PTYPE_UNIVERSITY,0.044243,0.388076,0,0.068781,0.068781,0.068781,0.120446,0.120446,0.120446 school,FALSE,1,48,PTYPE_DRIVING,0,0,0,0.301,0.117,0.098,0.169,0.186,0.129 school,FALSE,1,48,PTYPE_SCHOOL,0,0,0,0.166,0.158,0.147,0.122,0.133,0.274 school,FALSE,1,48,PTYPE_PRESCHOOL,0,0,0,0.38,0.148,0.089,0.146,0.102,0.135 diff --git a/activitysim/examples/example_semcog/configs/university_location_zone_override.yaml b/activitysim/examples/example_semcog/configs/university_location_zone_override.yaml new file mode 100644 index 000000000..7209a5ebb --- /dev/null +++ b/activitysim/examples/example_semcog/configs/university_location_zone_override.yaml @@ -0,0 +1,23 @@ +# These same settings also apply to trip_destination_univ_zone_override + +# if you want to save the original school zone, specify a column name for the persons table +# this column name is used to select major university students in downstream models (stop_freq) +ORIGINAL_ZONE_COL_NAME: original_school_zone_id + +# Random state integer to use when sampling +RANDOM_STATE: 42 + +LANDUSE_UNIV_ENROL_COL_NAME: Univ_Enrollment +# Colunn in the landuse file containing the university codes +LANDUSE_UNIV_CODE_COL_NAME: University_Name +# Specify which university codes should be resampled +UNIV_CODES_TO_OVERRIDE: + - University of Michigan + +# trip_destination_univ_zone_override specific option +# trip purpose to re-sample +TRIP_UNIVERSITY_PURPOSE: univ +# dictionary to map tour modes for tours that had a zone re-sampled +# e.g. walk tours -> walk-transit tours to allow for use of transit +# if left blank, no override occurs +TOUR_MODE_OVERRIDE_DICT: {'WALK': 'WALK_LOC'} diff --git a/activitysim/examples/example_semcog/configs/workplace_location.yaml b/activitysim/examples/example_semcog/configs/workplace_location.yaml index 54cbe3129..3fc8ec4bc 100755 --- a/activitysim/examples/example_semcog/configs/workplace_location.yaml +++ b/activitysim/examples/example_semcog/configs/workplace_location.yaml @@ -52,7 +52,7 @@ MODEL_SELECTOR: workplace CHOOSER_SEGMENT_COLUMN_NAME: income_segment # boolean column to filter choosers (True means keep) -CHOOSER_FILTER_COLUMN_NAME: is_out_of_home_worker +CHOOSER_FILTER_COLUMN_NAME: is_worker # FIXME - these are assigned to persons in annotate_persons. we need a better way to manage this # FIXME - these are not needed for this model and should be re/factored out diff --git a/activitysim/examples/example_semcog/configs/write_trip_matrices.yaml b/activitysim/examples/example_semcog/configs/write_trip_matrices.yaml index 3acdef910..0587bc2dd 100755 --- a/activitysim/examples/example_semcog/configs/write_trip_matrices.yaml +++ b/activitysim/examples/example_semcog/configs/write_trip_matrices.yaml @@ -11,7 +11,7 @@ preprocessor: HH_EXPANSION_WEIGHT_COL: sample_rate # added when households read in # save preprocessed trips table to pipeline if desired -SAVE_TRIPS_TABLE: False +SAVE_TRIPS_TABLE: True MATRICES: - file_name: trips_ea.omx @@ -58,6 +58,12 @@ MATRICES: data_field: KNRE_MIX_EA - name: SCHOOLBUS data_field: SCHOOLBUS_EA + - name: TAXI + data_field: TAXI_EA + - name: TNC_SINGLE + data_field: TNC_SINGLE_EA + - name: TNC_SHARED + data_field: TNC_SHARED_EA - file_name: trips_am.omx tables: - name: DRIVEALONE @@ -102,6 +108,12 @@ MATRICES: data_field: KNRE_MIX_AM - name: SCHOOLBUS data_field: SCHOOLBUS_AM + - name: TAXI + data_field: TAXI_AM + - name: TNC_SINGLE + data_field: TNC_SINGLE_AM + - name: TNC_SHARED + data_field: TNC_SHARED_AM - file_name: trips_md.omx tables: - name: DRIVEALONE @@ -146,6 +158,12 @@ MATRICES: data_field: KNRE_MIX_MD - name: SCHOOLBUS data_field: SCHOOLBUS_MD + - name: TAXI + data_field: TAXI_MD + - name: TNC_SINGLE + data_field: TNC_SINGLE_MD + - name: TNC_SHARED + data_field: TNC_SHARED_MD - file_name: trips_pm.omx tables: - name: DRIVEALONE @@ -190,6 +208,12 @@ MATRICES: data_field: KNRE_MIX_PM - name: SCHOOLBUS data_field: SCHOOLBUS_PM + - name: TAXI + data_field: TAXI_PM + - name: TNC_SINGLE + data_field: TNC_SINGLE_PM + - name: TNC_SHARED + data_field: TNC_SHARED_PM - file_name: trips_ev.omx tables: - name: DRIVEALONE @@ -234,6 +258,12 @@ MATRICES: data_field: KNRE_MIX_EV - name: SCHOOLBUS data_field: SCHOOLBUS_EV + - name: TAXI + data_field: TAXI_EV + - name: TNC_SINGLE + data_field: TNC_SINGLE_EV + - name: TNC_SHARED + data_field: TNC_SHARED_EV CONSTANTS: time_periods: diff --git a/activitysim/examples/example_semcog/configs/write_trip_matrices_annotate_trips_preprocessor.csv b/activitysim/examples/example_semcog/configs/write_trip_matrices_annotate_trips_preprocessor.csv index 163aaf21a..558f271bc 100755 --- a/activitysim/examples/example_semcog/configs/write_trip_matrices_annotate_trips_preprocessor.csv +++ b/activitysim/examples/example_semcog/configs/write_trip_matrices_annotate_trips_preprocessor.csv @@ -10,8 +10,8 @@ Description,Target,Expression ,is_ev,"trips.depart.between(time_periods['EV']['first_hour'], time_periods['EV']['last_hour'])" # ea trips,, ,DRIVEALONE_EA,((trips.trip_mode == 'DRIVEALONE') & is_ea) * tour_participants -,SHARED2_EA,((trips.trip_mode == 'SHARED2') & is_ea) * tour_participants / OCC_SHARED2 -,SHARED3_EA,((trips.trip_mode == 'SHARED3') & is_ea) * tour_participants / OCC_SHARED3 +,SHARED2_EA,"((trips.trip_mode.isin(['SHARED2', 'TAXI', 'TNC_SINGLE'])) & is_ea) * tour_participants / OCC_SHARED2" +,SHARED3_EA,"((trips.trip_mode.isin(['SHARED3', 'TNC_SHARED'])) & is_ea) * tour_participants / OCC_SHARED3" ,WALK_EA,((trips.trip_mode == 'WALK') & is_ea) * tour_participants ,BIKE_EA,((trips.trip_mode == 'BIKE') & is_ea) * tour_participants ,WALK_LOC_EA,((trips.trip_mode == 'WALK_LOC') & is_ea) * tour_participants @@ -30,10 +30,13 @@ Description,Target,Expression ,KNRE_PRM_EA,((trips.trip_mode == 'KNR_PRM') & is_ea & ~trips.outbound) * tour_participants ,KNRE_MIX_EA,((trips.trip_mode == 'KNR_MIX') & is_ea & ~trips.outbound) * tour_participants ,SCHOOLBUS_EA,((trips.trip_mode == 'SCHOOLBUS') & is_ea) * tour_participants +,TAXI_EA,((trips.trip_mode == 'TAXI') & is_ea) * tour_participants +,TNC_SINGLE_EA,((trips.trip_mode == 'TNC_SINGLE') & is_ea) * tour_participants +,TNC_SHARED_EA,((trips.trip_mode == 'TNC_SHARED') & is_ea) * tour_participants # am trips,, ,DRIVEALONE_AM,((trips.trip_mode == 'DRIVEALONE') & is_am) * tour_participants -,SHARED2_AM,((trips.trip_mode == 'SHARED2') & is_am) * tour_participants / OCC_SHARED2 -,SHARED3_AM,((trips.trip_mode == 'SHARED3') & is_am) * tour_participants / OCC_SHARED3 +,SHARED2_AM,"((trips.trip_mode.isin(['SHARED2', 'TAXI', 'TNC_SINGLE'])) & is_am) * tour_participants / OCC_SHARED2" +,SHARED3_AM,"((trips.trip_mode.isin(['SHARED3', 'TNC_SHARED'])) & is_am) * tour_participants / OCC_SHARED3" ,WALK_AM,((trips.trip_mode == 'WALK') & is_am) * tour_participants ,BIKE_AM,((trips.trip_mode == 'BIKE') & is_am) * tour_participants ,WALK_LOC_AM,((trips.trip_mode == 'WALK_LOC') & is_am) * tour_participants @@ -52,10 +55,13 @@ Description,Target,Expression ,KNRE_PRM_AM,((trips.trip_mode == 'KNR_PRM') & is_am & ~trips.outbound) * tour_participants ,KNRE_MIX_AM,((trips.trip_mode == 'KNR_MIX') & is_am & ~trips.outbound) * tour_participants ,SCHOOLBUS_AM,((trips.trip_mode == 'SCHOOLBUS') & is_am) * tour_participants +,TAXI_AM,((trips.trip_mode == 'TAXI') & is_am) * tour_participants +,TNC_SINGLE_AM,((trips.trip_mode == 'TNC_SINGLE') & is_am) * tour_participants +,TNC_SHARED_AM,((trips.trip_mode == 'TNC_SHARED') & is_am) * tour_participants # md trips,, ,DRIVEALONE_MD,((trips.trip_mode == 'DRIVEALONE') & is_md) * tour_participants -,SHARED2_MD,((trips.trip_mode == 'SHARED2') & is_md) * tour_participants / OCC_SHARED2 -,SHARED3_MD,((trips.trip_mode == 'SHARED3') & is_md) * tour_participants / OCC_SHARED3 +,SHARED2_MD,"((trips.trip_mode.isin(['SHARED2', 'TAXI', 'TNC_SINGLE'])) & is_md) * tour_participants / OCC_SHARED2" +,SHARED3_MD,"((trips.trip_mode.isin(['SHARED3', 'TNC_SHARED'])) & is_md) * tour_participants / OCC_SHARED3" ,WALK_MD,((trips.trip_mode == 'WALK') & is_md) * tour_participants ,BIKE_MD,((trips.trip_mode == 'BIKE') & is_md) * tour_participants ,WALK_LOC_MD,((trips.trip_mode == 'WALK_LOC') & is_md) * tour_participants @@ -74,10 +80,13 @@ Description,Target,Expression ,KNRE_PRM_MD,((trips.trip_mode == 'KNR_PRM') & is_md & ~trips.outbound) * tour_participants ,KNRE_MIX_MD,((trips.trip_mode == 'KNR_MIX') & is_md & ~trips.outbound) * tour_participants ,SCHOOLBUS_MD,((trips.trip_mode == 'SCHOOLBUS') & is_md) * tour_participants +,TAXI_MD,((trips.trip_mode == 'TAXI') & is_md) * tour_participants +,TNC_SINGLE_MD,((trips.trip_mode == 'TNC_SINGLE') & is_md) * tour_participants +,TNC_SHARED_MD,((trips.trip_mode == 'TNC_SHARED') & is_md) * tour_participants # pm trips,, ,DRIVEALONE_PM,((trips.trip_mode == 'DRIVEALONE') & is_pm) * tour_participants -,SHARED2_PM,((trips.trip_mode == 'SHARED2') & is_pm) * tour_participants / OCC_SHARED2 -,SHARED3_PM,((trips.trip_mode == 'SHARED3') & is_pm) * tour_participants / OCC_SHARED3 +,SHARED2_PM,"((trips.trip_mode.isin(['SHARED2', 'TAXI', 'TNC_SINGLE'])) & is_pm) * tour_participants / OCC_SHARED2" +,SHARED3_PM,"((trips.trip_mode.isin(['SHARED3', 'TNC_SHARED'])) & is_pm) * tour_participants / OCC_SHARED3" ,WALK_PM,((trips.trip_mode == 'WALK') & is_pm) * tour_participants ,BIKE_PM,((trips.trip_mode == 'BIKE') & is_pm) * tour_participants ,WALK_LOC_PM,((trips.trip_mode == 'WALK_LOC') & is_pm) * tour_participants @@ -96,10 +105,13 @@ Description,Target,Expression ,KNRE_PRM_PM,((trips.trip_mode == 'KNR_PRM') & is_pm & ~trips.outbound) * tour_participants ,KNRE_MIX_PM,((trips.trip_mode == 'KNR_MIX') & is_pm & ~trips.outbound) * tour_participants ,SCHOOLBUS_PM,((trips.trip_mode == 'SCHOOLBUS') & is_pm) * tour_participants +,TAXI_PM,((trips.trip_mode == 'TAXI') & is_pm) * tour_participants +,TNC_SINGLE_PM,((trips.trip_mode == 'TNC_SINGLE') & is_pm) * tour_participants +,TNC_SHARED_PM,((trips.trip_mode == 'TNC_SHARED') & is_pm) * tour_participants # ev trips,, ,DRIVEALONE_EV,((trips.trip_mode == 'DRIVEALONE') & is_ev) * tour_participants -,SHARED2_EV,((trips.trip_mode == 'SHARED2') & is_ev) * tour_participants / OCC_SHARED2 -,SHARED3_EV,((trips.trip_mode == 'SHARED3') & is_ev) * tour_participants / OCC_SHARED3 +,SHARED2_EV,"((trips.trip_mode.isin(['SHARED2', 'TAXI', 'TNC_SINGLE'])) & is_ev) * tour_participants / OCC_SHARED2" +,SHARED3_EV,"((trips.trip_mode.isin(['SHARED3', 'TNC_SHARED'])) & is_ev) * tour_participants / OCC_SHARED3" ,WALK_EV,((trips.trip_mode == 'WALK') & is_ev) * tour_participants ,BIKE_EV,((trips.trip_mode == 'BIKE') & is_ev) * tour_participants ,WALK_LOC_EV,((trips.trip_mode == 'WALK_LOC') & is_ev) * tour_participants @@ -118,3 +130,6 @@ Description,Target,Expression ,KNRE_PRM_EV,((trips.trip_mode == 'KNR_PRM') & is_ev & ~trips.outbound) * tour_participants ,KNRE_MIX_EV,((trips.trip_mode == 'KNR_MIX') & is_ev & ~trips.outbound) * tour_participants ,SCHOOLBUS_EV,((trips.trip_mode == 'SCHOOLBUS') & is_ev) * tour_participants +,TAXI_EV,((trips.trip_mode == 'TAXI') & is_ev) * tour_participants +,TNC_SINGLE_EV,((trips.trip_mode == 'TNC_SINGLE') & is_ev) * tour_participants +,TNC_SHARED_EV,((trips.trip_mode == 'TNC_SHARED') & is_ev) * tour_participants diff --git a/activitysim/examples/example_semcog/configs_mp/settings.yaml b/activitysim/examples/example_semcog/configs_mp/settings.yaml index 07e443c48..5bdad8009 100755 --- a/activitysim/examples/example_semcog/configs_mp/settings.yaml +++ b/activitysim/examples/example_semcog/configs_mp/settings.yaml @@ -1,28 +1,23 @@ +# Configs File with Sample Rate set by Model Runner inherit_settings: True - # raise error if any sub-process fails without waiting for others to complete fail_fast: True - # - ------------------------- dev config multiprocess: True strict: False -use_shadow_pricing: True - - +mem_tick: 30 +use_shadow_pricing: False ## - example sample -households_sample_size: 0 +households_sample_size: 1000 chunk_size: 0 -num_processes: 24 - +num_processes: 12 # - tracing -trace_hh_id: +trace_hh_id: 1069965 trace_od: #trace_hh_id: 1482966 #trace_od: [5, 11] - # to resume after last successful checkpoint, specify resume_after: _ -resume_after: - +resume_after: models: ### mp_initialize step - initialize_landuse @@ -32,7 +27,10 @@ models: - add_size_tables ### mp_households step - school_location + - university_location_zone_override - workplace_location + - transit_pass_subsidy + - transit_pass_ownership - auto_ownership_simulate - free_parking - telecommute_frequency @@ -56,13 +54,15 @@ models: - trip_purpose - trip_destination - trip_purpose_and_destination + - trip_destination_univ_zone_override + - parking_location_choice_at_university - trip_scheduling + - stop_frequency_university_parking - trip_mode_choice ### mp_summarize step - write_data_dictionary - write_tables - write_trip_matrices - multiprocess_steps: - name: mp_initialize begin: initialize_landuse @@ -74,8 +74,6 @@ multiprocess_steps: - persons - name: mp_summarize begin: write_data_dictionary - - output_tables: action: include prefix: final_ @@ -90,7 +88,6 @@ output_tables: - school_shadow_prices - workplace_shadow_prices - joint_tour_participants - # read cached skims (using numpy memmap) from output directory (memmap is faster than omx ) #read_skim_cache: True # write memmapped cached skims to output directory after reading from omx, for use in subsequent runs diff --git a/activitysim/examples/example_semcog/extensions/__init__.py b/activitysim/examples/example_semcog/extensions/__init__.py index 9c468e1eb..18ae5a14b 100644 --- a/activitysim/examples/example_semcog/extensions/__init__.py +++ b/activitysim/examples/example_semcog/extensions/__init__.py @@ -2,3 +2,6 @@ from . import telecommute_frequency from . import transit_pass_subsidy from . import transit_pass_ownership +from . import parking_location_choice_at_university +from . import stop_frequency_university_parking +from . import university_location_zone_override diff --git a/activitysim/examples/example_semcog/extensions/parking_location_choice_at_university.py b/activitysim/examples/example_semcog/extensions/parking_location_choice_at_university.py new file mode 100644 index 000000000..8e8d300cc --- /dev/null +++ b/activitysim/examples/example_semcog/extensions/parking_location_choice_at_university.py @@ -0,0 +1,166 @@ +# ActivitySim +# See full license in LICENSE.txt. +import logging + +import pandas as pd +import numpy as np + +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 import expressions + +# from .util import estimation + +logger = logging.getLogger(__name__) + + +def closest_parking_zone_xwalk(univ_zones, parking_zones, network_los): + """ + Create lookup table matching university zone to nearest parking location. + If university zone has parking, that zone is selected. + + Parameters + ---------- + univ_zones : pandas.Series + zones to find the nearest parking location for + parking_zones : pandas.Series + zones with parking spaces + network_los : Network_LOS object + skim information + + Returns + ------- + closest_parking_df : pandas.DataFrame + index of university zone input parameter and a column closest_parking_zone + """ + skim_dict = network_los.get_default_skim_dict() + + closest_zones = [] + for univ_zone in univ_zones.to_numpy(): + if univ_zone in parking_zones.to_numpy(): + # if zone has parking data, choose that zone + closest_zones.append(univ_zone) + else: + # find nearest zone from distance skim + parking_zone_idx = np.argmin( + skim_dict.lookup(univ_zone, parking_zones.to_numpy(), 'DIST')) + parking_zone = parking_zones.to_numpy()[parking_zone_idx] + closest_zones.append(parking_zone) + + closest_parking_df = pd.DataFrame( + {'univ_zone': univ_zones, 'closest_parking_zone': closest_zones}) + closest_parking_df.set_index('univ_zone', inplace=True) + + return closest_parking_df + + +@inject.step() +def parking_location_choice_at_university( + trips, tours, land_use, network_los, + chunk_size, trace_hh_id): + """ + This model selects a parking location for groups of trips that are on university campuses where + the tour mode is auto. Parking locations are sampled weighted by the number of parking spots. + + The main interface to this model is the parking_location_choice_at_university() function. + This function is registered as an orca step in the example Pipeline. + """ + + trace_label = 'parking_location_choice_at_university' + model_settings_file_name = 'parking_location_choice_at_university.yaml' + model_settings = config.read_model_settings(model_settings_file_name) + + univ_codes_col = model_settings['LANDUSE_UNIV_CODE_COL_NAME'] + univ_codes = model_settings['UNIV_CODES_THAT_REQUIRE_PARKING'] + random_state = model_settings['RANDOM_STATE'] + + parking_spaces_col = model_settings['LANDUSE_PARKING_SPACES_COL_NAME'] + parking_univ_code_col = model_settings['LANDUSE_PARKING_UNIV_CODE_COL_NAME'] + + parking_tour_modes = model_settings['TOUR_MODES_THAT_REQUIRE_PARKING'] + nearest_lot_tour_purposes = model_settings['TOUR_PURPOSES_TO_NEAREST_LOT'] + + trips = trips.to_frame() + tours = tours.to_frame() + land_use_df = land_use.to_frame() + + # initialize univ parking columns + trips['parked_at_university'] = False + tours['univ_parking_zone_id'] = pd.NA + + all_univ_zones = land_use_df[land_use_df[univ_codes_col].isin(univ_codes)].index + all_parking_zones = land_use_df[land_use_df[parking_spaces_col] > 0].index + + # grabbing all trips and tours that have a destination on a campus and selected tour mode + trip_choosers = trips[trips['destination'].isin(all_univ_zones)] + print(trip_choosers.destination.value_counts()) + tour_choosers = tours[ + tours.index.isin(trip_choosers['tour_id']) + & tours.tour_mode.isin(parking_tour_modes)] + print(tour_choosers) + + # removing trips that did not have the right tour mode. (Faster than merging tour mode first?) + trip_choosers = trip_choosers[trip_choosers.tour_id.isin(tour_choosers.index)] + trip_choosers.loc[trip_choosers['purpose'] != 'Home', 'parked_at_university'] = True + + logger.info("Running %s for %d tours", trace_label, len(tour_choosers)) + + closest_parking_df = closest_parking_zone_xwalk(all_univ_zones, all_parking_zones, network_los) + + # Set parking locations for each university independently + for univ_code in univ_codes: + # selecting land use data + univ_zones = land_use_df[land_use_df[univ_codes_col] == univ_code].reset_index() + parking_univ_zones = land_use_df[land_use_df[parking_univ_code_col] == univ_code].reset_index() + + if len(univ_zones) == 0: + logger.info("No zones found for university code: %s", univ_code) + continue + + if (len(parking_univ_zones) == 0) or (parking_univ_zones[parking_spaces_col].sum() == 0): + logger.info("No parking found for university code: %s", univ_code) + continue + + # selecting tours that have trips attending this university's zone(s) + univ_trip_choosers = trip_choosers[trip_choosers['destination'].isin(univ_zones.zone_id)] + parking_tours = (tour_choosers.index.isin(univ_trip_choosers.tour_id)) + num_parking_tours = parking_tours.sum() + + # parking location is sampled based on the number of parking spaces + tour_choosers.loc[parking_tours, 'univ_parking_zone_id'] = parking_univ_zones.zone_id.sample( + n=num_parking_tours, + weights=parking_univ_zones[parking_spaces_col], + replace=True, + random_state=random_state).to_numpy() + + # for tours that have purpose specified in model setting, set parking location to + # nearest parking lot + if nearest_lot_tour_purposes is not None: + tours_nearest_lot = (tour_choosers.primary_purpose.isin(nearest_lot_tour_purposes) + & tour_choosers.destination.isin(all_univ_zones)) + tour_choosers.loc[tours_nearest_lot, 'univ_parking_zone_id'] = tour_choosers.loc[ + tours_nearest_lot, 'destination'].map(closest_parking_df['closest_parking_zone']) + + logger.info("Selected parking locations for %s tours for university with code: %s", + num_parking_tours, univ_code) + + # Overriding school_zone_id in persons table + trips.loc[trips.index.isin(trip_choosers.index), + 'parked_at_university'] = trip_choosers['parked_at_university'] + tours.loc[tours.index.isin(tour_choosers.index), + 'univ_parking_zone_id'] = tour_choosers['univ_parking_zone_id'] + + pipeline.replace_table("trips", trips) + pipeline.replace_table("tours", tours) + + tracing.print_summary('parking_location_choice_at_university zones', + tours['univ_parking_zone_id'], + value_counts=True) + + if trace_hh_id: + tracing.trace_df(tours, + label=trace_label, + warn_if_empty=True) diff --git a/activitysim/examples/example_semcog/extensions/stop_frequency_university_parking.py b/activitysim/examples/example_semcog/extensions/stop_frequency_university_parking.py new file mode 100644 index 000000000..d773d077f --- /dev/null +++ b/activitysim/examples/example_semcog/extensions/stop_frequency_university_parking.py @@ -0,0 +1,174 @@ +# ActivitySim +# See full license in LICENSE.txt. +import logging + +import pandas as pd +import numpy as np + +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 import expressions + +# from .util import estimation + +logger = logging.getLogger(__name__) + + +@inject.step() +def stop_frequency_university_parking( + trips, tours, + chunk_size, trace_hh_id): + """ + This model inserts parking trips on drive tours that include university parking as determined in the + parking_location_choice_at_university model. Parking trips are added to the trip table before + and after groups of trips that are on campus zones. + + The main interface to this model is the stop_frequency_university_parking() function. + This function is registered as an orca step in the example Pipeline. + """ + + trace_label = 'stop_frequency_university_parking' + model_settings_file_name = 'stop_frequency_university_parking.yaml' + + model_settings = config.read_model_settings(model_settings_file_name) + parking_name = model_settings['PARKING_TRIP_NAME'] + + trips = trips.to_frame() + tours = tours.to_frame() + + tours_with_parking = tours[tours['univ_parking_zone_id'].notna()] + + trip_choosers = trips[trips.tour_id.isin(tours_with_parking.index)] + trips_without_parking = trips[~trips.tour_id.isin(tours_with_parking.index)] + + trip_choosers = pd.merge(trip_choosers.reset_index(), + tours_with_parking['univ_parking_zone_id'].reset_index(), + how='left', + on='tour_id') + trip_choosers.set_index('trip_id', inplace=True, verify_integrity=True) + + # will duplicate first and last campus trips to "insert" parking trips. + # this duplication also sets the depart times where the parking trip to + # campus has the same depart as the original trip and the parking trip + # from campus has a depart time matching the following trip + trip_choosers['duplicates_needed'] = 1 + trip_choosers['park_before'] = False + trip_choosers['park_after'] = False + atwork_campus_subtours = trip_choosers['purpose'] == 'atwork' + + # looking at each tour individually + trips_grouped = trip_choosers.groupby(['tour_id'])['parked_at_university'] + # to campus + trip_choosers.loc[ + (trip_choosers['parked_at_university']) + & ~(trips_grouped.transform('shift', 1).fillna(False)), + 'park_before'] = True + # from campus + trip_choosers.loc[ + ~(trip_choosers['parked_at_university']) + & (trips_grouped.transform('shift', 1).fillna(False)), + 'park_after'] = True + + trip_choosers.loc[ + trip_choosers['park_before'] | trip_choosers['park_after'], 'duplicates_needed'] = 2 + + # atwork subtours that came from a parent tour that is already parked on campus + # do not need parking trips. This assumes atwork subtours can not go back to + # get car from parked location. + parked_atwork_subtour_ids = trip_choosers.loc[ + (trip_choosers['purpose'] == 'Work') + & (trip_choosers['primary_purpose'] == 'atwork') + & (trip_choosers['parked_at_university']), 'tour_id'] + parked_atwork_trips = trip_choosers['tour_id'].isin(parked_atwork_subtour_ids) + + trip_choosers.loc[parked_atwork_trips, 'park_before'] = False + trip_choosers.loc[parked_atwork_trips, 'park_after'] = False + trip_choosers.loc[parked_atwork_trips, 'duplicates_needed'] = 1 + + logger.info("creating %d parking trips", + (trip_choosers['park_before'] | trip_choosers['park_after']).sum()) + + # duplicating trips in table + trip_choosers = trip_choosers.reset_index() + trip_choosers = trip_choosers.take( + np.repeat(trip_choosers.index.values, trip_choosers.duplicates_needed.values)) + trip_choosers = trip_choosers.reset_index(drop=True) + + # re-counting trips on tour + grouped = trip_choosers.groupby(['tour_id', 'outbound']) + trip_choosers['trip_num'] = grouped.cumcount() + 1 + trip_choosers['trip_count'] = grouped.transform('count') + + # first duplicatd trip is parking trip if going to campus + park_to_campus = ((trip_choosers['park_before']) + & (trip_choosers['park_before'].shift(-1))) + + # second duplicatd trip is parking trip if going away from campus + park_from_campus = ((trip_choosers['park_after']) + & ~(trip_choosers['park_after'].shift(1))) + + park_trips = (park_to_campus | park_from_campus) + + trip_choosers.loc[park_trips, 'purpose'] = parking_name + trip_choosers.loc[park_trips, 'destination_logsum'] = pd.NA + trip_choosers.loc[park_trips, 'destination'] = \ + trip_choosers.loc[park_trips, 'univ_parking_zone_id'] + trip_choosers.loc[park_trips, 'original_school_taz'] = pd.NA + + # need to change subsequent origin for trips that are going to parking lot + trip_choosers['last_destination'] = trip_choosers.groupby('tour_id')['destination'].transform('shift') + trip_choosers['origin'] = np.where( + trip_choosers['last_destination'].notna() + & (trip_choosers['last_destination'] != trip_choosers['origin']), + trip_choosers['last_destination'], + trip_choosers['origin'] + ) + trip_choosers.drop(columns='last_destination', inplace=True) + + trip_choosers['parked_at_university'] = trip_choosers\ + .groupby('tour_id')['parked_at_university'].transform('shift').fillna(False) + + # all atwork subtour trips are parked if parent tour is parked at work + trip_choosers.loc[trip_choosers['tour_id'].isin(parked_atwork_subtour_ids), + 'parked_at_university'] = True + + trips = pd.concat( + [trip_choosers[trips.reset_index().columns], trips_without_parking.reset_index()], + ignore_index=True) + + trips['origin'] = trips['origin'].astype(int) + trips['destination'] = trips['destination'].astype(int) + trips['tour_includes_parking'] = np.where(trips['tour_id'].isin(tours_with_parking.index), 1, 0) + + # resetting trip_id's + trips['trip_id_pre_parking'] = trips['trip_id'] + + # taken from stop_frequency.py + # With 4 trips per leg originally, can have an additional 4 parking trips per leg + # e.g. if trips 1 and 3 are on university, need parking to and from 1 and parking + # to and from 3 + MAX_TRIPS_PER_LEG = 8 + # canonical_trip_num: 1st trip out = 1, 2nd trip out = 2, 1st in = 5, etc. + canonical_trip_num = (~trips.outbound * MAX_TRIPS_PER_LEG) + trips.trip_num + trips['trip_id'] = trips.tour_id * (2 * MAX_TRIPS_PER_LEG) + canonical_trip_num + trips.sort_values(by='trip_id', inplace=True) + + trips.set_index('trip_id', inplace=True, verify_integrity=True) + + pipeline.replace_table("trips", trips) + # since new trips were added inbetween other trips on the tour, the trip_id's changed + # resetting random number generator for trips... does this have unintended consequences? + pipeline.get_rn_generator().drop_channel('trips') + pipeline.get_rn_generator().add_channel('trips', trips) + + tracing.print_summary('stop_frequency_university_parking trip purposes', + trips['purpose'], + value_counts=True) + + if trace_hh_id: + tracing.trace_df(trips, + label=trace_label, + warn_if_empty=True) diff --git a/activitysim/examples/example_semcog/extensions/university_location_zone_override.py b/activitysim/examples/example_semcog/extensions/university_location_zone_override.py new file mode 100644 index 000000000..f932543c4 --- /dev/null +++ b/activitysim/examples/example_semcog/extensions/university_location_zone_override.py @@ -0,0 +1,211 @@ +# ActivitySim +# See full license in LICENSE.txt. +import logging + +import pandas as pd +import numpy as np + +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 import expressions + +# from .util import estimation + +logger = logging.getLogger(__name__) + + +def resample_school_zones(choosers, land_use, model_settings, col_to_override='school_zone_id'): + """ + Re-samples the university school zone based only on enrollment. Can apply to the original school + zone id or subsequent university trips. + + Parameters + ---------- + choosers : pd.DataFrame + subset of persons or trips that will have their school zone re-sampled + land_use: pd.DataFrame + land_use data containing columns specifying university coding and enrollment + model_settings: dict + parameters in university_location_zone_override.yaml + col_to_override: + choosers column to set new sampled zone_id to: school_zone_id or (trip) destination + + Returns + ---------- + choosers: pd.DataFrame + with new university zone id set and original zone id stored if specified in config + """ + original_zone_col_name = model_settings['ORIGINAL_ZONE_COL_NAME'] + univ_enrollment_col_name = model_settings['LANDUSE_UNIV_ENROL_COL_NAME'] + landuse_univ_code_col_name = model_settings['LANDUSE_UNIV_CODE_COL_NAME'] + allowed_univ_codes = model_settings['UNIV_CODES_TO_OVERRIDE'] + random_state = model_settings['RANDOM_STATE'] + + if original_zone_col_name is not None: + choosers[original_zone_col_name] = pd.NA + + # Override school_zone_id for each requested university separately + for univ_code in allowed_univ_codes: + # selecting land use data + univ_land_use = land_use[land_use[landuse_univ_code_col_name] == univ_code].reset_index() + + if len(univ_land_use) == 0: + logger.info("No zones found for university code: %s", univ_code) + continue + + # selecting only university students with school_zone_id matching university code + choosers_to_override = (choosers[col_to_override].isin(univ_land_use.zone_id)) + + num_choosers_to_override = choosers_to_override.sum() + logger.info("Re-sampling %s zones for university with code: %s", + num_choosers_to_override, univ_code) + + if original_zone_col_name is not None: + choosers.loc[choosers_to_override, + original_zone_col_name] = choosers.loc[choosers_to_override, col_to_override] + + # override school id based on university enrollment alone + choosers.loc[choosers_to_override, col_to_override] = univ_land_use.zone_id.sample( + n=num_choosers_to_override, + weights=univ_land_use[univ_enrollment_col_name], + replace=True, + random_state=random_state).to_numpy() + + return choosers + + +@inject.step() +def university_location_zone_override( + persons_merged, persons, land_use, + chunk_size, trace_hh_id): + """ + This model overrides the school taz for students attending large universities. New school tazs + are chosen based on the university enrollment in landuse without accessibility terms. This is + done to replicate the fact that university students can have classes all over campus. + + The main interface to this model is the university_location_zone_override() function. + This function is registered as an orca step in the example Pipeline. + """ + + trace_label = 'university_location_zone_override' + model_settings_file_name = 'university_location_zone_override.yaml' + + choosers = persons.to_frame() + land_use_df = land_use.to_frame() + + univ_school_seg = config.read_model_settings('constants.yaml')['SCHOOL_SEGMENT_UNIV'] + choosers = choosers[ + (choosers.school_zone_id > -1) & (choosers.school_segment == univ_school_seg)] + + logger.info("Running %s for %d university students", trace_label, len(choosers)) + + model_settings = config.read_model_settings(model_settings_file_name) + + choosers = resample_school_zones( + choosers, land_use_df, model_settings, col_to_override='school_zone_id') + + # Overriding school_zone_id in persons table + persons = persons.to_frame() + persons.loc[persons.index.isin(choosers.index), + 'school_zone_id'] = choosers['school_zone_id'].astype(int) + + # saving original zone if desired + original_zone_col_name = model_settings['ORIGINAL_ZONE_COL_NAME'] + if original_zone_col_name is not None: + persons.loc[persons.index.isin(choosers.index), + original_zone_col_name] = choosers[original_zone_col_name] + + pipeline.replace_table("persons", persons) + + tracing.print_summary('university_location_zone_override choices', + persons['school_zone_id'], + value_counts=True) + + if trace_hh_id: + tracing.trace_df(persons, + label=trace_label, + warn_if_empty=True) + + +@inject.step() +def trip_destination_univ_zone_override( + trips, tours, land_use, + chunk_size, trace_hh_id): + """ + This model overrides the university trip destination zone for students attending large universities. + New school tazs are chosen based on the university enrollment in landuse without accessibility terms. + This is done to replicate the fact that university students can have classes all over campus. + If the trip destination is the primary tour destination, the zone is not changed because it was + already handled in university_location_zone_override. + + The main interface to this model is the trip_destination_univ_zone_override() function. + This function is registered as an orca step in the example Pipeline. + """ + + trace_label = 'trip_destination_univ_zone_override' + model_settings_file_name = 'university_location_zone_override.yaml' + model_settings = config.read_model_settings(model_settings_file_name) + univ_purpose = model_settings['TRIP_UNIVERSITY_PURPOSE'] + tour_mode_override_dict = model_settings['TOUR_MODE_OVERRIDE_DICT'] + + choosers = trips.to_frame() + land_use_df = land_use.to_frame() + tours = tours.to_frame() + + # primary trips are outbound trips where the next trip is not outbound + choosers['is_primary_trip'] = np.where( + (choosers['outbound']) & ~(choosers['outbound'].shift(-1)), + True, False) + print(choosers['is_primary_trip'].value_counts()) + choosers = choosers[~(choosers['is_primary_trip']) & (choosers['purpose'] == univ_purpose)] + + # changing tour mode according to model settings to avoid, e.g. really long walk trips + # This has to be done here and not in university_location_zone_override because + # this model comes after tour mode choice + if tour_mode_override_dict is not None: + tours_with_trip_resampled = choosers['tour_id'] + for orig_tour_mode, new_tour_mode in tour_mode_override_dict.items(): + tour_overrides = ((tours.index.isin(choosers.tour_id)) + & (tours['tour_mode'] == orig_tour_mode)) + logger.info("Changing %d tours with mode %s to mode %s", + tour_overrides.sum(), orig_tour_mode, new_tour_mode) + tours.loc[tour_overrides, 'tour_mode'] = new_tour_mode + + logger.info("Running %s for %d university students", trace_label, len(choosers)) + + choosers = resample_school_zones( + choosers, land_use_df, model_settings, col_to_override='destination') + + # Overriding school_zone_id in persons table + trips = trips.to_frame() + trips.loc[trips.index.isin(choosers.index), 'destination'] = choosers['destination'].astype(int) + + # need to change subsequent origin for trips that were changed + trips['last_destination'] = trips.groupby('tour_id')['destination'].transform('shift') + trips['origin'] = np.where( + trips['last_destination'].notna() & (trips['last_destination'] != trips['origin']), + trips['last_destination'], + trips['origin'] + ) + trips.drop(columns='last_destination', inplace=True) + + # saving old zone choice if requested + original_zone_col_name = model_settings['ORIGINAL_ZONE_COL_NAME'] + if original_zone_col_name is not None: + trips.loc[trips.index.isin(choosers.index), + original_zone_col_name] = choosers[original_zone_col_name] + + pipeline.replace_table("trips", trips) + pipeline.replace_table("tours", tours) + + tracing.print_summary('trip_destination_univ_zone_override for zones', + trips[original_zone_col_name], + value_counts=True) + + if trace_hh_id: + tracing.trace_df(trips, + label=trace_label, + warn_if_empty=True)