From 05e70d40d0a331971c05f6880d6559bd52b88d47 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Mon, 26 Jun 2023 13:34:25 +0200
Subject: [PATCH] Mage: Get only enable edges for export files.

---
 src/Solver/Mage.py | 79 ++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 72 insertions(+), 7 deletions(-)

diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py
index b7ddba43..22e026d2 100644
--- a/src/Solver/Mage.py
+++ b/src/Solver/Mage.py
@@ -74,7 +74,15 @@ class Mage(AbstractSolver):
             qlog.put("Export ST file")
 
         # Write header
-        for edge in study.river.edges():
+        edges = study.river.edges()
+        edges = list(
+            filter(
+                lambda e: e.is_enable(),
+                edges
+            )
+        )
+
+        for edge in edges:
             name = edge.name.replace(" ", "_")
             if edge._name == "":
                 name = f"Reach_{edge.id}"
@@ -114,6 +122,8 @@ class Mage(AbstractSolver):
             t = "AVA"
         elif bound.bctype == "TD":
             t = "HYD"
+        elif bound.bctype == "TZ":
+            t = "LIM"
         else:
             return None
 
@@ -134,7 +144,6 @@ class Mage(AbstractSolver):
             for d in bound.data:
                 f.write(f"{d[0]:10.3f}{d[1]:10.3f}\n")
 
-
         return files
 
     @timer
@@ -148,6 +157,40 @@ class Mage(AbstractSolver):
 
         return files
 
+    # @timer
+    # def _export_LC(self, lateral, repertory, qlog):
+    #     files = []
+
+    #     if qlog is not None:
+    #         qlog.put(f"Export LAT file")
+
+    #     with open(os.path.join(repertory, f"0.LAT"), "w+") as f:
+    #         files.append(f"0.LAT")
+
+    #         f.write("* This file is generate by PAMHYR, please don't modify\n")
+
+    #         name = f"{lateral.node.id:3}".replace(" ", "x")
+    #         f.write(f"* {lateral.node.name} ({name}) {lateral.bctype}\n")
+    #         f.write(f"${name}\n")
+    #         header = lateral.header
+    #         f.write(f"*{header[0]:>9}|{header[1]:>10}\n")
+
+    #         for d in lateral.data:
+    #             f.write(f"{d[0]:10.3f}{d[1]:10.3f}\n")
+
+    #     return files
+
+    # @timer
+    # def _export_lateral_contrib(self, study, repertory, qlog):
+    #     files = []
+    #     lst = study.river.lateral_contribution
+
+    #     for tab in ["liquid", "solid", "suspenssion"]:
+    #         for lateral in lst.get_tab(tab):
+    #             files = files + self._export_LC(lateral, repertory,  qlog)
+
+    #     return files
+
     @timer
     def _export_RUG(self, study, repertory, qlog):
         files = []
@@ -160,8 +203,15 @@ class Mage(AbstractSolver):
             files.append("0.RUG")
             f.write("* This file is generate by PAMHYR, please don't modify\n")
 
-            id = 1
             edges = study.river.edges()
+            edges = list(
+                filter(
+                    lambda e: e.is_enable(),
+                    edges
+                )
+            )
+
+            id = 1
             for edge in edges:
                 sections = edge.sections
 
@@ -170,15 +220,16 @@ class Mage(AbstractSolver):
                     bkp = f"{section.begin_kp:>10.3f}"
                     ekp = f"{section.end_kp:>10.3f}"
 
-                    if section.begin_kp != section.end_kp:
-                        print("TODO")
+                    # if section.begin_kp != section.end_kp:
+                    #     print("TODO")
 
                     strickler = section.begin_strickler
                     coef_1 = f"{strickler.minor:>10.3f}"
                     coef_2 = f"{strickler.medium:>10.3f}"
 
                     f.write(f"K{num}      {bkp}{ekp}{coef_1}{coef_2}\n")
-                    id += 1
+
+                id += 1
 
         return files
 
@@ -199,6 +250,14 @@ class Mage(AbstractSolver):
 
             id = 1
             reachs = study.river.edges()
+            reachs = list(
+                filter(
+                    lambda e: e.is_enable(),
+                    reachs
+                )
+            )
+
+            id = 1
             for reach in reachs:
                 cond = study.river.initial_conditions.get(reach)
                 data = cond.data
@@ -228,7 +287,6 @@ class Mage(AbstractSolver):
             f.write("confirmation=non\n")
             f.write("* This file is generate by PAMHYR, please don't modify\n")
 
-            edges = study.river.edges()
             for file in files:
                 EXT = file.split('.')[1]
 
@@ -322,6 +380,13 @@ class Mage8(Mage):
             f.write("* This file is generate by PAMHYR, please don't modify\n")
 
             edges = study.river.edges()
+            edges = list(
+                filter(
+                    lambda e: e.is_enable(),
+                    edges
+                )
+            )
+
             for e in edges:
                 name = e.name.replace(" ", "_")
                 if e._name == "":
-- 
GitLab