def test_point_grid(self): # generate point geometries pt_geoms = [] for x in range(0,3): for y in range(0,3): v = [(datetime.datetime(2014,1,1,12,0,0) + datetime.timedelta(days=i), i) for i in range(0,365)] g = 'POINT (%d %d)' % (x,y) dv = DataValues(v) geom = Geometry() geom.set_geom_from_wkt(g) geom.type(ElementType.Point) geom.srs(spatial.get_srs_from_epsg(self.srscode)) geom.datavalues(dv) pt_geoms.append(geom) # create element grid grid = GriddedGeometry(pt_geoms,5,5,3,3)
def test_point_grid(self): # generate point geometries pt_geoms = [] for x in range(0, 3): for y in range(0, 3): v = [(datetime.datetime(2014, 1, 1, 12, 0, 0) + datetime.timedelta(days=i), i) for i in range(0, 365)] g = 'POINT (%d %d)' % (x, y) dv = DataValues(v) geom = Geometry() geom.set_geom_from_wkt(g) geom.type(ElementType.Point) geom.srs(spatial.get_srs_from_epsg(self.srscode)) geom.datavalues(dv) pt_geoms.append(geom) # create element grid grid = GriddedGeometry(pt_geoms, 5, 5, 3, 3)
def build_swmm_inputs_and_outputs(self, geoms): # define the model inputs and outputs outputs = {'subcatchment':['Groundwater_outflow','Wash_off_concentration','Groundwater_elevation','Runoff_rate'], 'link' : ['Flow_depth','Flow_rate','Flow_velocity'], 'node' : ['Volume_stored_ponded','Lateral_inflow','Total_inflow','Depth_above_invert','Hydraulic_head','Flow_lost_flooding'] } inputs = {'subcatchment' : ['Evaporation','Rainfall','Snow_depth'], 'link' : ['Froude_number','Capacity'], 'node' : [] } # get spatial reference system (use default if none is provided in config) srs = spatial.get_srs_from_epsg(code=None) if self.config_params.has_key('spatial'): if self.config_params['spatial'].has_key('srs'): srs = spatial.get_srs_from_epsg(self.config_params['spatial']['srs']) # build outputs output_items = [] for key, vars in outputs.iteritems(): for var_name in vars: # build variable and unit variable = mdl.create_variable(var_name) unit = mdl.create_unit(var_name) # build elementset geometries = geoms[key] elementset = [] for i, geom in geometries.iteritems(): dv = DataValues() elem = Geometry(geom=geom,id=i) elem.type(geom.geom_type) elem.srs(srs) elem.datavalues(dv) elementset.append(elem) id = uuid.uuid4().hex[:5] # create exchange item ei = ExchangeItem(id, name=variable.VariableNameCV(), desc=variable.VariableDefinition(), geometry=elementset, unit= unit, variable=variable, type=ExchangeItemType.Output) # save the output item output_items.append(ei) # build inputs input_items = [] for key, vars in inputs.iteritems(): for var_name in vars: # build variable and unit variable = mdl.create_variable(var_name) unit = mdl.create_unit(var_name) # build elementset id_inc = 0 geometries = geoms[key] elementset = [] for i, geom in geometries: dv = DataValues() elem = Geometry(geom=geom,id=id_inc) elem.type(geom.geom_type) elem.srs(srs) elem.datavalues(dv) elementset.append(elem) id_inc += 1 # create exchange item ei = ExchangeItem(id, name=variable.VariableNameCV(), desc=variable.VariableDefinition(), geometry=elementset, unit= unit, variable=variable, type=ExchangeItemType.Input) # save the output item input_items.append(ei) # set the input and output items self.outputs(value = output_items) self.inputs(value = input_items)
def build_swmm_inputs_and_outputs(self, geoms): # define the model inputs and outputs outputs = { 'subcatchment': [ 'Groundwater_outflow', 'Wash_off_concentration', 'Groundwater_elevation', 'Runoff_rate' ], 'link': ['Flow_depth', 'Flow_rate', 'Flow_velocity'], 'node': [ 'Volume_stored_ponded', 'Lateral_inflow', 'Total_inflow', 'Depth_above_invert', 'Hydraulic_head', 'Flow_lost_flooding' ] } inputs = { 'subcatchment': ['Evaporation', 'Rainfall', 'Snow_depth'], 'link': ['Froude_number', 'Capacity'], 'node': [] } # get spatial reference system (use default if none is provided in config) srs = spatial.get_srs_from_epsg(code=None) if self.config_params.has_key('spatial'): if self.config_params['spatial'].has_key('srs'): srs = spatial.get_srs_from_epsg( self.config_params['spatial']['srs']) # build outputs output_items = [] for key, vars in outputs.iteritems(): for var_name in vars: # build variable and unit variable = mdl.create_variable(var_name) unit = mdl.create_unit(var_name) # build elementset geometries = geoms[key] elementset = [] for i, geom in geometries.iteritems(): dv = DataValues() elem = Geometry(geom=geom, id=i) elem.type(geom.geom_type) elem.srs(srs) elem.datavalues(dv) elementset.append(elem) id = uuid.uuid4().hex[:5] # create exchange item ei = ExchangeItem(id, name=variable.VariableNameCV(), desc=variable.VariableDefinition(), geometry=elementset, unit=unit, variable=variable, type=ExchangeItemType.Output) # save the output item output_items.append(ei) # build inputs input_items = [] for key, vars in inputs.iteritems(): for var_name in vars: # build variable and unit variable = mdl.create_variable(var_name) unit = mdl.create_unit(var_name) # build elementset id_inc = 0 geometries = geoms[key] elementset = [] for i, geom in geometries: dv = DataValues() elem = Geometry(geom=geom, id=id_inc) elem.type(geom.geom_type) elem.srs(srs) elem.datavalues(dv) elementset.append(elem) id_inc += 1 # create exchange item ei = ExchangeItem(id, name=variable.VariableNameCV(), desc=variable.VariableDefinition(), geometry=elementset, unit=unit, variable=variable, type=ExchangeItemType.Input) # save the output item input_items.append(ei) # set the input and output items self.outputs(value=output_items) self.inputs(value=input_items)
def build_swmm_inputs_and_outputs(self, geoms): # define the model inputs and outputs # outputs = {'subcatchment':['Groundwater_outflow','Wash_off_concentration','Groundwater_elevation','Runoff_rate'], # 'link' : ['Flow_depth','Flow_rate','Flow_velocity'], # 'node' : ['Volume_stored_ponded','Lateral_inflow','Total_inflow','Depth_above_invert','Hydraulic_head','Flow_lost_flooding'] # } # # inputs = {'subcatchment' : ['Evaporation','Rainfall','Snow_depth'], # 'link' : ['Froude_number','Capacity','Flow_rate','Flow_velocity'], # 'node' : ['Lateral_inflow','Hydraulic_head'] # } outputs = { 'link' : ['Flow_depth','Flow_rate'], 'node' : ['Hydraulic_head'] } inputs = {'subcatchment' : ['Rainfall'], 'link' : ['Flow_rate'], 'node' : ['Hydraulic_head'] } # get spatial reference system (use default if none is provided in config) srs = spatial.get_srs_from_epsg(code=None) if self.config_params.has_key('spatial'): if self.config_params['spatial'].has_key('srs'): srs = spatial.get_srs_from_epsg(self.config_params['spatial']['srs']) # build outputs output_items = [] for key, vars in outputs.iteritems(): for var_name in vars: # build variable and unit variable = mdl.create_variable(var_name) unit = mdl.create_unit(var_name) # build elementset geometries = geoms[key] elements = [] for i, v in geometries.iteritems(): # get the geometry object, multi-geometries g = v['geometry'][0] # save the geometry for lookup later self.__geom_lookup[i] = g elements.append(g) # create exchange item ei = ExchangeItem(id, name=variable.VariableNameCV(), desc=variable.VariableDefinition(), geometry=elements, unit= unit, variable=variable, type=ExchangeItemType.OUTPUT) # save the output item output_items.append(ei) # build inputs input_items = [] for key, vars in inputs.iteritems(): for var_name in vars: # build variable and unit variable = mdl.create_variable(var_name) unit = mdl.create_unit(var_name) # build elementset id_inc = 0 geometries = geoms[key] elements = [] for i, v in geometries.iteritems(): # get the geometry object, multi-geometries g = v['geometry'][0] # save the geometry for lookup later self.__geom_lookup[i] = g elements.append(g) # create exchange item ei = ExchangeItem(id, name=variable.VariableNameCV(), desc=variable.VariableDefinition(), geometry=elements, unit= unit, variable=variable, type=ExchangeItemType.INPUT) # save the output item input_items.append(ei) # set the input and output items self.outputs(value = output_items) self.inputs(value = input_items)