export mage SIN file

setup.py
Theophile Terraz 2023-12-04 17:38:25 +01:00
parent d6753dc986
commit 07451899c4
2 changed files with 37 additions and 7 deletions

View File

@ -212,3 +212,15 @@ class Graph(object):
def is_enable_edge(self, edge):
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]

View File

@ -374,13 +374,7 @@ class Mage(CommandLineSolver):
with mage_file_open(os.path.join(repertory, f"{name}.INI"), "w+") as f:
has_ini = False
id = 1
reachs = study.river.edges()
reachs = list(
filter(
lambda e: e.is_enable(),
reachs
)
)
reachs = study.river.enable_edges()
# TODO put real date...
f.write(f"$ date en minutes : 0.00\n")
@ -442,6 +436,29 @@ class Mage(CommandLineSolver):
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
def _export_REP(self, study, repertory, files, qlog, name="0"):
if qlog is not None:
@ -683,6 +700,7 @@ class Mage8(Mage):
self._export_bound_cond(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_SIN(study, repertory, qlog, name=name)
files = files + self._export_CAS(study, repertory, qlog, name=name)
self._export_REP(study, repertory, files, qlog, name=name)