Skip to content

Commit 973d947

Browse files
committed
add functions getNodeReservoirHeadPatternIndex and setNodeReservoirHeadPatternIndex and update
The functions below are already available to the user, but new functions have been added specifically for setting and retrieving reservoir head pattern. setNodeDemandPatternIndex getNodeDemandPatternIndex
1 parent 6d808bf commit 973d947

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ If you want to contribute, please check out our [Code of Conduct](https://github
283283
| getNodeReservoirCount |Retrieves the number of Reservoirs
284284
| getNodeReservoirIndex |Retrieves the indices of reservoirs
285285
| getNodeReservoirNameID |Retrieves the reservoir ID label
286+
| getNodeReservoirHeadPatternIndex |Retrieves the indices of all reservoir head patterns
286287
| getNodeResultIndex |Retrieves the order in which a node's results were saved to an output file
287288
| getNodeSourcePatternIndex |Retrieves the value of all node source pattern index
288289
| getNodeSourceQuality |Retrieves the value of all node source quality
@@ -448,6 +449,7 @@ If you want to contribute, please check out our [Code of Conduct](https://github
448449
| setNodeComment |Sets the comment string assigned to the node object
449450
| setNodeCoordinates |Sets node coordinates
450451
| setNodeDemandPatternIndex |Sets the values of demand time pattern indices
452+
| setNodeReservoirHeadPatternIndex |Sets the pattern index for a reservoir node head
451453
| setNodeElevations |Sets the values of elevation for nodes
452454
| setNodeEmitterCoeff |Sets the values of emitter coefficient for nodes
453455
| setNodeInitialQuality |Sets the values of initial quality for nodes

epyt/epanet.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4380,6 +4380,24 @@ def getNodeDemandPatternIndex(self):
43804380
value[i + 1] = list(val[i])
43814381
return value
43824382

4383+
def getNodeReservoirHeadPatternIndex(self):
4384+
""" Retrieves the value of all reservoir head pattern index.
4385+
4386+
Example:
4387+
d = epanet('net2-cl2.inp')
4388+
res_index = d.addNodeReservoir("res-1")
4389+
pidx = d.addPattern("pat-1", [1, 3])
4390+
d.setNodeReservoirHeadPatternIndex(res_index, pidx)
4391+
print(d.getNodeDemandPatternIndex())
4392+
print(d.getNodeReservoirHeadPatternIndex())
4393+
4394+
"""
4395+
value = []
4396+
for i in self.getNodeReservoirIndex():
4397+
pattern_index = self.api.ENgetnodevalue(i, self.ToolkitConstants.EN_PATTERN)
4398+
value.append(pattern_index)
4399+
return value
4400+
43834401
def getNodeDemandPatternNameID(self):
43844402
""" Retrieves the value of all node base demands pattern name ID.
43854403

@@ -8281,6 +8299,22 @@ def setNodeDemandPatternIndex(self, value, *argv):
82818299
"""
82828300
self.__setNodeDemandPattern('ENsetdemandpattern', self.ToolkitConstants.EN_PATTERN, value, *argv)
82838301

8302+
def setNodeReservoirHeadPatternIndex(self, value, *argv):
8303+
""" Sets the pattern index for a reservoir node head
8304+
This is a duplicate function—identical in behavior to setNodeDemandPatternIndex
8305+
8306+
Example 1:
8307+
d = epanet('net2-cl2.inp')
8308+
res_index = d.addNodeReservoir("res-1")
8309+
pidx = d.addPattern("pat-1")
8310+
d.setNodeReservoirHeadPatternIndex(res_index, pidx)
8311+
d.setPattern(pidx, 1)
8312+
"""
8313+
if value in self.getNodeReservoirIndex():
8314+
self.__setNodeDemandPattern('ENsetdemandpattern', self.ToolkitConstants.EN_PATTERN, value, *argv)
8315+
else:
8316+
warnings.warn("Invalid reservoir index. For non-reservoir nodes, please use the setNodeDemandPatternIndex function.")
8317+
82848318
def setNodeElevations(self, value, *argv):
82858319
""" Sets the values of elevation for nodes.
82868320

0 commit comments

Comments
 (0)