Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)