Exemple #1
0
 def __init__(self, model, raingageid):
     if not model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     if raingageid not in model.getObjectIDList(ObjectType.GAGE.value):
         raise PYSWMMException("ID Not valid")
     self._model = model
     self._raingageid = raingageid
Exemple #2
0
 def __init__(self, model, linkid):
     if not model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     if linkid not in model.getObjectIDList(ObjectType.LINK.value):
         raise PYSWMMException("ID Not valid")
     self._model = model
     self._linkid = linkid
Exemple #3
0
 def __init__(self, model, subcatchmentid):
     if not model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     if subcatchmentid not in model.getObjectIDList(
             ObjectType.SUBCATCH.value):
         raise PYSWMMException("ID Not valid")
     self._model = model
     self._subcatchmentid = subcatchmentid
Exemple #4
0
 def __init__(self, model, subcatchmentid):
     if not model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     if subcatchmentid not in model.getObjectIDList(
             ObjectType.SUBCATCH.value):
         raise PYSWMMException("Subcatchment ID Does not Exist")
     self._model = model
     self._subcatchmentid = subcatchmentid
     self._cuindex = 0
     self._nLidUnits = model.getLidUCount(subcatchmentid)
    def __init__(self, sim, model, lidcontrolid):
        if not model.fileLoaded:
            raise PYSWMMException("SWMM Model Not Open")
        if lidcontrolid not in model.getObjectIDList(ObjectType.LID.value):
            raise PYSWMMException("ID Not valid")
        self._sim = sim
        self._model = model
        self._lidcontrolid = lidcontrolid

        self.surface = Surface(model, self)
        self.soil = Soil(model, self)
        self.storage = Storage(model, self)
        self.pavement = Pavement(model, self)
        self.drain = Drain(model, self)
        self.drain_mat = DrainMat(model, self)
 def __init__(self, model):
     if not model._model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     self._sim = model
     self._model = model._model
     self._cuindex = 0
     self._nlidcontrols = self._model.getProjectSize(ObjectType.LID.value)
Exemple #7
0
 def __getitem__(self, raingageid):
     if self.__contains__(raingageid):
         rg = RainGage(self._model, raingageid)
         return rg
     else:
         raise PYSWMMException(
             "Raingage ID: {} Does not Exist".format(raingageid))
Exemple #8
0
    def initial_conditions(self, init_conditions):
        """
        Intial Conditions for Hydraulics and Hydrology can be set
        from within the api by setting a function to the
        initial_conditions property.

        >>> from pyswmm import Simulation
        >>>
        >>> with Simulation('./TestModel1_weirSetting.inp') as sim:
        ...     nodeJ1 = Nodes(sim)["J1"]
        ...
        ...     def init_conditions():
        ...         nodeJ1.initial_depth = 4
        ...
        ...     sim.initial_conditions(init_conditions)
        ...
        ...     for step in sim:
        ...         pass
        ...     sim.report()

        """
        if hasattr(init_conditions, '__call__'):
            self._initial_conditions = init_conditions
        else:
            error_msg = 'Requires Type Function, not {}'.format(
                type(init_conditions))
            raise (PYSWMMException(error_msg))
Exemple #9
0
 def __init__(self, model):
     if not model._model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     self._model = model._model
     self._cuindex = 0
     self._nSubcatchments = self._model.getProjectSize(
         ObjectType.SUBCATCH.value)
Exemple #10
0
 def _execute_callback(self, callback):
     """Runs the callback."""
     if callback:
         try:
             callback()
         except PYSWMMException:
             error_msg = "Callback Failed"
             raise PYSWMMException((error_msg))
Exemple #11
0
 def _is_callback(callable_object):
     """Checks if arugment is a function/method."""
     if not callable(callable_object):
         error_msg = 'Requires Callable Object, not {}'.format(
             type(callable_object))
         raise (PYSWMMException(error_msg))
     else:
         return True
