From d27ce9d1d855d5a1dbc561c927c24dc86baeb049 Mon Sep 17 00:00:00 2001 From: Dylan Jeannin Date: Fri, 17 Jul 2026 13:45:40 +0200 Subject: [PATCH] AdisTT: rewriting reach names in parser + copy the net folder from mage --- src/Solver/AdisTS.py | 7 ++++--- src/Solver/AdisTT.py | 29 +++++++++++++++++++---------- src/Solver/Mage.py | 5 +++-- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/Solver/AdisTS.py b/src/Solver/AdisTS.py index 6f2580bf..3852a2eb 100644 --- a/src/Solver/AdisTS.py +++ b/src/Solver/AdisTS.py @@ -182,7 +182,7 @@ class AdisTS(CommandLineSolver): # Write header edges = study.river.enable_edges() for edge in edges: - name = f"Reach_{edge.id + 1:>3}".replace(" ", "0") + name = self.get_reach_name(edge) with adists_file_open( os.path.join(repertory, "net", f"{name}.ST"), @@ -277,7 +277,7 @@ class AdisTS(CommandLineSolver): edges = study.river.enable_edges() for e in edges: - name = f"Reach_{e.id + 1:>3}".replace(" ", "0") + name = self.get_reach_name(e) id = name n1 = f"{self.get_node_name(e.node1):3}".replace(" ", "x") @@ -453,7 +453,8 @@ class AdisTS(CommandLineSolver): _nodes_views = set() def get_reach_name(self, reach): - return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0") + index = self._study.river.get_edge_id(reach) + 1 + return f"Reach_{index:03d}" ################################# # Adis-TS in weak coupling mode # diff --git a/src/Solver/AdisTT.py b/src/Solver/AdisTT.py index 9c6214e6..a19940b9 100644 --- a/src/Solver/AdisTT.py +++ b/src/Solver/AdisTT.py @@ -113,7 +113,8 @@ class AdisTT(CommandLineSolver): _nodes_views = set() def get_reach_name(self, reach): - return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0") + index = self._study.river.get_edge_id(reach) + 1 + return f"Reach_{index:03d}" def get_node_name(self, node): """Generate a 3 char name for node @@ -177,7 +178,7 @@ class AdisTT(CommandLineSolver): # Write header edges = study.river.enable_edges() for edge in edges: - name = f"Reach_{edge.id + 1:>3}".replace(" ", "0") + name = self.get_reach_name(edge) with adistt_file_open( os.path.join(repertory, "net", f"{name}.ST"), @@ -240,7 +241,7 @@ class AdisTT(CommandLineSolver): edges = study.river.enable_edges() for e in edges: - name = f"Reach_{e.id + 1:>3}".replace(" ", "0") + name = self.get_reach_name(e) id = name n1 = f"{self.get_node_name(e.node1):3}".replace(" ", "x") @@ -412,9 +413,6 @@ class AdisTT(CommandLineSolver): _nodes_names = {} _nodes_views = set() - def get_reach_name(self, reach): - return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0") - ################################# # Adis-TT in weak coupling mode # ################################# @@ -1007,10 +1005,7 @@ class AdisTTwc(AdisTT): reach = weather_parameter.reach if reach is None: return None - reach_name = ( - f"Reach_{study.river.get_edge_id(reach) + 1:>3}" - .replace(" ", "0") - ) + reach_name = self.get_reach_name(reach) f.write( f"${reach_name} {weather_parameter.begin_rk} " f"{weather_parameter.end_rk}\n" @@ -1117,6 +1112,20 @@ class AdisTTwc(AdisTT): self._study = study name = study.name.replace(" ", "_") + mage_path = os.path.join( + os.path.abspath(os.path.join(repertory, os.pardir)), + mage_rep + ) + source_net = os.path.join(mage_path, "net") + destination_net = os.path.join(repertory, "net") + + if qlog is not None: + qlog.put("Copy Mage net directory") + + if os.path.exists(destination_net): + shutil.rmtree(destination_net) + shutil.copytree(source_net, destination_net) + # Node names must be deterministic and identical in NET and TEM.CDT. self._nodes_cnt = 0 self._nodes_names = {} diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py index 3ad490ae..1428f583 100644 --- a/src/Solver/Mage.py +++ b/src/Solver/Mage.py @@ -130,7 +130,8 @@ class Mage(CommandLineSolver): _nodes_views = set() def get_reach_name(self, reach): - return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0") + index = self._study.river.get_edge_id(reach) + 1 + return f"Reach_{index:03d}" def get_node_name(self, node): """Generate a 3 char name for node @@ -210,7 +211,7 @@ class Mage(CommandLineSolver): # Write header edges = study.river.enable_edges() for edge in edges: - name = f"Reach_{edge.pamhyr_id:>3}".replace(" ", "0") + name = self.get_reach_name(edge) with mage_file_open( os.path.join(repertory, "net", f"{name}.ST"),