def __init__(self): config = UrbansimParcelConfiguration() if os.environ.has_key('OPUS_DATA_PATH'): data_path_prefix = os.path.join(os.environ['OPUS_DATA_PATH'], 'psrc_parcel') else: data_path_prefix = os.path.join(os.environ['OPUS_HOME'], 'data/psrc_parcel') config_changes = { 'project_name': 'psrc_parcel', 'description': 'PSRC parcel baseline', 'cache_directory': os.path.join(data_path_prefix, 'base_year_data'), 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root=os.path.join(data_path_prefix, 'runs'), cache_from_database=False, baseyear_cache=BaseyearCacheConfiguration( years_to_cache=[2000], #existing_cache_to_copy = r'/urbansim_cache/psrc_parcel/runs/cache_hh_persons_init', existing_cache_to_copy=os.path.join( data_path_prefix, 'base_year_data'), ), cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache=[ #'business', 'households', 'buildings', 'parcels', 'gridcells', 'zones', "jobs", "households_for_estimation", "households_for_estimation_LAG1", "jobs_for_estimation", #"development_event_history", "persons", "persons_for_estimation", "travel_data", "building_types", "job_building_types", 'urbansim_constants', "target_vacancies", "home_based_employment_location_choice_model_coefficients", "home_based_employment_location_choice_model_specification", "non_home_based_employment_location_choice_model_coefficients", "non_home_based_employment_location_choice_model_specification", "household_location_choice_model_coefficients", "household_location_choice_model_specification", "real_estate_price_model_coefficients", "real_estate_price_model_specification", "annual_household_control_totals", "annual_relocation_rates_for_households", "household_characteristics_for_ht", "annual_employment_control_totals", "annual_relocation_rates_for_jobs", "land_use_types", "generic_land_use_types", 'employment_sectors', 'employment_adhoc_sector_groups', 'employment_adhoc_sector_group_definitions', 'development_templates', 'development_template_components', 'development_constraints', "building_sqft_per_job", "fazes", "large_areas", "demolition_cost_per_sqft", 'constant_taz_columns', 'zipcodes', 'cities', 'districts', 'area_types', "work_at_home_choice_model_coefficients", "work_at_home_choice_model_specification", "workplace_choice_model_for_resident_coefficients", "workplace_choice_model_for_resident_specification", "development_project_proposals", "development_project_proposals_for_estimation", "school_districts", "tours", ## some attribute coding lookup tables "education", "employment_status", "grade", "race_names", "relationship", "sex", "student", ], tables_to_cache_nchunks={'parcels': 1}, unroll_gridcells=False), 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name='psrc_2005_parcel_baseyear', #database_name = 'psrc_2005_parcel_baseyear_change_20080804E', #database_name = 'psrc_2005_parcel_baseyear_change_lmwang', ), 'dataset_pool_configuration': DatasetPoolConfiguration(package_order=[ 'psrc_parcel', 'urbansim_parcel', 'urbansim', 'opus_core' ], ), # 'models_configuration':models_configuration, 'base_year': 2000, 'years': (2001, 2030), 'models': [ # models are executed in the same order as in this list #"process_pipeline_events", "real_estate_price_model", "expected_sale_price_model", "development_proposal_choice_model", "building_construction_model", "modify_workers_jobs_after_moving_households", # from demolished buildings "modify_workers_jobs_after_moving_jobs", # from demolished buildings "household_transition_model", "employment_transition_model", 'job_person_consistency_keeper', "household_relocation_model", "household_location_choice_model", "modify_workers_jobs_after_moving_households", "employment_relocation_model", #{"employment_location_choice_model":{'group_members': '_all_'}}, { "employment_location_choice_model": { 'group_members': ['non_home_based'] } }, 'distribute_unplaced_jobs_model', 'distribute_unplaced_mining_utilities_jobs_model', "modify_workers_jobs_after_moving_jobs", 'work_at_home_choice_model', 'workplace_choice_model_for_resident' ], 'models_in_year': { 2000: [ # This is not run anymore, since all jobs are located and only a few households are not. "household_relocation_model_for_2000", "household_location_choice_model_for_2000", "employment_relocation_model_for_2000", { "employment_location_choice_model": { 'group_members': '_all_' } } ] }, 'flush_dataset_to_cache_after_each_model': False, 'flush_variables': False, 'low_memory_run': False, 'datasets_to_cache_after_each_model': [ "parcel", "building", 'household', 'job', 'development_project_proposal_component', #to be cached for diagnostic purpose (lmwang) 'development_project_proposal', 'travel_data', 'persons' ], 'unroll_gridcells': False, "datasets_to_preload": { 'zone': {}, 'household': {}, 'building': {}, 'parcel': { 'package_name': 'urbansim_parcel' }, 'development_template': { 'package_name': 'urbansim_parcel' }, 'development_template_component': { 'package_name': 'urbansim_parcel' }, 'job': {}, 'person': { 'package_name': 'urbansim_parcel' }, "building_type": { 'package_name': 'urbansim_parcel' }, 'travel_data': {}, "job_building_type": {} } } config.replace(config_changes) config['models_configuration']["household_location_choice_model"]["controller"]["import"] = \ {"psrc_parcel.models.household_location_choice_model" : "HouseholdLocationChoiceModel"} config['models_configuration']["employment_location_choice_model"]['controller']["import"] = \ {"psrc_parcel.models.employment_location_choice_model" : "EmploymentLocationChoiceModel"} config['models_configuration']["home_based_employment_location_choice_model"]['controller']["import"] = \ {"psrc_parcel.models.employment_location_choice_model" : "EmploymentLocationChoiceModel"} config['models_configuration'][ 'household_relocation_model_for_2000'] = {} config['models_configuration']['household_relocation_model_for_2000']['controller'] = \ HouseholdRelocationModelConfigurationCreator( location_id_name = 'building_id', probabilities = None, rate_table=None, output_index = 'hrm_index').execute() config['models_configuration'][ 'household_location_choice_model_for_2000'] = Configuration( config['models_configuration'] ['household_location_choice_model']) config['models_configuration'][ 'household_location_choice_model_for_2000']['controller']['run'][ 'arguments']['chunk_specification'] = "{'nchunks':1}" config['models_configuration'][ 'household_location_choice_model_for_2000']['controller']['run'][ 'arguments']['maximum_runs'] = 1 config['models_configuration'][ 'employment_relocation_model_for_2000'] = {} config['models_configuration']['employment_relocation_model_for_2000']['controller'] = \ EmploymentRelocationModelConfigurationCreator( location_id_name = 'building_id', probabilities = None, rate_table=None, output_index = 'erm_index').execute() self.merge(config) if self.multiple_runs: self.sample_inputs()
def __init__(self): config = UrbansimParcelConfiguration() config_changes = { 'description': 'data preparation for PSRC parcel (buildings)', 'cache_directory': None, 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( #cache_directory_root = r'/Users/hana/urbansim_cache/psrc/parcel', cache_directory_root=r'/urbansim_cache/psrc_parcel', #cache_directory_root = r'/workspace/urbansim_cache/psrc_parcel', cache_from_database=False, baseyear_cache=BaseyearCacheConfiguration( #existing_cache_to_copy = r'/Users/hana/urbansim_cache/psrc/cache_source_parcel', existing_cache_to_copy= r'/urbansim_cache/psrc_parcel/cache_source', #existing_cache_to_copy = r'/workspace/urbansim_cache/psrc_parcel/estimation', years_to_cache=[2000]), cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', ), 'dataset_pool_configuration': DatasetPoolConfiguration(package_order=[ 'psrc_parcel', 'urbansim_parcel', 'urbansim', 'opus_core' ], ), 'base_year': 2000, 'years': (2001, 2001), 'models': [ # models are executed in the same order as in this list "expected_sale_price_model", "development_proposal_choice_model", "building_construction_model", ], "datasets_to_preload": { 'zone': {}, 'household': {}, 'building': {}, #'development_project_proposal': {} }, "datasets_to_cache_after_each_model": [ 'parcel', 'building', 'development_project_proposal', 'household', 'job' ] } #use configuration in config as defaults and merge with config_changes config.replace(config_changes) self.merge(config) self['models_configuration']['development_proposal_choice_model'][ 'controller']["import"] = { "psrc_parcel.models.development_proposal_sampling_model_by_zones": "DevelopmentProposalSamplingModelByZones" } self['models_configuration']['development_proposal_choice_model']['controller']["init"]["name"] =\ "DevelopmentProposalSamplingModelByZones" self['models_configuration']['development_proposal_choice_model'][ 'controller']['run']['arguments']["zones"] = 'zone' self['models_configuration']['development_proposal_choice_model'][ 'controller']['run']['arguments']["type"] = "'non_residential'" self['models_configuration']['expected_sale_price_model'][ 'controller']["init"]['arguments'][ "filter_attribute"] = "'urbansim_parcel.development_project_proposal.is_size_fit'" self['models_configuration']['expected_sale_price_model']['controller']["prepare_for_run"]['arguments']["parcel_filter"] = \ "'numpy.logical_and(numpy.logical_or(numpy.logical_not(urbansim_parcel.parcel.is_residential_land_use_type), numpy.logical_and(parcel.land_use_type_id==26, urbansim_parcel.parcel.is_non_residential_plan_type)), urbansim_parcel.parcel.vacant_land_area > 0)'" #"'numpy.logical_or(parcel.land_use_type_id==26, numpy.logical_and(urbansim_parcel.parcel.is_residential_land_use_type, urbansim_parcel.parcel.vacant_land_area > 0))'" self['models_configuration']['building_construction_model'][ 'controller']["run"]['arguments'][ "consider_amount_built_in_parcels"] = False self['models_configuration']['building_construction_model'][ 'controller']['run']['arguments']["current_year"] = 2000
def __init__(self): opus_home = os.environ['OPUS_HOME'] config = UrbansimParcelConfiguration() config_changes = { 'project_name': 'seattle_parcel', 'description': 'Seattle parcel baseline', 'cache_directory': os.path.join(os.environ['OPUS_HOME'], 'data/vibe_parcel/base_year_data'), 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root=os.path.join(os.environ['OPUS_HOME'], 'data/vibe_parcel/runs'), cache_from_database=True, baseyear_cache=BaseyearCacheConfiguration( existing_cache_to_copy=os.path.join( os.environ['OPUS_HOME'], 'data/vibe_gridcell/base_year_data'), ), cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache=[ 'households', 'persons', 'buildings', 'parcels', 'gridcells', 'zones', "jobs", "households_for_estimation", "jobs_for_estimation", "development_event_history", "travel_data", "building_types", "job_building_types", 'urbansim_constants', "target_vacancies", "home_based_employment_location_choice_model_coefficients", "home_based_employment_location_choice_model_specification", "non_home_based_employment_location_choice_model_coefficients", "non_home_based_employment_location_choice_model_specification", "household_location_choice_model_coefficients", "household_location_choice_model_specification", "real_estate_price_model_coefficients", "real_estate_price_model_specification", "annual_household_control_totals", "annual_relocation_rates_for_households", "household_characteristics_for_ht", "annual_employment_control_totals", "annual_relocation_rates_for_jobs", "land_use_types", "generic_land_use_types", 'employment_sectors', 'employment_adhoc_sector_groups', 'employment_adhoc_sector_group_definitions', 'development_templates', 'development_template_components', 'development_constraints', "building_sqft_per_job", "fazes", "large_areas", "demolition_cost_per_sqft", 'constant_taz_columns' ], tables_to_cache_nchunks={'parcels': 1}, unroll_gridcells=False), 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name='urbansim_export_test', ), 'dataset_pool_configuration': DatasetPoolConfiguration( #package_order=['psrc_parcel', 'urbansim_parcel', 'urbansim', 'opus_core'], #), package_order=[ 'psrc_parcel', 'urbansim_parcel', 'urbansim', 'opus_core' ], ), 'base_year': 1980, 'years': (1981, 1985), 'models': [ # models are executed in the same order as in this list #"process_pipeline_events", # uncomented by model "real_estate_price_model", "expected_sale_price_model", "development_proposal_choice_model", "building_construction_model", "household_transition_model", #"employment_transition_model", "household_relocation_model", "household_location_choice_model", #"employment_relocation_model", #{"employment_location_choice_model":{'group_members': '_all_'}}, #'distribute_unplaced_jobs_model' ], 'models_in_year': { 1980: [ # This is not run anymore, since all jobs are located and only a few households are not. "household_relocation_model_for_1980", "household_location_choice_model_for_1980", #"employment_relocation_model_for_1980", #{"employment_location_choice_model":{'group_members': '_all_'}} ] }, 'flush_dataset_to_cache_after_each_model': False, 'flush_variables': False, 'low_memory_run': False, 'datasets_to_cache_after_each_model': [ "parcel", "building", 'household', #'job', 'development_project_proposal_component', #to be cached for diagnostic purpose (lmwang) 'development_project_proposal', 'travel_data' ], 'unroll_gridcells': False, "datasets_to_preload": { 'zone': {}, 'household': {}, 'building': {}, 'parcel': { 'package_name': 'urbansim_parcel' }, 'person': { 'package_name': 'urbansim_parcel' }, 'development_template': { 'package_name': 'urbansim_parcel' }, 'development_template_component': { 'package_name': 'urbansim_parcel' }, #'job':{}, "building_type": { 'package_name': 'urbansim_parcel' }, 'travel_data': {}, #"job_building_type":{} } } config.replace(config_changes) '''config['models_configuration']["household_location_choice_model"]["controller"]["import"] = \ {"psrc_parcel.models.household_location_choice_model" : "HouseholdLocationChoiceModel"} config['models_configuration']["employment_location_choice_model"]['controller']["import"] = \ {"psrc_parcel.models.employment_location_choice_model" : "EmploymentLocationChoiceModel"} config['models_configuration']["home_based_employment_location_choice_model"]['controller']["import"] = \ {"psrc_parcel.models.employment_location_choice_model" : "EmploymentLocationChoiceModel"} config['models_configuration']['household_relocation_model_for_1980'] = {} config['models_configuration']['household_relocation_model_for_1980']['controller'] = \ HouseholdRelocationModelConfigurationCreator( location_id_name = 'building_id', probabilities = None, rate_table=None, output_index = 'hrm_index').execute() config['models_configuration']['household_location_choice_model_for_1980'] = Configuration( config['models_configuration']['household_location_choice_model'] ) config['models_configuration']['household_location_choice_model_for_1980']['controller']['run']['arguments']['chunk_specification'] = "{'nchunks':1}" config['models_configuration']['household_location_choice_model_for_1980']['controller']['run']['arguments']['maximum_runs'] = 1 config['models_configuration']['employment_relocation_model_for_1980'] = {} config['models_configuration']['employment_relocation_model_for_1980']['controller'] = \ EmploymentRelocationModelConfigurationCreator( location_id_name = 'building_id', probabilities = None, rate_table=None, output_index = 'erm_index').execute()''' if self.multiple_runs: from multiple_runs_modification import MultipleRunsModification MultipleRunsModification().modify_configuration(config) self.merge(config)
def __init__(self): config = UrbansimParcelConfiguration() config_changes = { 'description': 'data preparation for PSRC parcel (households)', 'cache_directory': None, 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root=r'/Users/hana/urbansim_cache/psrc/parcel', #cache_directory_root = r'/urbansim_cache/psrc_parcel', #cache_directory_root = r'/workspace/urbansim_cache/psrc_parcel', cache_from_database=False, baseyear_cache=BaseyearCacheConfiguration( existing_cache_to_copy= r'/Users/hana/urbansim_cache/psrc/cache_source_parcel', #existing_cache_to_copy = r'/urbansim_cache/psrc_parcel/cache_source', #existing_cache_to_copy = r'/workspace/urbansim_cache/psrc_parcel/estimation', years_to_cache=[2000]), cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', ), 'dataset_pool_configuration': DatasetPoolConfiguration(package_order=[ 'psrc_parcel', 'urbansim_parcel', 'urbansim', 'opus_core' ], ), 'base_year': 2000, 'years': (2001, 2001), 'models': [ # models are executed in the same order as in this list "household_relocation_model", "household_location_choice_model", ], "datasets_to_preload": { 'zone': {}, 'household': {}, 'building': {} } } #use configuration in config as defaults and merge with config_changes config.replace(config_changes) self.merge(config) self['models_configuration']['household_location_choice_model'] = {} self['models_configuration']['household_location_choice_model']['controller'] = \ HouseholdLocationChoiceModelByZonesConfigurationCreator( location_set = "building", sampler = None, input_index = 'hrm_index', capacity_string = "urbansim_parcel.building.vacant_residential_units", number_of_units_string = None, nchunks=1, lottery_max_iterations=20 ).execute() self['models_configuration']['household_relocation_model']['controller'] = \ HouseholdRelocationModelConfigurationCreator( location_id_name = 'building_id', probabilities = None, rate_table=None, output_index = 'hrm_index').execute()