Changeset 3304

Show
Ignore:
Timestamp:
05/05/08 14:18:27 (2 months ago)
Author:
bhylee
Message:

(bhylee) updated files

Location:
trunk/inprocess/bhylee
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/inprocess/bhylee/hlcm_parcel_estimation.py

    r3112 r3304  
    1414 
    1515from urbansim.configs.hlcm_estimation_config import HLCMEstimationConfig 
     16from psrc_parcel.configs.baseline_estimation import BaselineEstimation 
    1617from opus_core.session_configuration import SessionConfiguration 
    1718from opus_core.store.attribute_cache import AttributeCache 
    1819from my_estimation_config import my_configuration 
    1920 
    20 class HlcmParcelEstimation(HLCMEstimationConfig): 
     21class HlcmParcelEstimation(BaselineEstimation): # comment out for urbansim.configs.hlcm_estimation_config 
     22#class HlcmParcelEstimation(HLCMEstimationConfig): # comment out for psrc_parcel.configs.baseline_estimation 
    2123    def update_config(self): 
    22         HLCMEstimationConfig.update_config(self) 
     24#        HLCMEstimationConfig.update_config(self) # comment out for psrc_parcel.configs.baseline_estimation 
    2325#         
    2426        self.replace(my_configuration) 
    2527        estimate_config = {} 
    26         estimate_config["export_estimation_data"]=False 
    27         estimate_config["estimation_data_file_name"]="/tmp/HLCM_building_estimate_data" 
    28         estimate_config["use_biogeme_data_format"]=True 
    29         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" 
    3032        #"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')" 
    3133        #"has_eg_1_units=urbansim.building.residential_units>=1" 
    3234             
    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' 
    3740        #estimate_config['submodel_string'] = "None" 
    38         self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['sample_size_locations'] = 30 
     41#        self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]['sample_size_locations'] = 30 
    3942        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'" 
    4247                           #{"weights_for_estimation_string":"psrc.parcel.residential_units_when_has_eg_1_surveyed_households_and_is_in_county_033"} 
    4348        self["models_configuration"]["household_location_choice_model"]["controller"]["init"]["arguments"]["location_set"] = "building" 
    4449        #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 
    4754        self["models_configuration"]["household_location_choice_model"]["controller"]["prepare_for_estimate"]["arguments"]["join_datasets"] = 'True' 
    4855        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 
    5058         
    5159        self["models"] = [ 
    52         #    {"household_relocation_model": ["run"]}, 
     60#            {"household_relocation_model": ["run"]}, 
    5361            {"household_location_choice_model": ["estimate"]} 
    5462        ] 
     
    6674                            run_configuration, "household_location_choice_model", 
    6775                            "inprocess.bhylee.hlcm_parcel_specification") 
    68     run_configuration.replace(my_configuration) 
    6976    er = Estimator(run_configuration, save_estimation_results=False) 
    7077     
    7178    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])" ) 
    7283#    er.reestimate("hlcm_parcel_specification") 
  • trunk/inprocess/bhylee/hlcm_parcel_specification.py

    r3112 r3304  
    1717            [ 
    1818 
     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 
    1923#        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))", 
    2029#             "A_is_new_construction = (urbansim_parcel.building.age_masked < 2)", 
    2130#             "A_is_pre1945 = (urbansim_parcel.building.age_masked > 60)", 
     
    2635#             "A_ln_price_per_sqft = ln(urbansim_parcel.building.unit_price)", 
    2736#             "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)", 
    2939#             "A_unit_price = urbansim_parcel.building.unit_price * urbansim_parcel.building.building_sqft_per_unit", 
     40 
    3041                           
    3142#        NEIGHBOURHOOD 
     
    3849#             "B_number_of_high_income_households_within_walking_distance = building.disaggregate(psrc.parcel.number_of_high_income_households_within_walking_distance)", 
    3950#             "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)", 
    4052#             "B_percent_low_income_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_low_income_households_within_walking_distance)", 
    4153#             "B_percent_med_income_households_within_walking_distance = building.disaggregate(psrc.parcel.percent_mid_income_households_within_walking_distance)", 
    4254#             "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", 
    4455 
    4556 
     
    5869#             "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)", 
    5970#             "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", 
    6072             "C_is_single_person_x_is_not_single_family_residential = (household.persons < 2) * numpy.logical_not(urbansim.building.is_single_family_residential)", 
    6173#             "C_is_young_x_percent_young_households_within_walking_distance = urbansim.household.is_young * building.disaggregate(psrc.parcel.percent_young_households_within_walking_distance)", 
     
    6880#             "C_ln_income_x_ln_average_zonal_income = ln(household.income) * ln(building.disaggregate(urbansim_parcel.zone.average_income))", 
    6981             "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)", 
    7183 
    7284#             "C_hh_size_x_ln_zonal_pop_den = household.persons * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)", 
    7385#             "C_has_children_x_ln_zonal_pop_den = (household.children > 0) * (ln(building.disaggregate(urbansim_parcel.zone.population_per_acre))).astype(float32)", 
    74               
     86 
    7587                           
    7688#        ACCESSIBILITY 
     
    8496#             "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)", 
    8597#             "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", 
    88106#             "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))", 
    89107#             "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))",