def __init__(self): in_storage = StorageFactory().get_storage( 'sql_storage', hostname=settings.get_db_host_name(), username=settings.get_db_user_name(), password=settings.get_db_password(), database_name=settings.db) zones = ZoneDataset(in_storage=in_storage) print "Read and Write ZoneDataset." out_storage = StorageFactory().build_storage_for_dataset( type='flt_storage', storage_location=settings.dir) ReadWriteADataset(zones, out_storage=out_storage, out_table_name=settings.zonesubdir)
def test_getting_several_emme2_data_into_travel_data_set(self): if self._has_travel_model: num_zones = 30 zone_storage = StorageFactory().get_storage('dict_storage') zone_table_name = 'zone' zone_storage.write_table( table_name=zone_table_name, table_data={'zone_id': array(range(num_zones)) + 1}, ) zone_set = ZoneDataset(in_storage=zone_storage, in_table_name=zone_table_name) matrix_attribute_map = { 'au1tim': 'single_vehicle_to_work_travel_time', 'biketm': 'bike_to_work_travel_time' } tm_output = TravelModelOutput() travel_data_set = tm_output.get_travel_data_set( zone_set, matrix_attribute_map, self.real_bank_path) self.assertEqual( travel_data_set.get_attribute( 'single_vehicle_to_work_travel_time').size, num_zones * num_zones) self.assertEqual( travel_data_set.get_attribute('bike_to_work_travel_time').size, num_zones * num_zones) from numpy import ma self.assertEqual( False, ma.allclose( travel_data_set.get_attribute( 'single_vehicle_to_work_travel_time'), travel_data_set.get_attribute('bike_to_work_travel_time'))) else: logger.log_warning('Test skipped. TRAVELMODELROOT environment ' 'variable not found.')
coef, result = hlcm_psrc.estimate(specification, agents_psrc, agents_index=idx, estimate_config=Resources( {"estimation_size_agents": 0.01}), debuglevel=4) result = hlcm_psrc.run(specification, coef, agents_psrc, agents_index=sample(range(agents_psrc.size()), 500), debuglevel=4) storage = StorageFactory().get_storage('sql_storage', storage_location=db) zones_psrc = ZoneDataset(in_storage=storage) hlcm_psrc_zones = HouseholdLocationChoiceModelCreator().get_model( location_set=zones_psrc, sampler="opus_core.samplers.weighted_sampler", sample_size_locations=10, choices="opus_core.random_choices_from_index", compute_capacity_flag=False, estimate_config=Resources({"weights_for_estimation_string": None})) specification = EquationSpecification( variables=("urbansim.zone.number_of_jobs", "urbansim.household.income"), coefficients=("NOJ", "INC")) agents_psrc.compute_variables(["urbansim.household.zone_id"], resources=Resources({"gridcell": locations_psrc}))
def get_resources(self, data_dictionary, dataset): """Create resources for computing a variable. """ resources = Resources() for key in data_dictionary.keys(): if key in self.datasets: data = data_dictionary[key] storage = StorageFactory().get_storage('dict_storage') if self.id_names[key] not in data_dictionary[key].keys( ) and not isinstance(self.id_names[key], list): data[self.id_names[key]] = arange( 1, len(data_dictionary[key][data_dictionary[key].keys() [0]]) + 1) # add id array id_name = self.id_names[key] storage.write_table(table_name='data', table_data=data) if key == "gridcell": gc = GridcellDataset(in_storage=storage, in_table_name='data') # add relative_x and relative_y gc.get_id_attribute() n = int(ceil(sqrt(gc.size()))) if "relative_x" not in data.keys(): x = (indices((n, n)) + 1)[1].ravel() gc.add_attribute(x[0:gc.size()], "relative_x", metadata=1) if "relative_y" not in data.keys(): y = (indices((n, n)) + 1)[0].ravel() gc.add_attribute(y[0:gc.size()], "relative_y", metadata=1) resources.merge({key: gc}) elif key == "household": resources.merge({ key: HouseholdDataset(in_storage=storage, in_table_name='data') }) elif key == "development_project": resources.merge({ key: DevelopmentProjectDataset(in_storage=storage, in_table_name='data') }) elif key == "development_event": resources.merge({ key: DevelopmentEventDataset(in_storage=storage, in_table_name='data') }) elif key == "neighborhood": resources.merge({ key: NeighborhoodDataset(in_storage=storage, in_table_name='data') }) elif key == "job": resources.merge({ key: JobDataset(in_storage=storage, in_table_name='data') }) elif key == "zone": resources.merge({ key: ZoneDataset(in_storage=storage, in_table_name='data') }) elif key == "travel_data": resources.merge({ key: TravelDataDataset(in_storage=storage, in_table_name='data') }) elif key == "faz": resources.merge({ key: FazDataset(in_storage=storage, in_table_name='data') }) elif key == "fazdistrict": resources.merge({ key: FazdistrictDataset(in_storage=storage, in_table_name='data') }) elif key == "race": resources.merge({ key: RaceDataset(in_storage=storage, in_table_name='data') }) elif key == "county": resources.merge({ key: CountyDataset(in_storage=storage, in_table_name='data') }) elif key == "large_area": resources.merge({ key: LargeAreaDataset(in_storage=storage, in_table_name='data') }) elif key == "development_group": resources.merge({ key: DevelopmentGroupDataset(in_storage=storage, in_table_name='data') }) elif key == "employment_sector_group": resources.merge({ key: EmploymentSectorGroupDataset(in_storage=storage, in_table_name='data') }) elif key == "plan_type_group": resources.merge({ key: PlanTypeGroupDataset(in_storage=storage, in_table_name='data') }) elif key == "building": resources.merge({ key: BuildingDataset(in_storage=storage, in_table_name='data') }) else: resources.merge({key: data_dictionary[key]}) if dataset in self.interactions: if dataset == "household_x_gridcell": resources.merge({ "dataset": HouseholdXGridcellDataset(dataset1=resources["household"], dataset2=resources["gridcell"]) }) if dataset == "job_x_gridcell": resources.merge({ "dataset": JobXGridcellDataset(dataset1=resources["job"], dataset2=resources["gridcell"]) }) if dataset == "household_x_zone": resources.merge({ "dataset": HouseholdXZoneDataset(dataset1=resources["household"], dataset2=resources["zone"]) }) if dataset == "household_x_neighborhood": resources.merge({ "dataset": HouseholdXNeighborhoodDataset( dataset1=resources["household"], dataset2=resources["neighborhood"]) }) if dataset == "development_project_x_gridcell": resources.merge({ "dataset": DevelopmentProjectXGridcellDataset( dataset1=resources["development_project"], dataset2=resources["gridcell"]) }) else: resources.merge({"dataset": resources[dataset]}) resources.merge({"check_variables": '*', "debug": 4}) return resources