def __init__( self, cache_directory, year, travel_model_data_directory='baseline_travel_model_psrc_baseline'): config = AbstractUrbansimConfiguration() config_changes = { 'description': 'baseline with travel model', 'cache_directory': cache_directory, 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', unroll_gridcells=False, tables_to_cache=[], tables_to_copy_to_previous_years={}, ), 'models': [], # run no urbansim models 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name='PSRC_2000_baseyear', ), 'base_year': year, 'years': (year, year), } config.merge(config_changes) years_to_run = { 2005: '2000_06', 2010: '2010_06', 2015: '2010_06', 2020: '2020_06', 2025: '2020_06', 2030: '2030_06', } year_to_run = {year: years_to_run[year]} travel_model_config = create_travel_model_configuration( travel_model_data_directory, mode='get_emme2_data_after_run', years_to_run=year_to_run, emme2_batch_file='QUICKRUN.BAT') config['travel_model_configuration'] = travel_model_config self.merge(config)
def __init__(self, cache_directory, year, travel_model_data_directory='baseline_travel_model_psrc_baseline'): config = AbstractUrbansimConfiguration() config_changes = { 'description':'baseline with travel model', 'cache_directory':cache_directory, 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_mysql_data = 'urbansim.model_coordinators.cache_mysql_data', unroll_gridcells = False, tables_to_cache = [], tables_to_copy_to_previous_years = {}, ), 'models':[], # run no urbansim models 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name = 'PSRC_2000_baseyear', ), 'base_year':year, 'years':(year, year), } config.merge(config_changes) years_to_run = { 2005:'2000_06', 2010:'2010_06', 2015:'2010_06', 2020:'2020_06', 2025:'2020_06', 2030:'2030_06', } year_to_run = {year:years_to_run[year]} travel_model_config = create_travel_model_configuration(travel_model_data_directory, mode='get_emme2_data', years_to_run = year_to_run, emme2_batch_file='QUICKRUN.BAT') config['travel_model_configuration'] = travel_model_config self.merge(config)
def setUp(self): self.storage = dict_storage() self.storage.write_table(table_name='development_type_groups', table_data={ "group_id": array([1, 2, 3, 4]), "name": array([ 'residential', 'commercial', 'industrial', 'governmental' ]), }) run_configuration = AbstractUrbansimConfiguration() self.model_configuration = run_configuration['models_configuration'] SessionConfiguration( new_instance=True, package_order=run_configuration['dataset_pool_configuration']. package_order, in_storage=self.storage)
# See opus_core/LICENSE import os from opus_core.database_management.configurations.scenario_database_configuration import ScenarioDatabaseConfiguration from opus_core.configurations.dataset_pool_configuration import DatasetPoolConfiguration from opus_core.configurations.baseyear_cache_configuration import BaseyearCacheConfiguration #from urbansim.estimation.config import config from urbansim.configs.base_configuration import AbstractUrbansimConfiguration from urbansim.configurations.creating_baseyear_cache_configuration import CreatingBaseyearCacheConfiguration from randstad.run_config.controller_config import models_configuration run_configuration = AbstractUrbansimConfiguration() my_run_configuration = { 'models_configuration':models_configuration, 'scenario_database_configuration':ScenarioDatabaseConfiguration( database_name = 'randstad_021105_estimation', ), #'cache_directory':'C:/urbansim_cache/randstad_source', 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = 'C:/urbansim_cache/randstad', cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', unroll_gridcells = False, cache_from_database = False, # location of existing baseyear cache to use baseyear_cache = BaseyearCacheConfiguration( existing_cache_to_copy = r'C:\urbansim_cache\randstad\run_618.2006_07_16_18_06',
def __init__(self): config = AbstractUrbansimConfiguration() db_server = DatabaseServer(ScenarioDatabaseConfiguration()) db = db_server.get_database('PSRC_2000_baseyear') config_changes = { 'description':'baseline with travel model', 'in_storage':StorageFactory().get_storage('sql_storage', storage_location = db ), 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = 'd:/urbansim_cache', cache_from_database = True, baseyear_cache = BaseyearCacheConfiguration( r'D:\urbansim_cache\run_1417.2006_12_08_01_50'), cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache = [ 'annual_employment_control_totals', 'annual_household_control_totals', 'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', 'travel_data', 'zones', 'counties', 'commercial_development_location_choice_model_coefficients', 'commercial_development_location_choice_model_specification', 'commercial_employment_location_choice_model_coefficients', 'commercial_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_specification', 'industrial_development_location_choice_model_coefficients', 'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', 'fazes', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', 'land_price_model_coefficients', 'land_price_model_specification', 'residential_land_share_model_coefficients', 'residential_land_share_model_specification', 'plan_type_group_definitions', 'plan_type_groups', 'large_areas', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', 'annual_relocation_rates_for_jobs', 'base_year', 'cities', 'development_events', 'development_type_groups', 'employment_adhoc_sector_group_definitions', 'employment_adhoc_sector_groups', 'employment_events', 'employment_sectors', 'land_use_events', 'plan_types', 'race_names', 'target_vacancies', 'jobs_for_estimation', 'households_for_estimation', 'development_events_exogenous', 'job_building_types' ], tables_to_cache_nchunks = {'gridcells': 4}, tables_to_copy_to_previous_years = { 'development_type_groups': 1995, 'development_types': 1995, 'development_type_group_definitions': 1995, }, ), 'models':[], # run no urbansim models 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name = 'PSRC_2000_baseyear', ), 'base_year':2000, 'years':(2001, 2002), 'unroll_gridcells':False } config.merge(config_changes) travel_model_config = create_travel_model_configuration('baseline_travel_model_psrc_fresh', mode='get_emme2_data_after_run', years_to_run = {2001:'2000_06'}, emme2_batch_file='MODEL05.BAT') config['travel_model_configuration'] = travel_model_config self.merge(config)
def __init__(self): from copy import deepcopy config = deepcopy(AbstractUrbansimConfiguration()) cache_directory = os.path.join(package().get_opus_core_path(), 'data', 'test_cache') config_changes = { 'description': 'Test cache', 'base_year': 1980, 'years': (1981, 1982), 'models': [ 'prescheduled_events', 'events_coordinator', 'residential_land_share_model', 'land_price_model', 'development_project_transition_model', 'residential_development_project_location_choice_model', 'commercial_development_project_location_choice_model', 'industrial_development_project_location_choice_model', 'development_event_transition_model', 'events_coordinator', 'residential_land_share_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', ], 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name='eugene_1980_baseyear', ), 'cache_directory': cache_directory, 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root='c:/urbansim_cache', cache_from_database=False, baseyear_cache=BaseyearCacheConfiguration( existing_cache_to_copy=cache_directory, ), cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache=[ 'annual_employment_control_totals', 'annual_household_control_totals', 'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', 'travel_data', 'zones', 'counties', 'commercial_development_location_choice_model_coefficients', 'commercial_development_location_choice_model_specification', 'commercial_employment_location_choice_model_coefficients', 'commercial_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_specification', 'industrial_development_location_choice_model_coefficients', 'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', #'fazes', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', 'land_price_model_coefficients', 'land_price_model_specification', 'residential_land_share_model_coefficients', 'residential_land_share_model_specification', #'plan_type_group_definitions', #'plan_type_groups', #'large_areas', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', 'annual_relocation_rates_for_jobs', 'base_year', 'cities', #'development_events', 'development_type_groups', 'employment_adhoc_sector_group_definitions', 'employment_adhoc_sector_groups', 'employment_sectors', 'plan_types', 'race_names', 'target_vacancies' #'jobs_for_estimation', #'households_for_estimation', #'development_events_exogenous', ], tables_to_cache_nchunks={'gridcells': 1}, tables_to_copy_to_previous_years={ 'development_type_group_definitions': 1975, 'development_type_groups': 1975, 'development_types': 1975, 'urbansim_constants': 1975, }, ), } config.merge(config_changes) self.merge(config)
def __init__(self): config = AbstractUrbansimConfiguration() config_changes = { "project_name": "washtenaw", "description": "Region Pilot Baseline", "scenario_database_configuration": ScenarioDatabaseConfiguration(database_name="washtenaw_class"), "models": [ "prescheduled_events", "events_coordinator", "residential_land_share_model", "land_price_model", "regional_development_project_transition_model", "residential_regional_development_project_location_choice_model", "commercial_regional_development_project_location_choice_model", "industrial_regional_development_project_location_choice_model", "development_event_transition_model", "events_coordinator", "residential_land_share_model", "jobs_event_model", #'households_event_model', "regional_household_transition_model", "regional_household_relocation_model", "regional_household_location_choice_model", "regional_employment_transition_model", "regional_employment_relocation_model", {"regional_employment_location_choice_model": {"group_members": ["_all_"]}}, "regional_distribute_unplaced_jobs_model", ], "cache_directory": None, ### TODO: Set this cache_directory to something useful. "creating_baseyear_cache_configuration": CreatingBaseyearCacheConfiguration( cache_directory_root="/urbansim_cache/washtenaw", cache_from_database=True, baseyear_cache=BaseyearCacheConfiguration( existing_cache_to_copy="/urbansim_cache/washtenaw/cache_source" ), cache_scenario_database="urbansim.model_coordinators.cache_scenario_database", tables_to_cache=self.tables_to_cache, tables_to_cache_nchunks={"gridcells": 1}, tables_to_copy_to_previous_years=self.tables_to_copy_to_previous_years, ), "datasets_to_preload": { "development_constraint": {}, "development_event_history": {}, "development_type": {}, "gridcell": {"nchunks": 2}, "household": {}, "job": {}, "job_building_type": {}, "target_vacancy": {}, "zone": {}, "jobs_event": {}, #'households_event': {}, }, "dataset_pool_configuration": DatasetPoolConfiguration( package_order=["washtenaw", "urbansim", "opus_core"] ), "base_year": 2005, "years": (2006, 2010), } config.merge(config_changes) self.merge(config) self.merge_with_controller() try: exec("from %s_local_config import my_configuration" % getuser()) local_config = True except: logger.log_note("No user's settings found or error occured when loading.") local_config = False if local_config: self.merge(my_configuration)
# Opus/UrbanSim urban simulation software. # Copyright (C) 2005-2009 University of Washington # See opus_core/LICENSE #from urbansim.estimation.config import config from urbansim.configs.base_configuration import AbstractUrbansimConfiguration from numpy import array import os from urbansim.datasets.development_event_dataset import DevelopmentEventTypeOfChange run_configuration = AbstractUrbansimConfiguration() models_configuration = run_configuration['models_configuration'] config_changes = { 'landuse_development_types': { 'residential': { 'units': 'residential_units', 'residential': True, }, 'commercial': { 'units': 'commercial_sqft', 'residential': False, }, 'industrial': { 'units': 'industrial_sqft', 'residential': False, }, 'governmental': { 'units': 'governmental_sqft', 'residential': False, },
# Opus/UrbanSim urban simulation software. # Copyright (C) 2010-2011 University of California, Berkeley, 2005-2009 University of Washington # See opus_core/LICENSE from opus_core.configuration import Configuration from urbansim.configs.base_configuration import AbstractUrbansimConfiguration class EstimationBaseConfig(Configuration): def __init__(self, base_configuration=AbstractUrbansimConfiguration): config = base_configuration() config.merge(get_changes_for_estimation(config)) self.merge(config) def get_changes_for_estimation(config): estimation_configuration = {} if "base_year" in config: estimation_configuration["years"] = range(config["base_year"], config["base_year"]) estimation_configuration["sample_size_locations"] = 30 estimation_configuration["seed"] = 1,#(1,1) return estimation_configuration run_configuration = AbstractUrbansimConfiguration() estimation_configuration = get_changes_for_estimation(run_configuration) run_configuration.merge(estimation_configuration)
def setUp(self): """specify the development event history for the gridcells. here, we simulate 50 residential units and 5000 commercial, industrial, and governmental sqft added to each of the gridcells in previous years. Also, we specify $1000 in value added to each gridcell for residential, commercial, industrial, governmental. These values are so boring because they really don't matter for this test case, where there will be absolutely no development, and thus, nothing will be sampled from the development_history""" self.storage = StorageFactory().get_storage('dict_storage') self.storage.write_table(table_name='development_event_history', table_data={ "grid_id": arange(1, 100 + 1), "scheduled_year": array(100 * [1999]), "residential_units": array(100 * [50]), "commercial_sqft": array(100 * [5000]), "industrial_sqft": array(100 * [5000]), "governmental_sqft": array(100 * [5000]), "residential_improvement_value": array(100 * [1000]), "commercial_improvement_value": array(100 * [1000]), "industrial_improvement_value": array(100 * [1000]), "governmental_improvement_value": array(100 * [1000]) }) # create 100 gridcells, each with 200 residential units and space for 100 commercial jobs, # 100 industrial jobs, and residential, industrial, and commercial value at $500,000 each self.storage.write_table(table_name='gridcells', table_data={ "grid_id": arange(1, 100 + 1), "residential_units": array(100 * [200]), "commercial_sqft": array(100 * [10000]), "commercial_sqft_per_job": array(100 * [100]), "industrial_sqft": array(100 * [10000]), "industrial_sqft_per_job": array(100 * [100]), "residential_improvement_value": array(100 * [500000]), "commercial_improvement_value": array(100 * [500000]), "industrial_improvement_value": array(100 * [500000]) }) # create 10000 households, 100 in each of the 100 gridcells. # there will initially be 100 vacant residential units in each gridcell then. self.storage.write_table(table_name='households', table_data={ "household_id": arange(1, 10000 + 1), "grid_id": array(100 * range(1, 100 + 1)) }) self.storage.write_table(table_name='job_building_types', table_data={ "id": array([ Constants._governmental_code, Constants._commercial_code, Constants._industrial_code, Constants._residential_code ]), "name": array([ "governmental", "commercial", "industrial", "home_based" ]), "home_based": array([0, 0, 0, 1]) }) # create 2500 commercial jobs and distribute them equally across the 100 gridcells, # 25 commercial jobs/gridcell self.storage.write_table(table_name='jobs', table_data={ "job_id": arange(1, 2500 + 1), "grid_id": array(25 * range(1, 100 + 1)), "sector_id": array(2500 * [1]), "home_based": array(2500 * [0]), "building_type": array(2500 * [Constants._commercial_code]) }) self.storage.write_table(table_name='urbansim_constants', table_data={ "acres": array([105.0]), }) self.dataset_pool = DatasetPool(package_order=['urbansim'], storage=self.storage) self.compute_resources = Resources({ "household": self.dataset_pool.get_dataset('household'), "job": self.dataset_pool.get_dataset('job'), "job_building_type": self.dataset_pool.get_dataset('job_building_type'), 'urbansim_constant': self.dataset_pool.get_dataset('urbansim_constant'), }) # # ? dynamically get these datasets? # Replace uses of 'constants' with 'urbansim_constant'? # from urbansim.configs.base_configuration import AbstractUrbansimConfiguration # fake development project models #dev_models = { #'residential_model':{ #'controller':{ #'init':{ #'arguments':{ #'project_type':'residential', #'residential':True, #'units':'residential_units' #} #}, #'prepare_for_estimate':{ #'arguments':{ #'categories':[1, 2, 3, 5, 10, 20] #} #} #} #}, #'commercial_model':{ #'controller':{ #'init':{ #'arguments':{ #'project_type':'commercial', #'residential':False, #'units': 'commercial_sqft' #} #}, #'prepare_for_estimate':{ #'arguments': { #'categories':[1000, 2000, 5000, 10000] #} #} #} #}, #'industrial_model':{ #'controller':{ #'init':{ #'arguments':{ #'project_type':'industrial', #'residential':False, #'units':'industrial_sqft' #} #}, #'prepare_for_estimate':{ #'arguments':{ #'categories':[1000, 2000, 5000, 10000] #} #} #} #} #} self.models_configuration = AbstractUrbansimConfiguration( )['models_configuration']
def __init__(self): config = AbstractUrbansimConfiguration() config_changes = { 'project_name':'washtenaw', 'description':'Region Pilot Baseline', 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name = 'washtenaw_class', ), 'models': [ 'prescheduled_events', 'events_coordinator', 'residential_land_share_model', 'land_price_model', 'regional_development_project_transition_model', 'residential_regional_development_project_location_choice_model', 'commercial_regional_development_project_location_choice_model', 'industrial_regional_development_project_location_choice_model', 'development_event_transition_model', 'events_coordinator', 'residential_land_share_model', 'jobs_event_model', #'households_event_model', 'regional_household_transition_model', 'regional_household_relocation_model', 'regional_household_location_choice_model', 'regional_employment_transition_model', 'regional_employment_relocation_model', {'regional_employment_location_choice_model': {'group_members': ['_all_']}}, 'regional_distribute_unplaced_jobs_model' ], 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = "/urbansim_cache/washtenaw", cache_from_database = True, baseyear_cache = BaseyearCacheConfiguration( existing_cache_to_copy = "/urbansim_cache/washtenaw/cache_source", ), cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache = self.tables_to_cache, tables_to_cache_nchunks = {'gridcells': 1}, tables_to_copy_to_previous_years = self.tables_to_copy_to_previous_years, ), 'datasets_to_preload': { 'development_constraint': {}, 'development_event_history': {}, 'development_type': {}, 'gridcell': {'nchunks': 2}, 'household': {}, 'job': {}, 'job_building_type': {}, 'target_vacancy': {}, 'zone': {}, 'jobs_event': {}, #'households_event': {}, }, 'dataset_pool_configuration': DatasetPoolConfiguration( package_order=['washtenaw', 'urbansim', 'opus_core'], ), 'base_year':2005, 'years':(2006, 2010), } config.merge(config_changes) self.merge(config) self.merge_with_controller() try: exec('from %s_local_config import my_configuration' % getuser()) local_config = True except: logger.log_note("No user's settings found or error occured when loading.") local_config = False if local_config: self.merge(my_configuration)
# Opus/UrbanSim urban simulation software. # Copyright (C) 2005-2009 University of Washington # See opus_core/LICENSE import os from opus_core.storage_factory import StorageFactory from opus_core.database_management.configurations.scenario_database_configuration import ScenarioDatabaseConfiguration from opus_core.database_management.configurations.estimation_database_configuration import EstimationDatabaseConfiguration from urbansim.configs.base_configuration import AbstractUrbansimConfiguration from urbansim.configurations.creating_baseyear_cache_configuration import CreatingBaseyearCacheConfiguration from opus_core.database_management.database_server import DatabaseServer config = AbstractUrbansimConfiguration() db_server = DatabaseServer(ScenarioDatabaseConfiguration()) db = db_server.get_database('PSRC_2000_scenario_E_constrained_king_county') config_changes = { 'description': 'constrained king county capacity baseline with full travel model', 'in_storage': StorageFactory().get_storage('sql_storage', storage_location=db), 'cache_directory': None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root='d:/urbansim_cache', cache_from_database=True, cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database',
# Copyright (C) 2005-2009 University of Washington # See opus_core/LICENSE import os from opus_core.database_management.configurations.scenario_database_configuration import ScenarioDatabaseConfiguration from opus_core.configurations.dataset_pool_configuration import DatasetPoolConfiguration from opus_core.configurations.baseyear_cache_configuration import BaseyearCacheConfiguration #from urbansim.estimation.config import config from urbansim.configs.base_configuration import AbstractUrbansimConfiguration from urbansim.configurations.creating_baseyear_cache_configuration import CreatingBaseyearCacheConfiguration from randstad.run_config.controller_config import models_configuration run_configuration = AbstractUrbansimConfiguration() my_run_configuration = { 'models_configuration':models_configuration, 'scenario_database_configuration':ScenarioDatabaseConfiguration( database_name = 'randstad_021105_estimation', ), #'cache_directory':'C:/urbansim_cache/randstad_source', 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = 'C:/urbansim_cache/randstad', cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', unroll_gridcells = False, cache_from_database = False, # location of existing baseyear cache to use baseyear_cache = BaseyearCacheConfiguration( existing_cache_to_copy = r'C:\urbansim_cache\randstad\run_618.2006_07_16_18_06',
def __init__(self): AbstractUrbansimConfiguration.__init__(self) config_changes = { 'project_name':'vibe_gridcell', 'description':'Eugene baseline', 'base_year':1980, 'years':(1981,1982,1983), 'models': [ 'prescheduled_events', 'events_coordinator', #'residential_land_share_model', #'fertility_model' #'land_price_model', #'development_project_transition_model', #'residential_development_project_location_choice_model', #'commercial_development_project_location_choice_model', #'industrial_development_project_location_choice_model', #'development_event_transition_model', #'events_coordinator', #'residential_land_share_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', ], #'scenario_database_configuration': ScenarioDatabaseConfiguration(database_name = 'eugen_base_year_data_1980'), #'scenario_database_configuration': ScenarioDatabaseConfiguration(database_name = 'vibe_base_year_data_1980'), 'scenario_database_configuration': ScenarioDatabaseConfiguration(database_name = 'urbansim_export_test'), 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( #cache_directory_root = os.path.join(os.environ['OPUS_HOME'], 'data/eugene_gridcell/runs'), cache_directory_root = os.path.join(os.environ['OPUS_HOME'], 'data/vibe_gridcell/runs'), #cache_scenario_database = storage, 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 = [ #'annual_employment_control_totals', 'annual_household_control_totals', #'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', #'travel_data', 'zones', #'counties', #'commercial_development_location_choice_model_coefficients', #'commercial_development_location_choice_model_specification', #'commercial_employment_location_choice_model_coefficients', #'commercial_employment_location_choice_model_specification', #'home_based_employment_location_choice_model_specification', #'home_based_employment_location_choice_model_coefficients', #'industrial_employment_location_choice_model_coefficients', #'industrial_employment_location_choice_model_specification', #'industrial_development_location_choice_model_coefficients', #'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', #'land_price_model_coefficients', #'land_price_model_specification', #'residential_land_share_model_coefficients', #'residential_land_share_model_specification', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', #'annual_relocation_rates_for_jobs', 'base_year', #'cities', 'development_type_groups', #'employment_adhoc_sector_group_definitions', #'employment_adhoc_sector_groups', #'employment_sectors', 'plan_types', 'plan_type_groups', 'plan_type_group_definitions', 'race_names', 'target_vacancies', #'jobs_for_estimation', 'households_for_estimation', ], tables_to_cache_nchunks = {'gridcells': 1}, tables_to_copy_to_previous_years = { 'development_type_group_definitions': 1975, 'development_type_groups': 1975, 'development_types': 1975, 'development_constraints':1975, 'urbansim_constants': 1975, }, ), 'dataset_pool_configuration': DatasetPoolConfiguration( package_order=['vibe_min', 'urbansim', 'opus_core'], ), } self.merge(config_changes)
def __init__(self): config = AbstractUrbansimConfiguration() db_server = DatabaseServer(ScenarioDatabaseConfiguration()) db = db_server.get_database("PSRC_2000_baseyear") config_changes = { "description": "baseline with travel model", "in_storage": StorageFactory().get_storage("sql_storage", storage_location=db), "cache_directory": None, ### TODO: Set this cache_directory to something useful. "creating_baseyear_cache_configuration": CreatingBaseyearCacheConfiguration( cache_directory_root="d:/urbansim_cache", cache_from_database=True, baseyear_cache=BaseyearCacheConfiguration(r"D:\urbansim_cache\run_1417.2006_12_08_01_50"), cache_scenario_database="urbansim.model_coordinators.cache_scenario_database", tables_to_cache=[ "annual_employment_control_totals", "annual_household_control_totals", "buildings", "building_types", "development_event_history", "gridcells", "households", "job_building_types", "jobs", "travel_data", "zones", "counties", "commercial_development_location_choice_model_coefficients", "commercial_development_location_choice_model_specification", "commercial_employment_location_choice_model_coefficients", "commercial_employment_location_choice_model_specification", "home_based_employment_location_choice_model_specification", "home_based_employment_location_choice_model_coefficients", "industrial_employment_location_choice_model_coefficients", "industrial_employment_location_choice_model_specification", "industrial_development_location_choice_model_coefficients", "industrial_development_location_choice_model_specification", "residential_development_location_choice_model_coefficients", "residential_development_location_choice_model_specification", "fazes", "urbansim_constants", "household_location_choice_model_coefficients", "household_location_choice_model_specification", "land_price_model_coefficients", "land_price_model_specification", "residential_land_share_model_coefficients", "residential_land_share_model_specification", "plan_type_group_definitions", "plan_type_groups", "large_areas", "household_characteristics_for_ht", "development_types", "development_type_group_definitions", "development_constraints", "annual_relocation_rates_for_households", "annual_relocation_rates_for_jobs", "base_year", "cities", "development_events", "development_type_groups", "employment_adhoc_sector_group_definitions", "employment_adhoc_sector_groups", "employment_events", "employment_sectors", "land_use_events", "plan_types", "race_names", "target_vacancies", "jobs_for_estimation", "households_for_estimation", "development_events_exogenous", "job_building_types", ], tables_to_cache_nchunks={"gridcells": 4}, tables_to_copy_to_previous_years={ "development_type_groups": 1995, "development_types": 1995, "development_type_group_definitions": 1995, }, ), "models": [], # run no urbansim models "scenario_database_configuration": ScenarioDatabaseConfiguration(database_name="PSRC_2000_baseyear"), "base_year": 2000, "years": (2001, 2001), "unroll_gridcells": False, } config.merge(config_changes) travel_model_config = create_travel_model_configuration( "baseline_travel_model_psrc_fresh", mode="get_emme2_data_after_run", years_to_run={2001: "2000_06"}, emme2_batch_file="QUICKRUN.BAT", ) config["travel_model_configuration"] = travel_model_config self.merge(config)
# Opus/UrbanSim urban simulation software. # Copyright (C) 2005-2009 University of Washington # See opus_core/LICENSE from opus_core.configuration import Configuration from urbansim.configs.base_configuration import AbstractUrbansimConfiguration class EstimationBaseConfig(Configuration): def __init__(self, base_configuration=AbstractUrbansimConfiguration): config = base_configuration() config.merge(get_changes_for_estimation(config)) self.merge(config) def get_changes_for_estimation(config): estimation_configuration = {} if "base_year" in config: estimation_configuration["years"] = range(config["base_year"], config["base_year"]) estimation_configuration["sample_size_locations"] = 30 estimation_configuration["seed"] = 1, #(1,1) return estimation_configuration run_configuration = AbstractUrbansimConfiguration() estimation_configuration = get_changes_for_estimation(run_configuration) run_configuration.merge(estimation_configuration)
def __init__(self): AbstractUrbansimConfiguration.__init__(self) config_changes = { 'project_name': 'vibe_gridcell', 'description': 'Eugene baseline', 'base_year': 1980, 'years': (1981, 1982, 1983), 'models': [ 'prescheduled_events', 'events_coordinator', #'residential_land_share_model', #'fertility_model' #'land_price_model', #'development_project_transition_model', #'residential_development_project_location_choice_model', #'commercial_development_project_location_choice_model', #'industrial_development_project_location_choice_model', #'development_event_transition_model', #'events_coordinator', #'residential_land_share_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', ], #'scenario_database_configuration': ScenarioDatabaseConfiguration(database_name = 'eugen_base_year_data_1980'), #'scenario_database_configuration': ScenarioDatabaseConfiguration(database_name = 'vibe_base_year_data_1980'), 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name='urbansim_export_test'), 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( #cache_directory_root = os.path.join(os.environ['OPUS_HOME'], 'data/eugene_gridcell/runs'), cache_directory_root=os.path.join(os.environ['OPUS_HOME'], 'data/vibe_gridcell/runs'), #cache_scenario_database = storage, 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=[ #'annual_employment_control_totals', 'annual_household_control_totals', #'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', #'travel_data', 'zones', #'counties', #'commercial_development_location_choice_model_coefficients', #'commercial_development_location_choice_model_specification', #'commercial_employment_location_choice_model_coefficients', #'commercial_employment_location_choice_model_specification', #'home_based_employment_location_choice_model_specification', #'home_based_employment_location_choice_model_coefficients', #'industrial_employment_location_choice_model_coefficients', #'industrial_employment_location_choice_model_specification', #'industrial_development_location_choice_model_coefficients', #'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', #'land_price_model_coefficients', #'land_price_model_specification', #'residential_land_share_model_coefficients', #'residential_land_share_model_specification', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', #'annual_relocation_rates_for_jobs', 'base_year', #'cities', 'development_type_groups', #'employment_adhoc_sector_group_definitions', #'employment_adhoc_sector_groups', #'employment_sectors', 'plan_types', 'plan_type_groups', 'plan_type_group_definitions', 'race_names', 'target_vacancies', #'jobs_for_estimation', 'households_for_estimation', ], tables_to_cache_nchunks={'gridcells': 1}, tables_to_copy_to_previous_years={ 'development_type_group_definitions': 1975, 'development_type_groups': 1975, 'development_types': 1975, 'development_constraints': 1975, 'urbansim_constants': 1975, }, ), 'dataset_pool_configuration': DatasetPoolConfiguration( package_order=['vibe_min', 'urbansim', 'opus_core'], ), } self.merge(config_changes)
def __init__(self): AbstractUrbansimConfiguration.__init__(self) models_configuration = self['models_configuration'] self['project_name'] = 'urbansim_parcel' ## employment_location_choice_model is defined for gridcells at urbansim package if "home_based_employment_location_choice_model" in models_configuration: del models_configuration["home_based_employment_location_choice_model"] if "non_home_based_employment_location_choice_model" in models_configuration: del models_configuration["non_home_based_employment_location_choice_model"] models_configuration['workplace_choice_model_for_resident'] = { "estimation":"opus_core.bhhh_mnl_estimation", "sampler":"opus_core.samplers.weighted_sampler", "sample_size_locations":30, "weights_for_estimation_string":"is_placed_job=(urbansim_parcel.job.zone_id > 0).astype(int32)", "compute_capacity_flag":True, "capacity_string":"urbansim_parcel.job.is_untaken_non_home_based_job", #"capacity_string":"(job.building_type==2).astype(int32)", ### each non home-based job can only be chosen once by one person "number_of_units_string":"(job.building_type==2).astype(int32)", 'lottery_max_iterations': 10, 'number_of_agents_string': 'job.number_of_agents(person)', # "sampler":"opus_core.samplers.stratified_sampler", # "stratum":"district_id = job.disaggregate(psrc_parcel.building.district_id)", # "sample_size_from_each_stratum": 5, # "sample_size_from_chosen_stratum":4, # "include_chosen_choice":True, # "sample_size_locations":95, # "weights_for_estimation_string":"is_placed_job=(urbansim_parcel.job.zone_id > 0).astype(int32)", # "compute_capacity_flag":True, # "capacity_string":"(job.building_type==2).astype(int32)", # ### each non home-based job can only be chosen once by one person # "number_of_units_string":"(job.building_type==2).astype(int32)", } my_controller_configuration = { 'real_estate_price_model': { "import": {"urbansim.models.real_estate_price_model": "RealEstatePriceModel"}, "init": { "name": "RealEstatePriceModel", "arguments": {"submodel_string": "'land_use_type_id'", "outcome_attribute": "'ln_unit_price=ln(urbansim_parcel.parcel.unit_price)'", "filter_attribute": "'numpy.logical_or(urbansim_parcel.parcel.building_sqft, urbansim_parcel.parcel.is_land_use_type_vacant)'", "dataset_pool": "dataset_pool", "estimate_config": "{'save_predicted_values_and_errors':True}" }, }, "prepare_for_run": { "name": "prepare_for_run", "arguments": {"specification_storage": "base_cache_storage", "specification_table": "'real_estate_price_model_specification'", "coefficients_storage": "base_cache_storage", "coefficients_table": "'real_estate_price_model_coefficients'"}, "output": "(specification, coefficients)" }, "run": { "arguments": { "specification": "specification", "coefficients":"coefficients", "dataset": "parcel", "data_objects": "datasets", "run_config": "Resources({'exclude_outliers_from_initial_error': True, 'outlier_is_less_than': %s, 'outlier_is_greater_than': %s})" % (log(UNIT_PRICE_RANGE[0]), log(UNIT_PRICE_RANGE[1])) } }, "prepare_for_estimate": { "name": "prepare_for_estimate", "arguments": {"specification_storage": "base_cache_storage", "specification_table": "'real_estate_price_model_specification'", "filter_variable":"'numpy.logical_and(urbansim_parcel.parcel.unit_price>%s,urbansim_parcel.parcel.unit_price<%s, urbansim_parcel.parcel.existing_units>100)'" % (UNIT_PRICE_RANGE[0], UNIT_PRICE_RANGE[1]), "dataset": "parcel", "threshold": 0}, "output": "(specification, index)" }, "estimate": { "arguments": { "specification": "specification", "outcome_attribute": "'ln_unit_price=ln(urbansim_parcel.parcel.unit_price)'", "dataset": "parcel", "index": "index", "data_objects": "datasets", "debuglevel": 'debuglevel', #'procedure': "'opus_core.bma_for_linear_regression_r'", }, "output": "(coefficients, dummy)" } }, 'employment_transition_model': EmploymentTransitionModelConfigurationCreator( location_id_name="building_id" ).execute(), 'employment_relocation_model': EmploymentRelocationModelConfigurationCreator( location_id_name = 'building_id', output_index = 'erm_index').execute(), 'employment_location_choice_model': EmploymentLocationChoiceModelConfigurationCreator( sample_size_locations = 60, location_set = "building", input_index = 'erm_index', estimation_weight_string = None, #agents_for_estimation_table = None, # will take standard jobs table agents_for_estimation_table = "jobs_for_estimation", join_datasets = True, #estimation_size_agents = 0.3, number_of_units_string = "total_SSS_job_space", filter = "building.non_residential_sqft>0", filter_for_estimation = "numpy.logical_and(job.building_id>0, job.disaggregate(building.non_residential_sqft) > 0)", #filter_for_estimation = "numpy.logical_and(job.building_id>0,job.join_flag<3)", portion_to_unplace = 0, capacity_string = "vacant_SSS_job_space", variable_package = "urbansim_parcel", lottery_max_iterations = 10 ).execute(), 'home_based_employment_location_choice_model': EmploymentLocationChoiceModelConfigurationCreator( location_set = "building", input_index = 'erm_index', estimation_weight_string = "vacant_home_based_job_space", #"pre_2001=building.year_built<=2000", agents_for_estimation_table = None, # will take standard jobs table estimation_size_agents = 0.4, number_of_units_string = None, filter = "numpy.logical_and(building.residential_units, building.sqft_per_unit)", filter_for_estimation = "numpy.logical_and(job.building_id>0, job.disaggregate(building.sqft_per_unit>0))", portion_to_unplace = 0, capacity_string = "vacant_home_based_job_space", variable_package = "urbansim_parcel", lottery_max_iterations = 7 ).execute(), 'distribute_unplaced_jobs_model': DistributeUnplacedJobsModelConfigurationCreator( location_set = 'building', filter = 'urbansim_parcel.building.is_governmental', agents_filter = 'urbansim.job.is_in_employment_sector_group_scalable_sectors' ).execute(), 'distribute_unplaced_mining_utilities_jobs_model': DistributeUnplacedJobsModelConfigurationCreator( location_set = 'building', filter = None, agents_filter = 'numpy.logical_or(job.sector_id==1, job.sector_id==9)' ).execute(), 'governmental_employment_location_choice_model': GovernmentalEmploymentLocationChoiceModelConfigurationCreator( input_index = 'erm_index', location_set = 'building', filter = 'urbansim_parcel.building.is_governmental' ).execute(), "household_relocation_model" : { "import": {"urbansim.models.household_relocation_model_creator": "HouseholdRelocationModelCreator" }, "init": { "name": "HouseholdRelocationModelCreator().get_model", "arguments": { "debuglevel": 'debuglevel', "location_id_name": "'building_id'", }, }, "prepare_for_run": { "name": "prepare_for_run", "arguments": {"what": "'households'", "rate_storage": "base_cache_storage", "rate_table": "'annual_relocation_rates_for_households'"}, "output": "hrm_resources" }, "run": { "arguments": {"agent_set": "household", "resources": "hrm_resources"}, "output": "hrm_index" } }, "process_pipeline_events":{ "import": {"urbansim_parcel.models.process_pipeline_events": "ProcessPipelineEvents"}, "init": { "name": "ProcessPipelineEvents"}, "run": { "arguments": {'building_dataset': 'building', 'year':'year', "storage": "base_cache_storage"}, "output": "scheduled_development_events" } }, "tour_schedule_model":{ "import": {"urbansim_parcel.models.tour_schedule_model": "TourScheduleModel"}, "init": { "name": "TourScheduleModel"}, "run": { "arguments": {'person_set': 'person', 'tour_set': 'tour', 'tour_filter': "'tour.w2h_act == 1'" }, "output": "sampled_tour" } }, 'household_transition_model': { 'import': { 'urbansim_parcel.models.household_transition_model': 'HouseholdTransitionModel' }, 'init': { 'arguments': {'debuglevel': 'debuglevel'}, 'name': 'HouseholdTransitionModel' }, 'prepare_for_run': { 'arguments': {'storage': 'base_cache_storage'}, 'name': 'prepare_for_run', 'output': '(control_totals, characteristics)' }, 'run': { 'arguments': { 'characteristics': 'characteristics', 'control_totals': 'control_totals', 'person_set': 'person', 'household_set': 'household', 'year': 'year' } } }, # configuration for parcel-based developer model 'expected_sale_price_model': { "import": {"urbansim_parcel.models.development_project_proposal_regression_model": "DevelopmentProjectProposalRegressionModel"}, "init": { "name": "DevelopmentProjectProposalRegressionModel", "arguments": {"submodel_string": "'land_use_type_id=development_project_proposal.disaggregate(development_template.land_use_type_id)'", #"submodel_string": "'building_type_id=development_project_proposal.disaggregate(development_template.building_type_id)'", #"filter_attribute": "'urbansim_parcel.development_project_proposal.is_viable'", "filter_attribute": "'urbansim_parcel.development_project_proposal.is_size_fit'", "outcome_attribute_name":"'ln_unit_price_expected'", "dataset_pool": "dataset_pool" }, }, "prepare_for_run": { "name": "prepare_for_run", "arguments": {"parcel_filter_for_new_development":"'has_vacant_land=urbansim_parcel.parcel.vacant_land_area > 0'", "parcel_filter_for_redevelopment":"'low_improvement_ratio_of_parcels_with_bldg=(parcel.number_of_agents(building)>0)*(urbansim_parcel.parcel.improvement_value / ( urbansim_parcel.parcel.unit_price * urbansim_parcel.parcel.existing_units ) < 0.1)*(parcel.aggregate(urbansim_parcel.building.age_masked, function=mean)>30)'", "template_filter":"'development_template.is_active > 0'", "specification_storage": "base_cache_storage", "specification_table": "'real_estate_price_model_specification'", "coefficients_storage": "base_cache_storage", "coefficients_table": "'real_estate_price_model_coefficients'", "spec_replace_module_variable_pair": "('psrc_parcel.estimation.repm_specification', 'variables_for_development_project_proposal')", "dataset_pool": "dataset_pool",}, "output": "(development_project_proposal, specification, coefficients)" }, "run": { "arguments": { "specification": "specification", "coefficients":"coefficients", "dataset": 'development_project_proposal', "data_objects": "datasets" }, "output":"development_project_proposal" #get the development project proposal back }, }, 'development_proposal_choice_model': { "import": {"urbansim_parcel.models.development_project_proposal_sampling_model": "DevelopmentProjectProposalSamplingModel"}, "init": { "name": "DevelopmentProjectProposalSamplingModel", "arguments": {"proposal_set": "development_project_proposal", #weight_string omitted to use defalut value "exp_ROI = exp(urbansim_parcel.development_project_proposal.expected_rate_of_return_on_investment)", "filter_attribute": None, # the filter has been handled in the process of creating proposal set # (prepare_for_run in expected_sale_price_model) }, }, "run": { "arguments": {'n':500, # sample 500 proposal at a time, evaluate them one by one }, "output":"(development_project_proposal, demolished_buildings)" }, }, 'development_project_proposal_choice_model': { "import": {"urbansim_parcel.models.development_project_proposal_choice_model": "DevelopmentProjectProposalChoiceModel"}, "init": { "name": "DevelopmentProjectProposalChoiceModel", "arguments": {"proposal_set": "development_project_proposal", #weight_string omitted to use defalut value "exp_ROI = exp(urbansim_parcel.development_project_proposal.expected_rate_of_return_on_investment)", "filter": "'development_project_proposal.status_id==4'" # id_tentative }, }, "prepare_for_run":{ "name": "prepare_for_run", 'arguments': { 'coefficients_storage': 'base_cache_storage', 'coefficients_table': "'development_project_proposal_choice_model_coefficients'", 'specification_storage': 'base_cache_storage', 'specification_table':"'development_project_proposal_choice_model_specification'", }, 'output': '(specification, coefficients)' }, "run": { "arguments": { 'n':500, # sample 500 proposal at a time, evaluate them one by one "specification": "specification", "coefficients":"coefficients", #"agent_set": 'development_project_proposal', }, "output":"(development_project_proposal, demolished_buildings)" }, "prepare_for_estimate": { "name": "prepare_for_estimate", "arguments": { "agent_set":"development_project_proposal", "agents_for_estimation_storage": "base_cache_storage", "agents_for_estimation_table": "'development_project_proposals_for_estimation'", "filter_for_estimation_set":None, "data_objects": "datasets" }, "output": "(specification, index)" }, 'estimate': { 'arguments': { 'agent_set': 'development_project_proposal', 'agents_index':'index', 'data_objects': 'datasets', 'debuglevel': 0, 'procedure': "'opus_core.bhhh_mnl_estimation'", 'specification': 'specification' }, 'output': '(coefficients, _)' }, }, 'building_construction_model': { "import": {"urbansim_parcel.models.building_construction_model": "BuildingConstructionModel"}, "init": { "name": "BuildingConstructionModel" }, "run": { "arguments": { "development_proposal_set": "development_project_proposal", "building_dataset": "building", "dataset_pool": "dataset_pool", "buildings_to_be_demolished": "demolished_buildings" } } }, # models related to workplace_choice_model # 'household_person_consistency_keeper':{ # "import": {"urbansim_parcel.models.persons_consistency_keeper_model":"PersonDatasetConsistencyKeeperModel"}, # "init": { # "name": "PersonDatasetConsistencyKeeperModel", # "arguments": {}, # }, # "run": { # "arguments": {"household_set": "household", # "person_set":"person", # "expand_person_set":True, # } # }, # }, 'job_person_consistency_keeper':{ "import": {"urbansim_parcel.models.persons_consistency_keeper_model":"PersonDatasetConsistencyKeeperModel"}, "init": { "name": "PersonDatasetConsistencyKeeperModel", "arguments": {}, }, "run": { "arguments": {"job_set": "job", "person_set":"person", "expand_person_set":False, } }, }, 'workplace_choice_model_for_resident': { "import": {"urbansim_parcel.models.workplace_choice_model":"WorkplaceChoiceModel"}, "init": { "name": "WorkplaceChoiceModel", "arguments": { "location_set":"job", "model_name":"'Non-home-based Workplace Choice Model for residents'", "short_name":"'NHBWCM'", "choices":"'urbansim.lottery_choices'", "submodel_string":None, #"'psrc.person.household_income'", "filter": "'urbansim_parcel.job.is_untaken_non_home_based_job'", "location_id_string":"'job_id'", "run_config":models_configuration['workplace_choice_model_for_resident'], "estimate_config":models_configuration['workplace_choice_model_for_resident'] }}, "prepare_for_run": { "name": "prepare_for_run", "arguments": {"specification_storage": "base_cache_storage", #"models_configuration['specification_storage']", "specification_table": "'workplace_choice_model_for_resident_specification'", "coefficients_storage": "base_cache_storage", #"models_configuration['coefficients_storage']", "coefficients_table": "'workplace_choice_model_for_resident_coefficients'", }, "output": "(specification, coefficients)" }, "run": { "arguments": {"specification": "specification", "coefficients":"coefficients", "agent_set": "person", "agents_index": None, "agents_filter":"'urbansim_parcel.person.is_non_home_based_worker_without_job'", "data_objects": "datasets", "chunk_specification":"{'records_per_chunk':50000}", "debuglevel": 'debuglevel', }, }, # the estimate method is not available before the estimation data is ready "prepare_for_estimate": { "name": "prepare_for_estimate", "arguments": { "agent_set":"person", "household_set": "household", "join_datasets": "True", "agents_for_estimation_storage": "base_cache_storage", "agents_for_estimation_table": "'persons_for_estimation'", "households_for_estimation_table":"'households_for_estimation'", "filter":"'urbansim_parcel.person.is_non_home_based_worker_with_job'", "data_objects": "datasets" }, "output": "(specification, workers_index)" }, "estimate": { "arguments": { "specification": "specification", "agent_set": "person", "agents_index": "workers_index", "data_objects": "datasets", "debuglevel": 'debuglevel', }, "output": "(coefficients, dummy)" }, }, 'work_at_home_choice_model': { 'import': { 'urbansim_parcel.models.work_at_home_choice_model': 'WorkAtHomeChoiceModel' }, 'init': { 'arguments': { 'choice_set': 'job', 'filter': "'urbansim_parcel.job.is_untaken_home_based_job'", }, 'name': 'WorkAtHomeChoiceModel' }, 'prepare_for_run': { "name": "prepare_for_run", 'arguments': { 'coefficients_storage': 'base_cache_storage', 'coefficients_table': "'work_at_home_choice_model_coefficients'", 'specification_storage': 'base_cache_storage', 'specification_table': "'work_at_home_choice_model_specification'", 'agent_set': 'person', 'agents_filter': "'urbansim_parcel.person.is_worker_without_job'", 'data_objects': 'datasets' }, 'output': '(specification, coefficients, _index)' }, 'run': { 'arguments': { 'agent_set': 'person', 'agents_index' : '_index', 'choose_job_only_in_residence_zone': False, 'chunk_specification': "{'nchunks':1}", 'coefficients': 'coefficients', 'data_objects': 'datasets', 'specification': 'specification' } }, "prepare_for_estimate": { "name": "prepare_for_estimate", "arguments": { "agent_set":"person", "household_set": "household", "join_datasets": "True", "agents_for_estimation_storage": "base_cache_storage", "agents_for_estimation_table": "'persons_for_estimation'", "households_for_estimation_table":"'households_for_estimation'", "filter":"'urbansim_parcel.person.is_worker'", "data_objects": "datasets" }, "output": "(specification, agents_index)" }, 'estimate': { 'arguments': { 'agent_set': 'person', 'agents_index': 'agents_index', 'data_objects': 'datasets', 'debuglevel': 0, 'procedure': "'opus_core.bhhh_mnl_estimation'", 'specification': 'specification' }, 'output': '(coefficients, _)' }, }, # "job_change_model":{ # "import": {"urbansim.models.agent_relocation_model": # "AgentRelocationModel" # }, # "init": { # "name": "AgentRelocationModel", # "arguments": {"choices":"opus_core.random_choices", # "probabilities":"psrc.job_change_probabilities", # "location_id_name":"job_id", # "model_name":"job change model", # "debuglevel": 'debuglevel', # }, # }, # "prepare_for_run": { # "name": "prepare_for_run", # "arguments": {"what": "'person'", "rate_storage": "base_cache_storage", # "rate_table": "'annual_job_change_rates_for_workers'"}, # "output": "jcm_resources" # }, # "run": { # "arguments": {"agent_set": "person", "resources": "jcm_resources"}, # "output": "jcm_index" # } # }, 'modify_workers_jobs_after_moving_households': { "import": {"opus_core.join_attribute_modification_model": "JoinAttributeModificationModel"}, "init": {"name": "JoinAttributeModificationModel"}, "run": {"arguments": { "dataset": "person", "secondary_dataset": "household", #"index": "hrm_index", # this must be the same that goes into the HLCM argument 'agents_index' "attribute_to_be_modified": "'job_id'", "value": -1, "filter": "'household.building_id <> urbansim.household.building_id_lag1'" } }, }, 'modify_workers_jobs_after_moving_jobs': { "import": {"opus_core.join_attribute_modification_model": "JoinAttributeModificationModel"}, "init": {"name": "JoinAttributeModificationModel"}, "run": {"arguments": { "dataset": "person", "secondary_dataset": "job", #"index": "erm_index", # this must be the same that goes into the ELCM argument 'agents_index' "attribute_to_be_modified": "'job_id'", "value": -1, "filter": "'job.building_id <> urbansim.job.building_id_lag1'" } }, }, 'water_demand_model': { "import": {"psrc_parcel.models.water_demand_model":"WaterDemandModel"}, "init": { "name": "WaterDemandModel", "arguments": {"submodel_string": "'land_use_type_id'", "outcome_attribute": "'ln_month_combination_2'", "filter_attribute": None, "dataset_pool": "dataset_pool", }, }, "prepare_for_run": { "name": "prepare_for_run", "arguments": {"specification_storage": "base_cache_storage", "specification_table": "'water_demand_model_specification_for_month_combination_2'", "coefficients_storage": "base_cache_storage", "coefficients_table": "'water_demand_model_coefficients_for_month_combination_2'"}, "output": "(specification, coefficients, _)" }, "run": { "arguments": { "specification": "specification", "coefficients":"coefficients", "dataset": "parcel", "data_objects": "datasets", } }, }, } for month in range(2, 13, 2): month_string = "month_combination_" + str(month) my_controller_configuration['water_demand_model_for_' + month_string] = copy.deepcopy(my_controller_configuration['water_demand_model']) my_controller_configuration['water_demand_model_for_' + month_string]['init']['arguments']['outcome_attribute'] = "'%s'" % month_string my_controller_configuration['water_demand_model_for_' + month_string]['prepare_for_run']['arguments']['specification_table'] = "'water_demand_model_specification_for_%s'" % month_string my_controller_configuration['water_demand_model_for_' + month_string]['prepare_for_run']['arguments']['coefficients_table'] = "'water_demand_model_coefficients_for_%s'" % month_string my_controller_configuration["workplace_choice_model_for_immigrant"] = copy.deepcopy(my_controller_configuration["workplace_choice_model_for_resident"]) my_controller_configuration["workplace_choice_model_for_immigrant"]["init"]["arguments"]["model_name"] = "'Non-home-based Workplace Choice Model for immigrants'" my_controller_configuration["workplace_choice_model_for_immigrant"]["prepare_for_run"]["arguments"]["specification_table"] = "'workplace_choice_model_for_immigrant_specification'" my_controller_configuration["workplace_choice_model_for_immigrant"]["prepare_for_run"]["arguments"]["coefficients_table"] = "'workplace_choice_model_for_immigrant_coefficients'" my_controller_configuration["workplace_choice_model_for_immigrant"]["run"]["arguments"]["agents_filter"] = "'psrc.person.is_immigrant_worker_without_job'" for model in my_controller_configuration.keys(): if model not in self["models_configuration"].keys(): self["models_configuration"][model] = {} self['models_configuration'][model]['controller'] = my_controller_configuration[model] #settings for the HLCM hlcm_controller = self["models_configuration"]["household_location_choice_model"]["controller"] hlcm_controller["init"]["arguments"]["location_set"] = "building" hlcm_controller["init"]["arguments"]["location_id_string"] = "'building_id'" hlcm_controller["init"]["arguments"]["estimation_weight_string"] = "'urbansim_parcel.building.vacant_residential_units'" hlcm_controller["init"]["arguments"]["simulation_weight_string"] = "'has_vacant_units=urbansim_parcel.building.vacant_residential_units>0'" hlcm_controller["init"]["arguments"]["capacity_string"] = "'urbansim_parcel.building.vacant_residential_units'" #hlcm_controller["init"]["arguments"]["estimation_weight_string"] = "'has_eg_1_units=building.residential_units>=1'" #hlcm_controller["init"]["arguments"]["capacity_string"] = "'has_eg_1_units=building.residential_units>=1'" hlcm_controller["init"]["arguments"]['sample_size_locations']=30 hlcm_controller["init"]["arguments"]['sampler']="'opus_core.samplers.weighted_sampler'" #hlcm_controller["init"]["arguments"]["submodel_string"] = "'urbansim.household.income_category'" hlcm_controller["init"]["arguments"]["estimation_size_agents"] = None #hlcm_controller["init"]["arguments"]["number_of_units_string"] = None hlcm_controller["init"]["arguments"]["variable_package"] = "'urbansim_parcel'" hlcm_controller["init"]["arguments"]["run_config"] = "{'lottery_max_iterations': 7}" hlcm_controller["init"]["arguments"]["filter"] = "'numpy.logical_and(urbansim_parcel.building.is_residential, numpy.logical_and(numpy.logical_and(building.residential_units, building.sqft_per_unit), urbansim_parcel.building.unit_price > 0))'" #hlcm_controller["init"]["arguments"]["filter"] = "'urbansim_parcel.building.is_residential'" # hlcm_controller["init"]["arguments"]["filter"] = "'numpy.logical_and(numpy.logical_and(building.residential_units, building.sqft_per_unit), numpy.logical_and(urbansim_parcel.building.unit_price > %s, urbansim_parcel.building.unit_price< %s))'" % (UNIT_PRICE_RANGE[0], UNIT_PRICE_RANGE[1]) #hlcm_controller["init"]["arguments"]["filter"] = "'numpy.logical_and(building.residential_units, building.sqft_per_unit)'" hlcm_controller["init"]["arguments"]["estimate_config"] = "{'wesml_sampling_correction_variable':'psrc_parcel.building.wesml_sampling_correction_variable'}" hlcm_controller["prepare_for_estimate"]["arguments"]["agents_for_estimation_table"] = "'households_for_estimation'" hlcm_controller["prepare_for_estimate"]["arguments"]["filter"] = "'numpy.logical_and(household.building_id>1, household.disaggregate(building.sqft_per_unit>0)) * household.move'" # filtering out agents for estimation with valid location #hlcm_controller["prepare_for_estimate"]["arguments"]["filter"] = "'household.move==1'" # filtering out agents for estimation with valid location hlcm_controller["run"]["arguments"]["chunk_specification"] ="{'records_per_chunk':50000}" hlcm_controller["prepare_for_estimate"]["arguments"]["join_datasets"] = True hlcm_controller["prepare_for_estimate"]["arguments"]["index_to_unplace"] = 'hrm_index' #None # settng estimation procedure #hlcm_controller["estimate"]["arguments"]["procedure"] = "'bhhh_wesml_mnl_estimation'" hlcm_controller["estimate"]["arguments"]["procedure"] = "'bhhh_mnl_estimation'" models_configuration['household_location_choice_model']["controller"].replace(hlcm_controller) self["datasets_to_preload"] = { 'zone':{}, 'household':{}, 'building':{}, 'parcel':{'package_name':'urbansim_parcel'}, "building_type":{'package_name':'urbansim_parcel'}, 'travel_data':{} } models_configuration['governmental_employment_location_choice_model']['controller']['import'] = { 'urbansim_parcel.models.scaling_jobs_model': 'ScalingJobsModel'} models_configuration['distribute_unplaced_jobs_model']['controller']['import'] = { 'urbansim_parcel.models.distribute_unplaced_jobs_model': 'DistributeUnplacedJobsModel'} models_configuration['distribute_unplaced_mining_utilities_jobs_model']['controller']['import'] = { 'urbansim_parcel.models.distribute_unplaced_jobs_model': 'DistributeUnplacedJobsModel'} models_configuration['real_estate_price_model_for_all_parcels'] = Configuration(models_configuration['real_estate_price_model']) models_configuration['real_estate_price_model_for_all_parcels']['controller']['init']['arguments']['filter_attribute'] = None
def __init__(self): config = AbstractUrbansimConfiguration() end_year = 2030 config_changes = { 'description':'baseline with travel model', 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = '/urbansim_cache/psrc/gridcell_run_set', #'/projects/urbansim5/urbansim_cache/psrc_gridcell', cache_from_database = True, cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache = [ 'annual_employment_control_totals', 'annual_household_control_totals', 'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', 'travel_data', 'zones', 'counties', 'commercial_development_location_choice_model_coefficients', 'commercial_development_location_choice_model_specification', 'commercial_employment_location_choice_model_coefficients', 'commercial_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_specification', 'industrial_development_location_choice_model_coefficients', 'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', 'fazes', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', 'land_price_model_coefficients', 'land_price_model_specification', 'residential_land_share_model_coefficients', 'residential_land_share_model_specification', 'plan_type_group_definitions', 'plan_type_groups', 'large_areas', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', 'annual_relocation_rates_for_jobs', 'base_year', 'cities', 'development_events', 'development_type_groups', 'employment_adhoc_sector_group_definitions', 'employment_adhoc_sector_groups', 'employment_events', 'employment_sectors', 'land_use_events', 'plan_types', 'race_names', 'target_vacancies', 'jobs_for_estimation', 'households_for_estimation', 'development_events_exogenous', 'job_building_types', 'persons', 'persons_for_estimation', ], tables_to_cache_nchunks = {'gridcells': 4}, tables_to_copy_to_previous_years = { 'development_type_groups': 1995, 'development_types': 1995, 'development_type_group_definitions': 1995, 'development_constraints': 1995, 'urbansim_constants': 1995, }, ), 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name = 'PSRC_2000_baseyear', ), 'dataset_pool_configuration': DatasetPoolConfiguration( package_order=['psrc', 'urbansim', 'opus_core'], ), 'base_year':2000, 'years':(2001, end_year), } config.merge(config_changes) self.merge(config) self['post_year_configuration'] = create_post_year_configuration(end_year)
def __init__(self): config = AbstractUrbansimConfiguration() config_changes = { 'project_name':'psrc', 'description':'baseline with travel model', 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = 'd:/urbansim_cache', cache_from_database = True, cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache = [ 'annual_employment_control_totals', 'annual_household_control_totals', 'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', 'travel_data', 'zones', 'counties', 'commercial_development_location_choice_model_coefficients', 'commercial_development_location_choice_model_specification', 'commercial_employment_location_choice_model_coefficients', 'commercial_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_specification', 'industrial_development_location_choice_model_coefficients', 'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', 'fazes', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', 'land_price_model_coefficients', 'land_price_model_specification', 'residential_land_share_model_coefficients', 'residential_land_share_model_specification', 'plan_type_group_definitions', 'plan_type_groups', 'large_areas', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', 'annual_relocation_rates_for_jobs', 'base_year', 'cities', 'development_events', 'development_type_groups', 'employment_adhoc_sector_group_definitions', 'employment_adhoc_sector_groups', 'employment_events', 'employment_sectors', 'land_use_events', 'plan_types', 'race_names', 'target_vacancies', 'jobs_for_estimation', 'households_for_estimation', 'development_events_exogenous', 'job_building_types', 'persons', 'persons_for_estimation', 'constant_taz_columns' ], tables_to_cache_nchunks = {'gridcells': 4}, tables_to_copy_to_previous_years = { 'development_type_groups': 1995, 'development_types': 1995, 'development_type_group_definitions': 1995, 'development_constraints': 1995, 'urbansim_constants': 1995, }, ), 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name = 'PSRC_2000_baseyear', ), 'dataset_pool_configuration': DatasetPoolConfiguration( package_order=['psrc', 'urbansim', 'opus_core'], ), 'base_year':2000, 'years':(2001, 2030), } config.merge(config_changes) travel_model_config = create_travel_model_configuration('baseline_travel_model_psrc') config['travel_model_configuration'] = travel_model_config self.merge(config)
def __init__(self): config = AbstractUrbansimConfiguration() config_changes = { 'project_name': 'washtenaw', 'description': 'Region Pilot Baseline', 'scenario_database_configuration': ScenarioDatabaseConfiguration(database_name='washtenaw_class', ), 'models': [ 'prescheduled_events', 'events_coordinator', 'residential_land_share_model', 'land_price_model', 'regional_development_project_transition_model', 'residential_regional_development_project_location_choice_model', 'commercial_regional_development_project_location_choice_model', 'industrial_regional_development_project_location_choice_model', 'development_event_transition_model', 'events_coordinator', 'residential_land_share_model', 'jobs_event_model', #'households_event_model', 'regional_household_transition_model', 'regional_household_relocation_model', 'regional_household_location_choice_model', 'regional_employment_transition_model', 'regional_employment_relocation_model', { 'regional_employment_location_choice_model': { 'group_members': ['_all_'] } }, 'regional_distribute_unplaced_jobs_model' ], 'cache_directory': None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root="/urbansim_cache/washtenaw", cache_from_database=True, baseyear_cache=BaseyearCacheConfiguration( existing_cache_to_copy= "/urbansim_cache/washtenaw/cache_source", ), cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache=self.tables_to_cache, tables_to_cache_nchunks={'gridcells': 1}, tables_to_copy_to_previous_years=self. tables_to_copy_to_previous_years, ), 'datasets_to_preload': { 'development_constraint': {}, 'development_event_history': {}, 'development_type': {}, 'gridcell': { 'nchunks': 2 }, 'household': {}, 'job': {}, 'job_building_type': {}, 'target_vacancy': {}, 'zone': {}, 'jobs_event': {}, #'households_event': {}, }, 'dataset_pool_configuration': DatasetPoolConfiguration( package_order=['washtenaw', 'urbansim', 'opus_core'], ), 'base_year': 2005, 'years': (2006, 2010), } config.merge(config_changes) self.merge(config) self.merge_with_controller() try: exec('from %s_local_config import my_configuration' % getuser()) local_config = True except: logger.log_note( "No user's settings found or error occured when loading.") local_config = False if local_config: self.merge(my_configuration)
# Opus/UrbanSim urban simulation software. # Copyright (C) 2010-2011 University of California, Berkeley, 2005-2009 University of Washington # See opus_core/LICENSE import os from opus_core.storage_factory import StorageFactory from opus_core.database_management.configurations.scenario_database_configuration import ScenarioDatabaseConfiguration from opus_core.database_management.configurations.estimation_database_configuration import EstimationDatabaseConfiguration from urbansim.configs.base_configuration import AbstractUrbansimConfiguration from urbansim.configurations.creating_baseyear_cache_configuration import CreatingBaseyearCacheConfiguration from opus_core.database_management.database_server import DatabaseServer config = AbstractUrbansimConfiguration() db_server = DatabaseServer(ScenarioDatabaseConfiguration()) db = db_server.get_database('PSRC_2000_baseyear_old_elcm_coeff') config_changes = { 'description':'baseline with skims using old coefficients', 'in_storage':StorageFactory().get_storage('sql_storage', storage_location = db ), 'cache_directory':None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration':CreatingBaseyearCacheConfiguration( cache_directory_root = 'd:/urbansim_cache', cache_from_database = True, cache_scenario_database = 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache = [ 'annual_employment_control_totals', 'annual_household_control_totals',
def __init__(self): config = AbstractUrbansimConfiguration() db_server = DatabaseServer(ScenarioDatabaseConfiguration()) db = db_server.get_database('PSRC_2000_baseyear') config_changes = { 'description': 'baseline with no travel model', 'in_storage': StorageFactory().get_storage('sql_storage', storage_location=db), 'cache_directory': None, ### TODO: Set this cache_directory to something useful. 'creating_baseyear_cache_configuration': CreatingBaseyearCacheConfiguration( cache_directory_root='c:/urbansim_cache', cache_from_database=True, cache_scenario_database= 'urbansim.model_coordinators.cache_scenario_database', tables_to_cache=[ 'annual_employment_control_totals', 'annual_household_control_totals', 'buildings', 'building_types', 'development_event_history', 'gridcells', 'households', 'job_building_types', 'jobs', 'travel_data', 'zones', 'counties', 'commercial_development_location_choice_model_coefficients', 'commercial_development_location_choice_model_specification', 'commercial_employment_location_choice_model_coefficients', 'commercial_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_specification', 'home_based_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_coefficients', 'industrial_employment_location_choice_model_specification', 'industrial_development_location_choice_model_coefficients', 'industrial_development_location_choice_model_specification', 'residential_development_location_choice_model_coefficients', 'residential_development_location_choice_model_specification', 'fazes', 'urbansim_constants', 'household_location_choice_model_coefficients', 'household_location_choice_model_specification', 'land_price_model_coefficients', 'land_price_model_specification', 'residential_land_share_model_coefficients', 'residential_land_share_model_specification', 'plan_type_group_definitions', 'plan_type_groups', 'large_areas', 'household_characteristics_for_ht', 'development_types', 'development_type_group_definitions', 'development_constraints', 'annual_relocation_rates_for_households', 'annual_relocation_rates_for_jobs', 'base_year', 'cities', 'development_events', 'development_type_groups', 'employment_adhoc_sector_group_definitions', 'employment_adhoc_sector_groups', 'employment_events', 'employment_sectors', 'land_use_events', 'plan_types', 'race_names', 'target_vacancies', 'jobs_for_estimation', 'households_for_estimation', 'development_events_exogenous', 'job_building_types' ], tables_to_cache_nchunks={'gridcells': 1}, tables_to_copy_to_previous_years={ 'development_type_groups': 1995, 'development_types': 1995, 'development_type_group_definitions': 1995, 'urbansim_constants': 1995, }, ), 'scenario_database_configuration': ScenarioDatabaseConfiguration( database_name='PSRC_2000_baseyear', ), 'base_year': 2000, 'years': (2001, 2030), } config.merge(config_changes) self.merge(config)