Add EPANET2 output format

This commit is contained in:
WQY\qiong
2023-03-01 22:05:34 +08:00
parent cf76427562
commit e83d3a83a5
18 changed files with 32 additions and 23 deletions

View File

@@ -69,7 +69,7 @@ def set_status(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# link value # link value
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpStatus: class InpStatus:

View File

@@ -94,7 +94,8 @@ def delete_pattern(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# ;desc
# id mult1 mult2 ..... # id mult1 mult2 .....
#-------------------------------------------------------------- #--------------------------------------------------------------
def inp_in_pattern(section: list[str]) -> ChangeSet: def inp_in_pattern(section: list[str]) -> ChangeSet:

View File

@@ -122,7 +122,8 @@ def delete_curve(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# ;type: desc
# id x y # id x y
#-------------------------------------------------------------- #--------------------------------------------------------------
def inp_in_curve(section: list[str]) -> ChangeSet: def inp_in_curve(section: list[str]) -> ChangeSet:

View File

@@ -132,7 +132,7 @@ def set_pump_energy(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# GLOBAL {PRICE/PATTERN/EFFIC} value # GLOBAL {PRICE/PATTERN/EFFIC} value
# PUMP id {PRICE/PATTERN/EFFIC} value # PUMP id {PRICE/PATTERN/EFFIC} value
# DEMAND CHARGE value # DEMAND CHARGE value

View File

@@ -60,7 +60,7 @@ def set_emitter(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# node Ke # node Ke
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpEmitter: class InpEmitter:

View File

@@ -60,7 +60,7 @@ def set_quality(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# node initqual # node initqual
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpQuality: class InpQuality:

View File

@@ -103,7 +103,7 @@ def delete_source(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# node sourcetype quality (pattern) # node sourcetype quality (pattern)
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpSource: class InpSource:

View File

@@ -182,7 +182,7 @@ def set_tank_reaction(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# ORDER {BULK/WALL/TANK} value # ORDER {BULK/WALL/TANK} value
# GLOBAL BULK coeff # GLOBAL BULK coeff
# GLOBAL WALL coeff # GLOBAL WALL coeff

View File

@@ -97,7 +97,7 @@ def delete_mixing(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# TankID MixModel FractVolume # TankID MixModel FractVolume
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpMixing: class InpMixing:

View File

@@ -12,7 +12,7 @@ def get_node_coord(name: str, id: str) -> dict[str, float]:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# id x y # id x y
#-------------------------------------------------------------- #--------------------------------------------------------------
# exception ! need merge to node change set ! # exception ! need merge to node change set !

View File

@@ -76,7 +76,7 @@ def delete_vertex(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# id x y # id x y
#-------------------------------------------------------------- #--------------------------------------------------------------
def inp_in_vertex(section: list[str]) -> ChangeSet: def inp_in_vertex(section: list[str]) -> ChangeSet:

View File

@@ -122,7 +122,10 @@ def delete_junction(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2]
# id elev. (demand) (demand pattern) # [IN]
# id elev. (demand) (demand pattern) ;desc
# [OUT]
# id elev. ;desc
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpJunction: class InpJunction:
def __init__(self, line: str) -> None: def __init__(self, line: str) -> None:

View File

@@ -117,8 +117,8 @@ def delete_reservoir(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# id elev (pattern) # id elev (pattern) ;desc
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpReservoir: class InpReservoir:
def __init__(self, line: str) -> None: def __init__(self, line: str) -> None:

View File

@@ -145,8 +145,10 @@ def delete_tank(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# id elev initlevel minlevel maxlevel diam (minvol vcurve) # id elev initlevel minlevel maxlevel diam (minvol vcurve overflow) ;desc
# xxx
# * YES
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpTank: class InpTank:
def __init__(self, line: str) -> None: def __init__(self, line: str) -> None:

View File

@@ -125,7 +125,10 @@ def delete_pipe(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2]
# id node1 node2 length diam rcoeff (lcoeff) (status) # [IN]
# id node1 node2 length diam rcoeff (lcoeff status) ;desc
# [OUT]
# id node1 node2 length diam rcoeff lcoeff (status) ;desc
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpPipe: class InpPipe:
def __init__(self, line: str) -> None: def __init__(self, line: str) -> None:

View File

@@ -115,8 +115,8 @@ def delete_pump(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] Version 1.x is deprecated # [EPANET2][IN][OUT]
# id node1 node2 KEYWORD value {KEYWORD value ...} # id node1 node2 KEYWORD value {KEYWORD value ...} ;desc
# where KEYWORD = [POWER,HEAD,PATTERN,SPEED] # where KEYWORD = [POWER,HEAD,PATTERN,SPEED]
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpPump: class InpPump:

View File

@@ -123,7 +123,7 @@ def delete_valve(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# id node1 node2 diam type setting (lcoeff lcurve) # id node1 node2 diam type setting (lcoeff lcurve)
# for GPV, setting is string = head curve id # for GPV, setting is string = head curve id
# for PCV, add loss curve if present # for PCV, add loss curve if present

View File

@@ -86,9 +86,8 @@ def set_demand(name: str, cs: ChangeSet) -> ChangeSet:
#-------------------------------------------------------------- #--------------------------------------------------------------
# [EPANET2] # [EPANET2][IN][OUT]
# MULTIPLY factor # node base_demand (pattern) ;category
# node base_demand (pattern)
#-------------------------------------------------------------- #--------------------------------------------------------------
class InpDemand: class InpDemand:
def __init__(self, line: str) -> None: def __init__(self, line: str) -> None: