mirror of https://gitlab.com/pamhyr/pamhyr2
Solver: Mage: Fix export where data is deleted.
parent
6288f039d2
commit
645a76b0e8
|
|
@ -250,21 +250,26 @@ class Mage(CommandLineSolver):
|
||||||
|
|
||||||
# Generate sediment additional data if available
|
# Generate sediment additional data if available
|
||||||
sediment = ""
|
sediment = ""
|
||||||
if profile.sl is not None:
|
if profile.sl is None:
|
||||||
if not any(filter(lambda f: ".GRA" in f, files)):
|
return
|
||||||
files.append(self._gra_file)
|
|
||||||
|
|
||||||
# Number of layers
|
if profile.sl.is_deleted():
|
||||||
nl = len(profile.sl)
|
return
|
||||||
sediment = f" {nl:>3}"
|
|
||||||
|
|
||||||
# Layers data
|
if not any(filter(lambda f: ".GRA" in f, files)):
|
||||||
for layer in profile.sl.layers:
|
files.append(self._gra_file)
|
||||||
sediment += (
|
|
||||||
f" {layer.height:>10} {layer.d50:>10} " +
|
# Number of layers
|
||||||
f"{layer.sigma:>10} " +
|
nl = len(profile.sl)
|
||||||
f"{layer.critical_constraint:>10}"
|
sediment = f" {nl:>3}"
|
||||||
)
|
|
||||||
|
# Layers data
|
||||||
|
for layer in profile.sl.layers:
|
||||||
|
sediment += (
|
||||||
|
f" {layer.height:>10} {layer.d50:>10} " +
|
||||||
|
f"{layer.sigma:>10} " +
|
||||||
|
f"{layer.critical_constraint:>10}"
|
||||||
|
)
|
||||||
|
|
||||||
# Profile header line
|
# Profile header line
|
||||||
wfile.write(f"{num}{c1}{c2}{t} {rk} {pname} {sediment}\n")
|
wfile.write(f"{num}{c1}{c2}{t} {rk} {pname} {sediment}\n")
|
||||||
|
|
@ -278,19 +283,24 @@ class Mage(CommandLineSolver):
|
||||||
# Generate sediment additional data if available
|
# Generate sediment additional data if available
|
||||||
sediment = ""
|
sediment = ""
|
||||||
prev = point.z
|
prev = point.z
|
||||||
if point.sl is not None:
|
if point.sl is None:
|
||||||
# Number of layers
|
return
|
||||||
nl = len(point.sl)
|
|
||||||
sediment = f"{nl:>3}"
|
|
||||||
|
|
||||||
# Layers data
|
if point.sl.is_deleted():
|
||||||
for layer in point.sl.layers:
|
return
|
||||||
prev = round(prev - layer.height, 5)
|
|
||||||
sediment += (
|
# Number of layers
|
||||||
f" {prev:>10} {layer.d50:>10} " +
|
nl = len(point.sl)
|
||||||
f"{layer.sigma:>10} " +
|
sediment = f"{nl:>3}"
|
||||||
f"{layer.critical_constraint:>10}"
|
|
||||||
)
|
# Layers data
|
||||||
|
for layer in point.sl.layers:
|
||||||
|
prev = round(prev - layer.height, 5)
|
||||||
|
sediment += (
|
||||||
|
f" {prev:>10} {layer.d50:>10} " +
|
||||||
|
f"{layer.sigma:>10} " +
|
||||||
|
f"{layer.critical_constraint:>10}"
|
||||||
|
)
|
||||||
|
|
||||||
# Point line
|
# Point line
|
||||||
wfile.write(f"{x} {y} {z} {n} {sediment}\n")
|
wfile.write(f"{x} {y} {z} {n} {sediment}\n")
|
||||||
|
|
@ -311,6 +321,9 @@ class Mage(CommandLineSolver):
|
||||||
if bound.node is None:
|
if bound.node is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if bound.is_deleted():
|
||||||
|
continue
|
||||||
|
|
||||||
name = self.get_node_name(bound.node)
|
name = self.get_node_name(bound.node)
|
||||||
f.write(f"* {bound.node.name} ({name}) {bound.bctype}\n")
|
f.write(f"* {bound.node.name} ({name}) {bound.bctype}\n")
|
||||||
f.write(f"${name}\n")
|
f.write(f"${name}\n")
|
||||||
|
|
@ -383,6 +396,9 @@ class Mage(CommandLineSolver):
|
||||||
if lateral.edge is None:
|
if lateral.edge is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if lateral.is_deleted():
|
||||||
|
return
|
||||||
|
|
||||||
edges = study.river.enable_edges()
|
edges = study.river.enable_edges()
|
||||||
if lateral.edge not in edges:
|
if lateral.edge not in edges:
|
||||||
return
|
return
|
||||||
|
|
@ -405,6 +421,9 @@ class Mage(CommandLineSolver):
|
||||||
f.write(f"*{header[0]:>9}|{header[1]:>10}\n")
|
f.write(f"*{header[0]:>9}|{header[1]:>10}\n")
|
||||||
|
|
||||||
for d in lateral.data:
|
for d in lateral.data:
|
||||||
|
if d.is_deleted():
|
||||||
|
continue
|
||||||
|
|
||||||
if lateral.lctype in ["EV"]:
|
if lateral.lctype in ["EV"]:
|
||||||
f.write(f"{d[0]:10.3f}{-d[1]:10.3f}\n")
|
f.write(f"{d[0]:10.3f}{-d[1]:10.3f}\n")
|
||||||
else:
|
else:
|
||||||
|
|
@ -430,6 +449,9 @@ class Mage(CommandLineSolver):
|
||||||
if friction.begin_strickler is None:
|
if friction.begin_strickler is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if friction.is_deleted():
|
||||||
|
continue
|
||||||
|
|
||||||
num = f"{id:>3}"
|
num = f"{id:>3}"
|
||||||
brk = f"{friction.begin_rk:>10.3f}"
|
brk = f"{friction.begin_rk:>10.3f}"
|
||||||
erk = f"{friction.end_rk:>10.3f}"
|
erk = f"{friction.end_rk:>10.3f}"
|
||||||
|
|
@ -583,26 +605,31 @@ class Mage(CommandLineSolver):
|
||||||
|
|
||||||
def _export_SIN_bhs(self, study, sin_dict, hs, f):
|
def _export_SIN_bhs(self, study, sin_dict, hs, f):
|
||||||
for bhs in hs.basic_structures:
|
for bhs in hs.basic_structures:
|
||||||
if bhs.enabled:
|
if not bhs.enabled:
|
||||||
reach_id = study.river.get_edge_id(hs.input_reach) + 1
|
continue
|
||||||
param_str = ' '.join(
|
|
||||||
[
|
|
||||||
f'{p:>10.3f}'
|
|
||||||
for p in self._export_SIN_parameters(bhs)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
name = bhs.name
|
if bhs.is_deleted():
|
||||||
if name == "":
|
continue
|
||||||
name = f"HS_{bhs.id:>3}".replace(" ", "0")
|
|
||||||
else:
|
|
||||||
name = name.replace(" ", "_")
|
|
||||||
|
|
||||||
f.write(
|
reach_id = study.river.get_edge_id(hs.input_reach) + 1
|
||||||
f"{sin_dict[bhs._type]} " +
|
param_str = ' '.join(
|
||||||
f"{reach_id} {float(hs.input_section.rk):>12.3f} " +
|
[
|
||||||
f"{param_str} {name}\n"
|
f'{p:>10.3f}'
|
||||||
)
|
for p in self._export_SIN_parameters(bhs)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
name = bhs.name
|
||||||
|
if name == "":
|
||||||
|
name = f"HS_{bhs.id:>3}".replace(" ", "0")
|
||||||
|
else:
|
||||||
|
name = name.replace(" ", "_")
|
||||||
|
|
||||||
|
f.write(
|
||||||
|
f"{sin_dict[bhs._type]} " +
|
||||||
|
f"{reach_id} {float(hs.input_section.rk):>12.3f} " +
|
||||||
|
f"{param_str} {name}\n"
|
||||||
|
)
|
||||||
|
|
||||||
def _export_SIN_parameters(self, bhs):
|
def _export_SIN_parameters(self, bhs):
|
||||||
res = [9999.999] * 5
|
res = [9999.999] * 5
|
||||||
|
|
@ -677,12 +704,15 @@ class Mage(CommandLineSolver):
|
||||||
if hs.input_reach is None:
|
if hs.input_reach is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not hs.input_reach.is_enable():
|
if not hs.input_reach.is_enable() or hs.input_reach.is_deleted():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not hs.enabled:
|
if not hs.enabled:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if hs.is_deleted():
|
||||||
|
continue
|
||||||
|
|
||||||
for bhs in hs.basic_structures:
|
for bhs in hs.basic_structures:
|
||||||
if bhs.enabled:
|
if bhs.enabled:
|
||||||
logger.info(bhs._type)
|
logger.info(bhs._type)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue