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
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
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
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)
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))
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))
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)
def _execute_callback(self, callback): """Runs the callback.""" if callback: try: callback() except PYSWMMException: error_msg = "Callback Failed" raise PYSWMMException((error_msg))
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
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))
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))
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)
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)
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)
def __init__(self, model): if not model._model.fileLoaded: raise PYSWMMException("SWMM Model Not Open") self._model = model._model
def __getitem__(self, subcatchmentid): if self.__contains__(subcatchmentid): return Subcatchment(self._model, subcatchmentid) else: raise PYSWMMException("Subcatchment ID Does not Exist")
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")
def __getitem__(self, index): if self.__contains__(index): return LidUnit(self._model, self._subcatchmentid, index) else: raise PYSWMMException("Lid Unit Does Not Exist")
def __getitem__(self, linkid): if self.__contains__(linkid): return Link(self._model, linkid) else: raise PYSWMMException("Link ID Does not Exist")
def __getitem__(self, nodeid): if self.__contains__(nodeid): return Node(self._model, nodeid) else: raise PYSWMMException("Node ID Does not Exist")