From 22717b28b5d1c54d69f280e9cf33090a4f821ae1 Mon Sep 17 00:00:00 2001 From: JoeJimFlood Date: Fri, 10 May 2024 11:01:41 -0700 Subject: [PATCH] Added capability for EV rebates for low- and middle-income households --- ...le_type_choice_annotate_choosers_preprocessor.csv | 4 +++- .../configs/resident/vehicle_type_choice_op4.csv | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/asim/configs/resident/vehicle_type_choice_annotate_choosers_preprocessor.csv b/src/asim/configs/resident/vehicle_type_choice_annotate_choosers_preprocessor.csv index b966101c1..61b612b0c 100644 --- a/src/asim/configs/resident/vehicle_type_choice_annotate_choosers_preprocessor.csv +++ b/src/asim/configs/resident/vehicle_type_choice_annotate_choosers_preprocessor.csv @@ -12,4 +12,6 @@ number of household Hybrid,num_hh_Hybrid,"df[df['already_owned_veh'].str.contain number of household BEV,num_hh_BEV,"df[df['already_owned_veh'].str.contains('BEV', na=False)].groupby('household_id').size().reindex(df.household_id).fillna(0)" number of household PEV,num_hh_PEV,"df[df['already_owned_veh'].str.contains('PEV', na=False)].groupby('household_id').size().reindex(df.household_id).fillna(0)" number of household EVs,num_hh_EV,"num_hh_BEV + num_hh_PEV" -household income adjusted to 2017$,income17,"@np.where(df.income < 0, df.income, df.income/1.217)" \ No newline at end of file +household income adjusted to 2017$,income17,"@np.where(df.income < 0, df.income, df.income/1.217)" +PEV Rebate amount,PEV_rebate,"@np.where(df.poverty <= LowIncomeEVRebateCutoff, LowIncomePEVRebate, np.where(df.poverty <= MedIncomeEVRebateCutoff, MedIncomePEVRebate, 0))" +BEV Rebate amount,BEV_rebate,"@np.where(df.poverty <= LowIncomeEVRebateCutoff, LowIncomeBEVRebate, np.where(df.poverty <= MedIncomeEVRebateCutoff, MedIncomeBEVRebate, 0))" \ No newline at end of file diff --git a/src/asim/configs/resident/vehicle_type_choice_op4.csv b/src/asim/configs/resident/vehicle_type_choice_op4.csv index 0c2b2868d..df69f47c3 100644 --- a/src/asim/configs/resident/vehicle_type_choice_op4.csv +++ b/src/asim/configs/resident/vehicle_type_choice_op4.csv @@ -9,12 +9,12 @@ util_ln_chpc_ev,ln(1+number of chargers per capita in MSA/state),"logged_charger util_must_select_av,Must select autonomous vehicle if hh owns one,av_ownership & ~is_av & (num_hh_veh_owned == 0),coef_unavail util_must_select_av,Cannot select AV if hh does not own one,~av_ownership & is_av,coef_unavail #,income related variables,, -util_cprice0,New Purchase Price (2017$) Segmented by Income,"((income17 < 25000) & (income17 > -1)) * NewPrice",coef_cprice0 -util_cprice25,New Purchase Price (2017$) Segmented by Income,"((income17 < 50000) & (income17 >= 25000)) * NewPrice",coef_cprice25 -util_cprice50,New Purchase Price (2017$) Segmented by Income,"((income17 < 100000) & (income17 >=50000)) * NewPrice",coef_cprice50 -util_cprice100,New Purchase Price (2017$) Segmented by Income,"((income17 < 150000) & (income17 >= 100000)) * NewPrice",coef_cprice100 -util_cprice150,New Purchase Price (2017$) Segmented by Income,"(income17 > 150000) * NewPrice",coef_cprice150 -util_cpricem,New Purchase Price (2017$) Missing Income,"((income17 < 0) | income17.isna()) * NewPrice",coef_cpricem +util_cprice0,New Purchase Price (2017$) Segmented by Income,"((income17 < 25000) & (income17 > -1)) * (NewPrice - (fuel_type_num_coded==1)*PEV_rebate - (fuel_type_num_coded==5)*BEV_rebate)",coef_cprice0 +util_cprice25,New Purchase Price (2017$) Segmented by Income,"((income17 < 50000) & (income17 >= 25000)) * (NewPrice - (fuel_type_num_coded==1)*PEV_rebate - (fuel_type_num_coded==5)*BEV_rebate)",coef_cprice25 +util_cprice50,New Purchase Price (2017$) Segmented by Income,"((income17 < 100000) & (income17 >=50000)) * (NewPrice - (fuel_type_num_coded==1)*PEV_rebate - (fuel_type_num_coded==5)*BEV_rebate)",coef_cprice50 +util_cprice100,New Purchase Price (2017$) Segmented by Income,"((income17 < 150000) & (income17 >= 100000)) * (NewPrice - (fuel_type_num_coded==1)*PEV_rebate - (fuel_type_num_coded==5)*BEV_rebate)",coef_cprice100 +util_cprice150,New Purchase Price (2017$) Segmented by Income,"(income17 > 150000) * (NewPrice - (fuel_type_num_coded==1)*PEV_rebate - (fuel_type_num_coded==5)*BEV_rebate)",coef_cprice150 +util_cpricem,New Purchase Price (2017$) Missing Income,"((income17 < 0) | income17.isna()) * (NewPrice - (fuel_type_num_coded==1)*PEV_rebate - (fuel_type_num_coded==5)*BEV_rebate)",coef_cpricem util_i025_age,Vehicle Age Segmented by Income,"((income17 < 25000) & (income17 > -1)) * age",coef_i025_age util_i2550_age,Vehicle Age Segmented by Income,"((income17 < 50000) & (income17 >= 25000)) * age",coef_i2550_age util_i100_age,Vehicle Age Segmented by Income,"((income17 < 150000) & (income17 >= 100000)) * age",coef_i100_age