mirror of https://gitlab.com/pamhyr/pamhyr2
correct names nodes reaches
parent
100cfd095e
commit
97c161fc3f
|
|
@ -40,6 +40,8 @@ from Checker.Adists import (
|
|||
AdistsOutputRKChecker,
|
||||
)
|
||||
|
||||
from itertools import chain
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
def adists_file_open(filepath, mode):
|
||||
|
|
@ -173,6 +175,67 @@ class AdisTS(CommandLineSolver):
|
|||
name = ""
|
||||
return f"{name}"
|
||||
|
||||
_alph = list(
|
||||
map(
|
||||
chr,
|
||||
chain(
|
||||
range(48, 58), # 0..9
|
||||
range(65, 91), # A..Z
|
||||
range(97, 123) # a..z
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
_l_alph = len(_alph)
|
||||
|
||||
_nodes_cnt = 0
|
||||
_nodes_names = {}
|
||||
_nodes_views = set()
|
||||
|
||||
def get_reach_name(self, reach):
|
||||
return f"Reach_{reach.id:>3}".replace(" ", "0")
|
||||
|
||||
def get_node_name(self, node):
|
||||
"""Generate a 3 char name for node
|
||||
|
||||
Args:
|
||||
node: The node
|
||||
|
||||
Returns:
|
||||
A 3 char name string
|
||||
"""
|
||||
n = node.id
|
||||
|
||||
##print("node name id: ", n)
|
||||
|
||||
##if n in self._nodes_names:
|
||||
##return self._nodes_names[n]
|
||||
|
||||
name = ""
|
||||
|
||||
checked_new = False
|
||||
while not checked_new:
|
||||
self._nodes_cnt += 1
|
||||
nc = self._nodes_cnt
|
||||
|
||||
name = "".join(
|
||||
map(
|
||||
lambda i: self._alph[i % self._l_alph],
|
||||
[
|
||||
int(nc / (self._l_alph * self._l_alph)),
|
||||
int(nc / self._l_alph),
|
||||
nc
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
checked_new = name not in self._nodes_views
|
||||
|
||||
self._nodes_views.add(name)
|
||||
self._nodes_names[n] = name
|
||||
|
||||
return name
|
||||
|
||||
#################################
|
||||
# Adis-TS in weak coupling mode #
|
||||
#################################
|
||||
|
|
@ -252,7 +315,8 @@ class AdisTSwc(AdisTS):
|
|||
|
||||
with adists_file_open(os.path.join(repertory, f"{POL_name}.ALD"), "w+") as f:
|
||||
for LC in POL_LC:
|
||||
reach_name = next(filter(lambda edge: edge.id == LC.edge, study.river.edges())).name
|
||||
reach = next(filter(lambda edge: edge.id == LC.edge, study.river.edges())) #.name
|
||||
reach_name = self.get_reach_name(self, reach)
|
||||
f.write(f"${reach_name} {LC.begin_rk} {LC.end_rk}\n")
|
||||
f.write(f"*temps |débit massique (kg/s)\n")
|
||||
f.write(f"*---------++++++++++\n")
|
||||
|
|
@ -270,7 +334,9 @@ class AdisTSwc(AdisTS):
|
|||
|
||||
with adists_file_open(os.path.join(repertory, f"{POL_name}.CDT"), "w+") as f:
|
||||
for BC in POL_BC:
|
||||
node_name = next(filter(lambda x: x.id == BC.node, study.river._nodes)).name
|
||||
node = next(filter(lambda x: x.id == BC.node, study.river._nodes)) #.name
|
||||
print("node name in BC:", node, node.name)
|
||||
node_name = self.get_node_name(node)
|
||||
f.write(f"${node_name}\n")
|
||||
|
||||
if BC.type == "Concentration":
|
||||
|
|
|
|||
Loading…
Reference in New Issue