Exemplo n.º 1
0
 def junctions(self):
     nodes = []
     num_nodes = toolkit.getcount(self.ph, toolkit.NODECOUNT)
     for node in range(1, num_nodes + 1):
         if toolkit.getnodetype(self.ph, node) == toolkit.JUNCTION:
             nodes.append(toolkit.getnodeid(self.ph, node))
     return nodes
 def getNodeTypeIndex(self):
     value = range(1, self.NodeCount + 1)
     # print(value)
     nodeTypeIndex = list()
     for i in value:
         # print(i)
         type = en.getnodetype(ph=self.epanet_proj, index=i)
         # print(type)
         nodeTypeIndex.append(type)
     return nodeTypeIndex
Exemplo n.º 3
0
def print_node_heads(ph, time, node_count):
    print(f'Time: {time}')
    for i in range(1, node_count + 1):
        node_type = en.getnodetype(ph, i)
        node_id = en.getnodeid(ph, i)
        head = en.getnodevalue(ph, i, en.HEAD)
        pressure = en.getnodevalue(ph, i, en.PRESSURE)
        demand = en.getnodevalue(ph, i, en.DEMAND)
        print(
            f'Node: {i:2}, ID: {node_id}, type: {node_type_str[node_type]},',
            f'head: {head:8g}, pressure: {pressure:8g}, demand: {demand:8g}')
Exemplo n.º 4
0
    def getNodeNames(self):
        names = []
        nodeCount = en.getcount(ph=self.project, object=en.NODECOUNT)

        for idx in range(nodeCount):
            index = idx + 1
            # Get node id.
            nodeId = en.getnodeid(ph=self.project, index=index)
            # Get node type.
            nodeType = "Node"
            if en.getnodetype(ph=self.project, index=index) == en.TANK:
                nodeType = "Tank"
            elif en.getnodetype(ph=self.project, index=index) == en.JUNCTION:
                nodeType = "Junction"
            elif en.getnodetype(ph=self.project, index=index) == en.RESERVOIR:
                nodeType = "Reservoir"
            else:
                nodeType = "Unknown"
            names.append(nodeType + "-" + nodeId + " (tanklevel)")
            names.append(nodeType + "-" + nodeId + " (head)")
            names.append(nodeType + "-" + nodeId + " (demand)")
            names.append(nodeType + "-" + nodeId + " (pressure)")

        return names
def test_setnodevalue():
    epanet_proj = en.createproject()
    en.open(ph=epanet_proj, inpFile=example_1_path, rptFile='report.rpt', outFile='output.out')
    num_nodes = en.getcount(ph=epanet_proj, object=en.NODECOUNT)
    elev_list = []
    demand_list = []
    pattern_list=[]
    emitter_list = []
    initqual_list = []
    tank_level_list = []
    for node_ind in range(1, num_nodes+1):
        # elevation
        elev = en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.ELEVATION)
        en.setnodevalue(ph=epanet_proj, index=node_ind, property=en.ELEVATION, value=elev + 1)
        elev_list.append(en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.ELEVATION))
        # base demand
        demand = en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.BASEDEMAND)
        en.setnodevalue(ph=epanet_proj, index=node_ind, property=en.BASEDEMAND, value=demand + 1)
        demand_list.append(en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.BASEDEMAND))
        # pattern
        en.setnodevalue(ph=epanet_proj, index=node_ind, property=en.PATTERN, value=0)
        pattern_list.append(en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.PATTERN))
        # emitter
        en.setnodevalue(ph=epanet_proj, index=node_ind, property=en.EMITTER, value=0.01)
        emitter_list.append(en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.EMITTER))
        # initqual
        initqual = en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.INITQUAL)
        en.setnodevalue(ph=epanet_proj, index=node_ind, property=en.INITQUAL, value=initqual + 0.1)
        initqual_list.append(en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.INITQUAL))
        # tanklevel
        if en.getnodetype(ph=epanet_proj, index=node_ind) == en.TANK:
            tank_level = en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.TANKLEVEL)
            en.setnodevalue(ph=epanet_proj, index=node_ind, property=en.TANKLEVEL, value=tank_level + 1)
            tank_level_list.append(en.getnodevalue(ph=epanet_proj, index=node_ind, property=en.TANKLEVEL))
    assert elev_list == [711.0, 711.0, 701.0, 696.0, 701.0, 696.0, 691.0, 701.0, 711.0, 801.0, 851.0]
    assert demand_list == [1.0, 151.0, 151.0, 101.0, 151.0, 201.0, 151.0, 101.0, 101.0, 0.0, 0.0]
    assert pattern_list == [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    assert emitter_list == [0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.0, 0.0]
    assert initqual_list == [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 1.1, 1.1]
    assert tank_level_list ==[121.0]
    clean_dir()