Commit 07451899 authored by Theophile Terraz's avatar Theophile Terraz
Browse files

export mage SIN file

Showing with 37 additions and 7 deletions
+37 -7
...@@ -212,3 +212,15 @@ class Graph(object): ...@@ -212,3 +212,15 @@ class Graph(object):
def is_enable_edge(self, edge): def is_enable_edge(self, edge):
return edge._enable return edge._enable
#def get_edge_id(self, reach):
# for i, e in enumerate(self.enable_edges):
# if e.id == reach.id:
# return i
def get_edge_id(self, reach):
return next(
filter(
lambda e: e[1].id == reach.id, enumerate(self.enable_edges)
)
)[0]
...@@ -374,13 +374,7 @@ class Mage(CommandLineSolver): ...@@ -374,13 +374,7 @@ class Mage(CommandLineSolver):
with mage_file_open(os.path.join(repertory, f"{name}.INI"), "w+") as f: with mage_file_open(os.path.join(repertory, f"{name}.INI"), "w+") as f:
has_ini = False has_ini = False
id = 1 id = 1
reachs = study.river.edges() reachs = study.river.enable_edges()
reachs = list(
filter(
lambda e: e.is_enable(),
reachs
)
)
# TODO put real date... # TODO put real date...
f.write(f"$ date en minutes : 0.00\n") f.write(f"$ date en minutes : 0.00\n")
...@@ -442,6 +436,29 @@ class Mage(CommandLineSolver): ...@@ -442,6 +436,29 @@ class Mage(CommandLineSolver):
return files return files
@timer
def _export_SIN(self, study, repertory, qlog, name="0"):
files = []
hydraulic_structures = study.river.hydraulic_structures.lst
if len(hydraulic_structures) == 0:
return files
if qlog is not None:
qlog.put("Export SIN file")
with mage_file_open(os.path.join(repertory, f"{name}.SIN"), "w+") as f:
files.append(f"{name}.SIN")
for hs in hydraulic_structures:
if hs.reach.is_enable:
reach_id = study.river.get_edge_id(hs.reach)
params = [p.value for p in hs.basic_hydraulic_structure.param]
param_str = ' '.join([f'{p.value:>10.3f}' for p in hs.basic_hydraulic_structure.param])
f.write(f"{reach_id} {hs.kp:>12.3f} {params} {hs.name}\n")
return files
@timer @timer
def _export_REP(self, study, repertory, files, qlog, name="0"): def _export_REP(self, study, repertory, files, qlog, name="0"):
if qlog is not None: if qlog is not None:
...@@ -683,6 +700,7 @@ class Mage8(Mage): ...@@ -683,6 +700,7 @@ class Mage8(Mage):
self._export_bound_cond(study, repertory, qlog, name=name) self._export_bound_cond(study, repertory, qlog, name=name)
files = files + self._export_RUG(study, repertory, qlog, name=name) files = files + self._export_RUG(study, repertory, qlog, name=name)
files = files + self._export_INI(study, repertory, qlog, name=name) files = files + self._export_INI(study, repertory, qlog, name=name)
files = files + self._export_SIN(study, repertory, qlog, name=name)
files = files + self._export_CAS(study, repertory, qlog, name=name) files = files + self._export_CAS(study, repertory, qlog, name=name)
self._export_REP(study, repertory, files, qlog, name=name) self._export_REP(study, repertory, files, qlog, name=name)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment