AdisTT: rewriting reach names in parser + copy the net folder from mage

dev_dylan
Dylan Jeannin 2026-07-17 13:45:40 +02:00
parent 885c8ea502
commit d27ce9d1d8
3 changed files with 26 additions and 15 deletions

View File

@ -182,7 +182,7 @@ class AdisTS(CommandLineSolver):
# Write header # Write header
edges = study.river.enable_edges() edges = study.river.enable_edges()
for edge in edges: for edge in edges:
name = f"Reach_{edge.id + 1:>3}".replace(" ", "0") name = self.get_reach_name(edge)
with adists_file_open( with adists_file_open(
os.path.join(repertory, "net", f"{name}.ST"), os.path.join(repertory, "net", f"{name}.ST"),
@ -277,7 +277,7 @@ class AdisTS(CommandLineSolver):
edges = study.river.enable_edges() edges = study.river.enable_edges()
for e in edges: for e in edges:
name = f"Reach_{e.id + 1:>3}".replace(" ", "0") name = self.get_reach_name(e)
id = name id = name
n1 = f"{self.get_node_name(e.node1):3}".replace(" ", "x") n1 = f"{self.get_node_name(e.node1):3}".replace(" ", "x")
@ -453,7 +453,8 @@ class AdisTS(CommandLineSolver):
_nodes_views = set() _nodes_views = set()
def get_reach_name(self, reach): 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 # # Adis-TS in weak coupling mode #

View File

@ -113,7 +113,8 @@ class AdisTT(CommandLineSolver):
_nodes_views = set() _nodes_views = set()
def get_reach_name(self, reach): 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): def get_node_name(self, node):
"""Generate a 3 char name for node """Generate a 3 char name for node
@ -177,7 +178,7 @@ class AdisTT(CommandLineSolver):
# Write header # Write header
edges = study.river.enable_edges() edges = study.river.enable_edges()
for edge in edges: for edge in edges:
name = f"Reach_{edge.id + 1:>3}".replace(" ", "0") name = self.get_reach_name(edge)
with adistt_file_open( with adistt_file_open(
os.path.join(repertory, "net", f"{name}.ST"), os.path.join(repertory, "net", f"{name}.ST"),
@ -240,7 +241,7 @@ class AdisTT(CommandLineSolver):
edges = study.river.enable_edges() edges = study.river.enable_edges()
for e in edges: for e in edges:
name = f"Reach_{e.id + 1:>3}".replace(" ", "0") name = self.get_reach_name(e)
id = name id = name
n1 = f"{self.get_node_name(e.node1):3}".replace(" ", "x") n1 = f"{self.get_node_name(e.node1):3}".replace(" ", "x")
@ -412,9 +413,6 @@ class AdisTT(CommandLineSolver):
_nodes_names = {} _nodes_names = {}
_nodes_views = set() _nodes_views = set()
def get_reach_name(self, reach):
return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0")
################################# #################################
# Adis-TT in weak coupling mode # # Adis-TT in weak coupling mode #
################################# #################################
@ -1007,10 +1005,7 @@ class AdisTTwc(AdisTT):
reach = weather_parameter.reach reach = weather_parameter.reach
if reach is None: if reach is None:
return None return None
reach_name = ( reach_name = self.get_reach_name(reach)
f"Reach_{study.river.get_edge_id(reach) + 1:>3}"
.replace(" ", "0")
)
f.write( f.write(
f"${reach_name} {weather_parameter.begin_rk} " f"${reach_name} {weather_parameter.begin_rk} "
f"{weather_parameter.end_rk}\n" f"{weather_parameter.end_rk}\n"
@ -1117,6 +1112,20 @@ class AdisTTwc(AdisTT):
self._study = study self._study = study
name = study.name.replace(" ", "_") 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. # Node names must be deterministic and identical in NET and TEM.CDT.
self._nodes_cnt = 0 self._nodes_cnt = 0
self._nodes_names = {} self._nodes_names = {}

View File

@ -130,7 +130,8 @@ class Mage(CommandLineSolver):
_nodes_views = set() _nodes_views = set()
def get_reach_name(self, reach): 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): def get_node_name(self, node):
"""Generate a 3 char name for node """Generate a 3 char name for node
@ -210,7 +211,7 @@ class Mage(CommandLineSolver):
# Write header # Write header
edges = study.river.enable_edges() edges = study.river.enable_edges()
for edge in edges: for edge in edges:
name = f"Reach_{edge.pamhyr_id:>3}".replace(" ", "0") name = self.get_reach_name(edge)
with mage_file_open( with mage_file_open(
os.path.join(repertory, "net", f"{name}.ST"), os.path.join(repertory, "net", f"{name}.ST"),