From 80d28eb3f93721fee20583bc2ac3ef1e511f41a3 Mon Sep 17 00:00:00 2001 From: albabnoor <32677437+albabnoor@users.noreply.github.com> Date: Fri, 6 Nov 2020 16:13:27 -0800 Subject: [PATCH] Updated joint_tour_destination.py script to point to joint_tour_destination.yaml. Added joint_tour_destination model configs files which are now separated from the non-mandatory destination choice model configs. --- .../abm/models/joint_tour_destination.py | 4 ++-- .../configs/joint_tour_destination.csv | 10 +++++++++ .../configs/joint_tour_destination.yaml | 10 +++++---- .../configs/joint_tour_destination_coeffs.csv | 21 +++++++++++++++++++ .../configs/joint_tour_destination_sample.csv | 8 +++++++ 5 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 activitysim/examples/example_mtc/configs/joint_tour_destination.csv create mode 100644 activitysim/examples/example_mtc/configs/joint_tour_destination_coeffs.csv create mode 100644 activitysim/examples/example_mtc/configs/joint_tour_destination_sample.csv diff --git a/activitysim/abm/models/joint_tour_destination.py b/activitysim/abm/models/joint_tour_destination.py index e10fa2c346..8e7c940dba 100644 --- a/activitysim/abm/models/joint_tour_destination.py +++ b/activitysim/abm/models/joint_tour_destination.py @@ -326,8 +326,8 @@ def joint_tour_destination( person that's making the tour) """ - trace_label = 'non_mandatory_tour_destination' - model_settings_file_name = 'non_mandatory_tour_destination.yaml' + trace_label = 'joint_tour_destination' + model_settings_file_name = 'joint_tour_destination.yaml' model_settings = config.read_model_settings(model_settings_file_name) logsum_column_name = model_settings.get('DEST_CHOICE_LOGSUM_COLUMN_NAME') diff --git a/activitysim/examples/example_mtc/configs/joint_tour_destination.csv b/activitysim/examples/example_mtc/configs/joint_tour_destination.csv new file mode 100644 index 0000000000..214001a6a9 --- /dev/null +++ b/activitysim/examples/example_mtc/configs/joint_tour_destination.csv @@ -0,0 +1,10 @@ +Description,Expression,escortkids,escortnokids,shopping,eatout,othmaint,social,othdiscr +"Distance, piecewise linear from 0 to 1 miles","@skims['DIST'].clip(0,1)",coef_escort_dist_0_2,coef_escort_dist_0_2,0,coef_eatout_dist_0_2,0,coef_eatout_dist_0_2,coef_othdiscr_dist_0_2 +"Distance, piecewise linear from 1 to 2 miles","@(skims['DIST']-1).clip(0,1)",coef_escort_dist_0_2,coef_escort_dist_0_2,0,coef_eatout_dist_0_2,0,coef_eatout_dist_0_2,coef_othdiscr_dist_0_2 +"Distance, piecewise linear from 2 to 5 miles","@(skims['DIST']-2).clip(0,3)",coef_escort_dist_2_5,coef_escort_dist_2_5,coef_shopping_dist_2_5,coef_eatout_dist_2_5,coef_othmaint_dist_2_5,coef_social_dist_2_5,coef_othdiscr_dist_2_5 +"Distance, piecewise linear from 5 to 15 miles","@(skims['DIST']-5).clip(0,10)",coef_escort_dist_5_plus,coef_escort_dist_5_plus,coef_shopping_dist_5_plus,coef_eatout_dist_5_plus,coef_othmaint_dist_5_plus,coef_social_dist_5_plus,coef_othdiscr_dist_5_plus +"Distance, piecewise linear for 15+ miles",@(skims['DIST']-15.0).clip(0),coef_escort_dist_5_plus,coef_escort_dist_5_plus,coef_shopping_dist_5_plus,coef_eatout_dist_5_plus,coef_othmaint_dist_5_plus,coef_social_dist_5_plus,coef_othdiscr_dist_5_plus +Size variable,@df['size_term'].apply(np.log1p),1,1,1,1,1,1,1 +No attractions,@df['size_term']==0,-999,-999,-999,-999,-999,-999,-999 +Mode choice logsum,mode_choice_logsum,coef_mode_logsum,coef_mode_logsum,coef_mode_logsum,coef_mode_logsum,coef_mode_logsum,coef_mode_logsum,coef_mode_logsum +Sample of alternatives correction factor,"@np.minimum(np.log(df.pick_count/df.prob), 60)",1,1,1,1,1,1,1 diff --git a/activitysim/examples/example_mtc/configs/joint_tour_destination.yaml b/activitysim/examples/example_mtc/configs/joint_tour_destination.yaml index 36d67bc306..e6476e2f57 100644 --- a/activitysim/examples/example_mtc/configs/joint_tour_destination.yaml +++ b/activitysim/examples/example_mtc/configs/joint_tour_destination.yaml @@ -1,7 +1,7 @@ -SAMPLE_SPEC: non_mandatory_tour_destination_sample.csv -SPEC: non_mandatory_tour_destination.csv -COEFFICIENTS: non_mandatory_tour_destination_coeffs.csv +SAMPLE_SPEC: joint_tour_destination_sample.csv +SPEC: joint_tour_destination.csv +COEFFICIENTS: joint_tour_destination_coeffs.csv SEGMENTS: - shopping @@ -13,10 +13,12 @@ SEGMENTS: SAMPLE_SIZE: 30 +CHOOSER_SEGMENT_COLUMN_NAME: tour_type + SIMULATE_CHOOSER_COLUMNS: - tour_type - TAZ - - household_id + - person_id LOGSUM_SETTINGS: tour_mode_choice.yaml diff --git a/activitysim/examples/example_mtc/configs/joint_tour_destination_coeffs.csv b/activitysim/examples/example_mtc/configs/joint_tour_destination_coeffs.csv new file mode 100644 index 0000000000..bf02b811f8 --- /dev/null +++ b/activitysim/examples/example_mtc/configs/joint_tour_destination_coeffs.csv @@ -0,0 +1,21 @@ +coefficient_name,value,constrain +coef_mode_logsum,0.6755,F +coef_escort_dist_0_2,-0.1499,F +coef_eatout_dist_0_2,-0.5609,F +coef_eatout_social_0_2,-0.5609,F +coef_eatout_dist_0_2,-0.7841,F +coef_othdiscr_dist_0_2,-0.1677,F +coef_escort_dist_2_5,-0.8671,F +coef_shopping_dist_2_5,-0.5655,F +coef_eatout_dist_2_5,-0.3192,F +coef_othmaint_dist_2_5,-0.6055,F +coef_social_dist_2_5,-0.3485,F +coef_othdiscr_dist_2_5,-0.4955,F +coef_escort_dist_5_plus,-0.2137,F +coef_shopping_dist_5_plus,-0.1832,F +coef_eatout_dist_5_plus,-0.1238,F +coef_othmaint_dist_5_plus,-0.1093,F +coef_social_dist_5_plus,-0.1306,F +coef_othdiscr_dist_5_plus,-0.1193,F + + diff --git a/activitysim/examples/example_mtc/configs/joint_tour_destination_sample.csv b/activitysim/examples/example_mtc/configs/joint_tour_destination_sample.csv new file mode 100644 index 0000000000..e854744765 --- /dev/null +++ b/activitysim/examples/example_mtc/configs/joint_tour_destination_sample.csv @@ -0,0 +1,8 @@ +Description,Expression,escortkids,escortnokids,shopping,eatout,othmaint,social,othdiscr +"Distance, piecewise linear from 0 to 1 miles","@skims['DIST'].clip(0,1)",coef_escort_dist_0_2,coef_escort_dist_0_2,0,coef_eatout_dist_0_2,0,coef_eatout_dist_0_2,coef_othdiscr_dist_0_2 +"Distance, piecewise linear from 1 to 2 miles","@(skims['DIST']-1).clip(0,1)",coef_escort_dist_0_2,coef_escort_dist_0_2,0,coef_eatout_dist_0_2,0,coef_eatout_dist_0_2,coef_othdiscr_dist_0_2 +"Distance, piecewise linear from 2 to 5 miles","@(skims['DIST']-2).clip(0,3)",coef_escort_dist_2_5,coef_escort_dist_2_5,coef_shopping_dist_2_5,coef_eatout_dist_2_5,coef_othmaint_dist_2_5,coef_social_dist_2_5,coef_othdiscr_dist_2_5 +"Distance, piecewise linear from 5 to 15 miles","@(skims['DIST']-5).clip(0,10)",coef_escort_dist_5_plus,coef_escort_dist_5_plus,coef_shopping_dist_5_plus,coef_eatout_dist_5_plus,coef_othmaint_dist_5_plus,coef_social_dist_5_plus,coef_othdiscr_dist_5_plus +"Distance, piecewise linear for 15+ miles",@(skims['DIST']-15.0).clip(0),coef_escort_dist_5_plus,coef_escort_dist_5_plus,coef_shopping_dist_5_plus,coef_eatout_dist_5_plus,coef_othmaint_dist_5_plus,coef_social_dist_5_plus,coef_othdiscr_dist_5_plus +Size variable,@df['size_term'].apply(np.log1p),1,1,1,1,1,1,1 +No attractions,@df['size_term']==0,-999,-999,-999,-999,-999,-999,-999