Compare commits

...
Author SHA1 Message Date
Theophile Terraz 5bc514c565 pep8 2025-11-26 11:58:58 +01:00
Theophile Terraz 1da3461dfe debug meshing 2025-11-26 11:16:19 +01:00
Theophile Terraz dd5eecb1e2 pep8 2025-11-24 15:18:28 +01:00
7 changed files with 43 additions and 88 deletions

No files matched your search

+15 -22
View File
@@ -63,8 +63,6 @@ class InternalMeshing(AMeshingTool):
gl = reach.compute_guidelines()
profiles = reach.profiles[limites[0]:limites[1]+1]
print(profiles)
# we make sure that the lines are in the left-to-right order
guide_list = [
x.name
@@ -72,38 +70,30 @@ class InternalMeshing(AMeshingTool):
if x.name in gl[0]
]
gl1 = [""] + guide_list
gl2 = guide_list + [""]
max_values = [0] * (len(guide_list) + 1)
max_values_index = [0] * (len(guide_list) + 1)
guide_list = ["un"] + guide_list + ["np"]
max_values = [0] * (len(guide_list) - 1)
max_values_index = [0] * (len(guide_list) - 1)
# we work between each couple of guidelines
for j, p in enumerate(profiles):
index1 = 0
index2 = p.named_point_index(guide_list[0])
if index2 - index1 > max_values[0]:
max_values[0] = index2 - index1
max_values_index[0] = j
for i in range(len(guide_list) - 1):
index1 = p.named_point_index(guide_list[i])
index2 = p.named_point_index(guide_list[i+1])
if index2 - index1 > max_values[i + 1]:
max_values[i + 1] = index2 - index1
max_values_index[i + 1] = j
index1 = p.named_point_index(guide_list[-1])
index2 = len(p) - 1
if index2 - index1 > max_values[-1]:
max_values[-1] = index2 - index1
max_values_index[-1] = j
if index2 - index1 > max_values[i]:
max_values[i] = index2 - index1
max_values_index[i] = j
for i in range(len(max_values)):
for isect in range(max_values_index[i], len(profiles)-1):
self.compl_sect(profiles[isect],
profiles[isect+1],
gl1[i], gl2[i])
guide_list[i],
guide_list[i+1])
for isect in reversed(range(0, max_values_index[i])):
self.compl_sect(profiles[isect+1],
profiles[isect],
gl1[i], gl2[i])
guide_list[i],
guide_list[i+1])
def interpolate_transversal_step(self,
reach,
@@ -124,11 +114,12 @@ class InternalMeshing(AMeshingTool):
d = 1.0/float(np[i]+1)
ptr0 = ptr
for j in range(np[i]):
p = reach.profiles[ptr0].copy()
p = ProfileXYZ(reach=reach, status=reach._status)
# RATIO entre les deux sections initiales
dj = float(j+1)*d
ptr += 1 # next profile, original
for k in range(len(reach.profiles[ptr0].points)):
p.add()
p.points[k].x = reach.profiles[ptr0].points[k].x + \
dj*(reach.profiles[ptr].points[k].x -
reach.profiles[ptr0].points[k].x)
@@ -302,6 +293,8 @@ class InternalMeshing(AMeshingTool):
sgn = -1.0
else:
sgn = sign(reach.profiles[-1].rk - reach.profiles[0].rk)
if abs(sgn) < 0.5:
sgn = 1.0
reach.profiles[origin].rk = origin_value
+15 -4
View File
@@ -89,12 +89,23 @@ class Profile(object):
return self.points[index]
def named_point(self, name):
return next((p for p in self.points if p.name == name), None)
if name == "un":
return self.points[0]
elif name == "np":
return self.points[-1]
else:
return next((p for p in self.points if p.name == name), None)
def named_point_index(self, name):
return next(
(p for p in enumerate(self.points) if p[1].name == name), None
)[0]
if name == "un":
return 0
elif name == "np":
return len(self.points) - 1
else:
return next(
(p for p in enumerate(self.points) if p[1].name == name),
None
)[0]
@property
def reach(self):
+6 -8
View File
@@ -900,14 +900,12 @@ class ProfileXYZ(Profile, SQLSubModel):
self.point(i+1).z = 0.5 * self.point(i).z + 0.5 * self.point(i+2).z
def copy(self):
p = ProfileXYZ(self.id,
self.name,
self.rk,
self.reach,
self.num,
0,
0, 0,
self._status)
p = ProfileXYZ(name=self.name,
rk=self.rk,
reach=self.reach,
nb_point=0,
code1=0, code2=0,
status=self.reach._status)
for i, k in enumerate(self.points):
p.insert_point(i, k.copy())
+4 -5
View File
@@ -320,7 +320,9 @@ class GeometryWindow(PamhyrWindow):
index = QItemSelection()
if len(ind) > 0:
for i in ind:
index.append(QItemSelectionRange(self.tableView.model().index(i, 0)))
index.append(QItemSelectionRange(
self.tableView.model().index(i, 0))
)
selection.select(
index,
QItemSelectionModel.Rows |
@@ -356,14 +358,11 @@ class GeometryWindow(PamhyrWindow):
def _update_rk(self, data):
try:
mesher = MeshingWithMageMailleurTT()
mesher = InternalMeshing()
self._table.update_rk(mesher, data)
except Exception as e:
logger_exception(e)
raise ExternFileMissingError(
module="mage",
filename="MailleurTT",
path=MeshingWithMageMailleurTT._path(),
src_except=e
)
+3 -3
View File
@@ -296,11 +296,11 @@ class InitialConditionTableModel(PamhyrTableModel):
formated = False
if len(line_split[0]) > 3:
formated = True
elif len(line_split[2]) > 10:
elif len(line_split[2]) > 10:
formated = True
elif len(line_split[3]) > 11:
elif len(line_split[3]) > 11:
formated = True
elif len(line_split[4]) > 9:
elif len(line_split[4]) > 9:
formated = True
if formated: # old PamHyr format
-2
View File
@@ -157,8 +157,6 @@ class TableModel(PamhyrTableModel):
self._lst = _river.reachs
elif self._opt_data == "profile" or self._opt_data == "raw_data":
self._lst = _river.reach(reach).profiles
# self._lst = list(compress(_river.reach(reach).profiles,
# _river.reach(reach).profile_mask))
elif self._opt_data == "solver":
self._lst = self._parent._solvers
-44
View File
@@ -1168,48 +1168,4 @@ class ResultsWindow(PamhyrWindow):
self.update_table_selection_profile(profile_id)
def import_geotiff(self):
# options = QFileDialog.Options()
# settings = QSettings(QSettings.IniFormat,
# QSettings.UserScope, 'MyOrg', )
# options |= QFileDialog.DontUseNativeDialog
#
# file_types = [
# self._trad["file_geotiff"],
# self._trad["file_all"],
# ]
#
# filename, _ = QFileDialog.getOpenFileName(
# self,
# self._trad["open_file"],
# "",
# ";; ".join(file_types),
# options=options
# )
#
# if filename != "":
# with rasterio.open(filename) as data:
# img = data.read()
# b = data.bounds[:]
# # b[0] left
# # b[1] bottom
# # b[2] right
# # b[3] top
# xlim = self.canvas.axes.get_xlim()
# ylim = self.canvas.axes.get_ylim()
# if b[2] > b[0] and b[1] < b[3]:
# self.canvas.axes.imshow(img.transpose((1, 2, 0)),
# extent=[b[0], b[2], b[1], b[3]])
# else:
# dlg = CoordinatesDialog(
# xlim,
# ylim,
# trad=self._trad,
# parent=self
# )
# if dlg.exec():
# self.canvas.axes.imshow(img.transpose((1, 2, 0)),
# extent=dlg.values)
# self.plot_xy.idle()
# self.canvas.axes.set_xlim(xlim)
# self.canvas.axes.set_ylim(ylim)
return