from urbansim.datasets.gridcell_dataset import GridcellDataset from numpy import array from opus_core.misc import unique consumption_grid_id = consumption.get_attribute("grid_id") years = consumption.get_attribute("billyear") distinct_years = unique(years) import os from numpy import where, zeros, arange cache_directory = "D:/urbansim_cache/water_demand" for year in arange(1991, 2001): print year flt_storage = StorageCreator().build_storage(type="flt", location=os.path.join(cache_directory, str(year))) gridcells = GridcellDataset(in_storage=flt_storage) grid_id_idx = array(map(lambda x: gridcells.try_id_mapping(x, -1), consumption_grid_id)) year_idx = where(years==year)[0] grid_id_idx_for_year = grid_id_idx[year_idx] for attr in gridcells.get_known_attribute_names(): if attr not in consumption.get_known_attribute_names(): ftype = gridcells.get_attribute(attr).type() consumption.add_attribute(name=attr, data=zeros(consumption.size(), dtype=ftype)) consumption.modify_attribute(name=attr, data=gridcells.get_attribute_by_index(attr, grid_id_idx_for_year), index=year_idx) # store consumption dataset out_storage = StorageCreator().build_storage(type="flt", location=cache_directory) consumption.write_dataset(attributes = consumption.get_known_attribute_names(), out_storage=out_storage, out_table_name=consumption_type.lower())
from numpy import where, zeros, arange cache_directory = "D:/urbansim_cache/water_demand" for year in arange(1991, 2001): print year flt_storage = StorageCreator().build_storage(type="flt", location=os.path.join( cache_directory, str(year))) gridcells = GridcellDataset(in_storage=flt_storage) grid_id_idx = array( map(lambda x: gridcells.try_id_mapping(x, -1), consumption_grid_id)) year_idx = where(years == year)[0] grid_id_idx_for_year = grid_id_idx[year_idx] for attr in gridcells.get_known_attribute_names(): if attr not in consumption.get_known_attribute_names(): ftype = gridcells.get_attribute(attr).type() consumption.add_attribute(name=attr, data=zeros(consumption.size(), dtype=ftype)) consumption.modify_attribute(name=attr, data=gridcells.get_attribute_by_index( attr, grid_id_idx_for_year), index=year_idx) # store consumption dataset out_storage = StorageCreator().build_storage(type="flt", location=cache_directory) consumption.write_dataset(attributes=consumption.get_known_attribute_names(), out_storage=out_storage, out_table_name=consumption_type.lower())