Changeset 3304
- Timestamp:
- 05/05/08 14:18:27 (2 months ago)
- Location:
- trunk/inprocess/bhylee
- Files:
-
- 2 modified
-
hlcm_parcel_estimation.py (modified) (2 diffs)
-
hlcm_parcel_specification.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/inprocess/bhylee/hlcm_parcel_estimation.py
r3112 r3304 14 14 15 15 from urbansim.configs.hlcm_estimation_config import HLCMEstimationConfig 16 from psrc_parcel.configs.baseline_estimation import BaselineEstimation 16 17 from opus_core.session_configuration import SessionConfiguration 17 18 from opus_core.store.attribute_cache import AttributeCache 18 19 from my_estimation_config import my_configuration 19 20 20 class HlcmParcelEstimation(HLCMEstimationConfig): 21 class HlcmParcelEstimation(BaselineEstimation): # comment out for urbansim.configs.hlcm_estimation_config 22 #class HlcmParcelEstimation(HLCMEstimationConfig): # comment out for psrc_parcel.configs.baseline_estimation 21 23 def update_config(self): 22 HLCMEstimationConfig.update_config(self) 24 # HLCMEstimationConfig.update_config(self) # comment out for psrc_parcel.configs.baseline_estimation 23 25 # 24 26 self.replace(my_configuration) 25 27 estimate_config = {} 26 estimate_config["export_estimation_data"]=False27 estimate_config["estimation_data_file_name"]="/tmp/HLCM_building_estimate_data"28 estimate_config["use_biogeme_data_format"]=True29 estimate_config["weights_for_estimation_string"]= "has_eg_1_units=building.residential_units>=1" #"psrc.parcel.residential_units_when_has_eg_1_surveyed_households_and_is_in_county_033"28 # estimate_config["export_estimation_data"]=False 29 # estimate_config["estimation_data_file_name"]="/tmp/HLCM_building_estimate_data" 30 # estimate_config["use_biogeme_data_format"]=True 31 # estimate_config["weights_for_estimation_string"]= "has_eg_1_units=building.residential_units>=1" #"psrc.parcel.residential_units_when_has_eg_1_surveyed_households_and_is_in_county_033" 30 32 #"sampling_filter=(building.disaggregate(building_type.building_type_name)=='single_family_residential') + (building.disaggregate(building_type.building_type_name)=='multi_family_residential') + (building.disaggregate(building_type.building_type_name)=='condo_residential')" 31 33 #"has_eg_1_units=urbansim.building.residential_units>=1" 32 34 33 estimate_config["stratum"] = "psrc.parcel.is_in_city_seattle" #"psrc.parcel.stratify_by_is_in_city_seattle_and_is_single_family_unit" 34 estimate_config["sample_size_from_each_stratum"] = 5 35 estimate_config["sample_size_from_chosen_stratum"] = 4 36 estimate_config["include_chosen_choice"] = True 35 # estimate_config["stratum"] = "psrc.parcel.is_in_city_seattle" #"psrc.parcel.stratify_by_is_in_city_seattle_and_is_single_family_unit" 36 # estimate_config["sample_size_from_each_stratum"] = 5 37 # estimate_config["sample_size_from_chosen_stratum"] = 4 38 # estimate_config["include_chosen_choice"] = True 39 estimate_config['wesml_sampling_correction_variable'] = 'psrc_parcel.building.wesml_sampling_correction_variable' 37 40 #estimate_config['submodel_string'] = "None" 38 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['sample_size_locations'] = 3041 # self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['sample_size_locations'] = 30 39 42 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['sampler']="'opus_core.samplers.weighted_sampler'"#"'opus_core.samplers.stratified_sampler'" # 40 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["estimate_config"]= \ 41 estimate_config 43 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["estimate_config"] = estimate_config 44 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["estimation_weight_string"] = "'has_eg_1_units=building.residential_units>=1'" 45 # self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["estimation_weight_string"] = "'urbansim_parcel.building.vacant_residential_units'" 46 # self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["estimation_weight_string"] = "'psrc_parcel.building.residential_units'" 42 47 #{"weights_for_estimation_string":"psrc.parcel.residential_units_when_has_eg_1_surveyed_households_and_is_in_county_033"} 43 48 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["location_set"] = "building" 44 49 #self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["location_id_string"] = "'household.parcel_id'" 45 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['submodel_string'] = "'psrc.household.number_of_nonhome_based_workers'" 46 50 # self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['submodel_string'] = "'psrc.household.number_of_nonhome_based_workers'" 51 52 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["variable_package"]="'urbansim_parcel'" 53 47 54 self["models_configuration"]["household_location_choice_model"]["controller"]["prepare_for_estimate"]["arguments"]["join_datasets"] = 'True' 48 55 self["models_configuration"]["household_location_choice_model"]["controller"]["prepare_for_estimate"]["arguments"]["index_to_unplace"] = 'None' 49 self["models_configuration"]["household_location_choice_model"]["controller"]["prepare_for_estimate"]["arguments"]["filter"] = None #"'psrc.household.customized_filter'" 56 self["models_configuration"]["household_location_choice_model"]["controller"]["prepare_for_estimate"]["arguments"]["filter"] = "'household.move == 1'"#None #"'psrc.household.customized_filter'" 57 self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['filter'] = None 50 58 51 59 self["models"] = [ 52 #{"household_relocation_model": ["run"]},60 # {"household_relocation_model": ["run"]}, 53 61 {"household_location_choice_model": ["estimate"]} 54 62 ] … … 66 74 run_configuration, "household_location_choice_model", 67 75 "inprocess.bhylee.hlcm_parcel_specification") 68 run_configuration.replace(my_configuration)69 76 er = Estimator(run_configuration, save_estimation_results=False) 70 77 71 78 er.estimate() 79 er.create_prediction_success_table() 80 er.create_prediction_success_table(choice_geography_id="area_type_id=building.disaggregate(zone.area_type_id, intermediates=[parcel])" ) 81 er.create_prediction_success_table(choice_geography_id="building_type_id=building.building_type_id" ) 82 # er.create_prediction_success_table(choice_geography_id="large_area_id=building.disaggregate(faz.large_area_id, intermediates=[zone, parcel])" ) 72 83 # er.reestimate("hlcm_parcel_specification") -
trunk/inprocess/bhylee/hlcm_parcel_specification.py
r3112 r3304 17 17 [ 18 18 19 # ("urbansim_parcel.household_x_building.ln_sampling_probability_for_bias_correction_mnl_residential_units", "bias", 1), 20 # ("urbansim_parcel.household_x_building.ln_sampling_probability_for_bias_correction_mnl_vacant_residential_units", "bias", 1), 21 22 19 23 # ALTERNATIVE 24 "A_is_in_same_area_type = (household.previous_area_type_id == building.disaggregate(zone.area_type_id))", 25 # "A_is_in_same_district = (household.previous_district_id == building.disaggregate(zone.district_id))", 26 # "A_is_in_same_faz = (household.previous_faz_id == building.disaggregate(zone.faz_id))", 27 "A_is_in_same_large_area = (household.previous_large_area_id == building.disaggregate(faz.large_area_id))", 28 # "A_is_in_same_zone = (household.previous_zone_id == building.disaggregate(zone.zone_id))", 20 29 # "A_is_new_construction = (urbansim_parcel.building.age_masked < 2)", 21 30 # "A_is_pre1945 = (urbansim_parcel.building.age_masked > 60)", … … 26 35 # "A_ln_price_per_sqft = ln(urbansim_parcel.building.unit_price)", 27 36 # "A_ln_price_per_unit = ln((urbansim_parcel.building.unit_price) * urbansim_parcel.building.building_sqft_per_unit)", 28 # "A_ln_residential_units = ln(psrc_parcel.building.residential_units)", 37 "A_ln_residential_units = ln(psrc_parcel.building.residential_units)", 38 # "A_ln_vacant_residential_units = ln(urbansim_parcel.building.vacant_residential_units)", 29 39 # "A_unit_price = urbansim_parcel.building.unit_price * urbansim_parcel.building.building_sqft_per_unit", 40 30 41 31 42 # NEIGHBOURHOOD … … 38 49 # "B_number_of_high_income_households_within_walking_distance = building.disaggregate(psrc.parcel.number_of_high_income_households_within_walking_distance)", 39 50 # "B_percent_high_income_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_high_income_households_within_walking_distance)", 51 # "B_percent_home_owner_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_home_owners_within_walking_distance)", 40 52 # "B_percent_low_income_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_low_income_households_within_walking_distance)", 41 53 # "B_percent_med_income_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_mid_income_households_within_walking_distance)", 42 54 # "B_percent_young_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_young_households_within_walking_distance)", 43 # "urbansim_parcel.household_x_building.ln_sampling_probability_for_bias_correction_mnl_vacant_residential_units",44 55 45 56 … … 58 69 # "C_is_low_income_x_ln_zonal_pop_den = urbansim.household.is_low_income * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)", 59 70 # "C_is_mid_income_x_ln_average_income_within_walking_distance = urbansim.household.is_mid_income * ln(building.disaggregate(psrc.parcel.average_income_within_walking_distance))", 71 "C_is_renter_x_is_multi_family_residential = (household.tenure == 3) * urbansim.building.is_multi_family_residential", 60 72 "C_is_single_person_x_is_not_single_family_residential = (household.persons < 2) * numpy.logical_not(urbansim.building.is_single_family_residential)", 61 73 # "C_is_young_x_percent_young_households_within_walking_distance = urbansim.household.is_young * building.disaggregate(psrc.parcel.percent_young_households_within_walking_distance)", … … 68 80 # "C_ln_income_x_ln_average_zonal_income = ln(household.income) * ln(building.disaggregate(urbansim_parcel.zone.average_income))", 69 81 "C_ln_income_x_ln_price_per_sqft = ln(household.income) * ln(urbansim_parcel.building.unit_price)", 70 #"C_ln_income_x_ln_zonal_pop_den = ln(household.income) * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)",82 "C_ln_income_x_ln_zonal_pop_den = ln(household.income) * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)", 71 83 72 84 # "C_hh_size_x_ln_zonal_pop_den = household.persons * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)", 73 85 # "C_has_children_x_ln_zonal_pop_den = (household.children > 0) * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)", 74 86 75 87 76 88 # ACCESSIBILITY … … 84 96 # "D_logsum_income_break3_x_trip_weighted_average_logsum_hbw_am_income_3 = (psrc.household.logsum_income_break==3) * building.disaggregate(psrc.zone.trip_weighted_average_logsum_hbw_am_income_3)", 85 97 # "D_logsum_income_break4_x_trip_weighted_average_logsum_hbw_am_income_4 = (psrc.household.logsum_income_break==4) * building.disaggregate(psrc.zone.trip_weighted_average_logsum_hbw_am_income_4)", 86 # "D_ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone = ln(urbansim.building.ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone)", 87 # "D_ln_employment_within_30_minutes_travel_time_hbw_am_transit_walk = ln(urbansim.building.ln_employment_within_30_minutes_travel_time_hbw_am_transit_walk)", 98 # "D_logsum_income_break1_x_exp_trip_weighted_average_logsum_hbw_am_income_1 = (psrc.household.logsum_income_break==1) * exp(building.disaggregate(psrc.zone.trip_weighted_average_logsum_hbw_am_income_1))", 99 # "D_logsum_income_break2_x_exp_trip_weighted_average_logsum_hbw_am_income_2 = (psrc.household.logsum_income_break==2) * exp(building.disaggregate(psrc.zone.trip_weighted_average_logsum_hbw_am_income_2))", 100 # "D_logsum_income_break3_x_exp_trip_weighted_average_logsum_hbw_am_income_3 = (psrc.household.logsum_income_break==3) * exp(building.disaggregate(psrc.zone.trip_weighted_average_logsum_hbw_am_income_3))", 101 # "D_logsum_income_break4_x_exp_trip_weighted_average_logsum_hbw_am_income_4 = (psrc.household.logsum_income_break==4) * exp(building.disaggregate(psrc.zone.trip_weighted_average_logsum_hbw_am_income_4))", 102 # "D_ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone = building.disaggregate(psrc.zone.ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone)", 103 # "D_ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone2 = building.disaggregate(ln_bounded(urbansim_parcel.zone.employment_within_30_minutes_travel_time_hbw_am_drive_alone))", 104 # "D_ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone3 = urbansim.building.ln_employment_within_30_minutes_travel_time_hbw_am_drive_alone", 105 # "D_ln_employment_within_30_minutes_travel_time_hbw_am_transit_walk = urbansim.building.ln_employment_within_30_minutes_travel_time_hbw_am_transit_walk", 88 106 # "D_ln_generalized_cost_weighted_access_to_employment_hbw_am_drive_alone = ln(building.disaggregate(psrc.zone.generalized_cost_weighted_access_to_employment_hbw_am_drive_alone))", 89 107 # "D_ln_generalized_cost_weighted_access_to_employment_hbw_am_transit_walk = ln(building.disaggregate(psrc.zone.generalized_cost_weighted_access_to_employment_hbw_am_transit_walk))",