Exemple #12
0
 def __getitem__(self, linkid):
     if self.__contains__(linkid):
         ln = Link(self._model, linkid)
         _ln = ln
         if ln.is_conduit():
             _ln.__class__ = Conduit
         elif ln.is_pump():
             _ln.__class__ = Pump
         return _ln
     else:
         raise PYSWMMException("Link ID: {} Does not Exist".format(linkid))
Exemple #13
0
    def __getitem__(self, nodeid):
        if self.__contains__(nodeid):
            nd = Node(self._model, nodeid)
            _nd = nd
            if nd.is_outfall():
                _nd.__class__ = Outfall
            elif nd.is_storage():
                _nd.__class__ = Storage
            return _nd

        else:
            raise PYSWMMException("Node ID: {} Does not Exist".format(nodeid))
Exemple #14
0
    def __init__(self, model, subcatchmentid, lidid):
        if not model.fileLoaded:
            raise PYSWMMException("SWMM Model Not Open")
        self._model = model
        self._subcatchmentid = subcatchmentid
        self._lidid = lidid

        self.surface = Surface(model, self)
        self.pavement = Pavement(model, self)
        self.soil = Soil(model, self)
        self.storage = Storage(model, self)
        self.water_balance = WaterBalance(model, self)
Exemple #15
0
    def index(self, param):
        """Set lid control index """
        if isinstance(param, str) and self._model.ObjectIDexist(
                ObjectType.LID.value, param):
            controlIndex = self._model.getObjectIDIndex(
                ObjectType.LID.value, param)
        elif isinstance(param, int) and param >= 0 and param < self._model.getProjectSize(ObjectType.LID.value):
            controlIndex = param
        else:
            controlIndex = 0
            raise PYSWMMException("Invalid Input")

        return self._model.setLidUOption(self._subcatchmentid,
                                         self._lidid,
                                         LidUOptions.index.value,
                                         controlIndex)
Exemple #16
0
    def drain_node(self, param):
        """Set lid drain to node index"""
        if isinstance(param, str) and self._model.ObjectIDexist(
                ObjectType.NODE.value, param):
            nodeIndex = self._model.getObjectIDIndex(
                ObjectType.NODE.value, param)
        elif isinstance(param, int) and param >= -1 and param < self._model.getProjectSize(ObjectType.NODE.value):
            nodeIndex = param
        else:
            nodeIndex = 0
            raise PYSWMMException("Invalid Input")

        self._model.setLidUOption(self._subcatchmentid,
                                  self._lidid,
                                  LidUOptions.drainNode.value,
                                  nodeIndex)
Exemple #17
0
 def __init__(self, model):
     if not model._model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     self._model = model._model
Exemple #18
0
 def __getitem__(self, subcatchmentid):
     if self.__contains__(subcatchmentid):
         return Subcatchment(self._model, subcatchmentid)
     else:
         raise PYSWMMException("Subcatchment ID Does not Exist")
Exemple #19
0
 def __init__(self, model):
     if not model._model.fileLoaded:
         raise PYSWMMException("SWMM Model Not Open")
     self._model = model._model
     self._cuindex = 0
     self._nRaingages = self._model.getProjectSize(ObjectType.GAGE.value)
 def __getitem__(self, lidcontrolid):
     if self.__contains__(lidcontrolid):
         return LidControl(self._sim, self._model, lidcontrolid)
     else:
         raise PYSWMMException("Lid Control ID Does not Exist")
Exemple #21
0
 def __getitem__(self, index):
     if self.__contains__(index):
         return LidUnit(self._model, self._subcatchmentid, index)
     else:
         raise PYSWMMException("Lid Unit Does Not Exist")
Exemple #22
0
 def __getitem__(self, linkid):
     if self.__contains__(linkid):
         return Link(self._model, linkid)
     else:
         raise PYSWMMException("Link ID Does not Exist")
Exemple #23
0
 def __getitem__(self, nodeid):
     if self.__contains__(nodeid):
         return Node(self._model, nodeid)
     else:
         raise PYSWMMException("Node ID Does not Exist")