Commit d4ce6ce8 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

geometry: Some change and fix.

Showing with 32 additions and 29 deletions
+32 -29
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
class Profile(object): class Profile(object):
def __init__(self, kp:float = 0.0, name:str = "", def __init__(self, num: int = 0,
kp:float = 0.0, name:str = "",
code1: int = 0, code2: int = 0, code1: int = 0, code2: int = 0,
_type:str = ""): _type:str = ""):
super(Profile, self).__init__() super(Profile, self).__init__()
......
...@@ -10,6 +10,7 @@ from Model.Geometry.PointXYZ import PointXYZ ...@@ -10,6 +10,7 @@ from Model.Geometry.PointXYZ import PointXYZ
class ProfileXYZ(Profile): class ProfileXYZ(Profile):
def __init__(self, num: int = 0, def __init__(self, num: int = 0,
code1: int = 0, code2: int = 0, code1: int = 0, code2: int = 0,
nb_point: int = 0,
kp: float = 0., name: str = ""): kp: float = 0., name: str = ""):
"""ProfileXYZ constructor """ProfileXYZ constructor
...@@ -33,7 +34,7 @@ class ProfileXYZ(Profile): ...@@ -33,7 +34,7 @@ class ProfileXYZ(Profile):
def __repr__(self): def __repr__(self):
df = pd.DataFrame(columns=["X", "Y", "Z", "Name"], df = pd.DataFrame(columns=["X", "Y", "Z", "Name"],
data=[[p.x, p.y, p.z, p.name] for p in self._list_points]) data=[[p.x, p.y, p.z, p.name] for p in self._points])
return f"\nProfileXYZ : {self.name}\n{df}" return f"\nProfileXYZ : {self.name}\n{df}"
@property @property
...@@ -58,7 +59,7 @@ class ProfileXYZ(Profile): ...@@ -58,7 +59,7 @@ class ProfileXYZ(Profile):
""" """
for point in list_points: for point in list_points:
pt = PointXYZ(*point) pt = PointXYZ(*point)
self._list_points.append(pt) self._points.append(pt)
def get_point_i(self, index: int) -> PointXYZ: def get_point_i(self, index: int) -> PointXYZ:
"""Get point at index. """Get point at index.
...@@ -70,7 +71,7 @@ class ProfileXYZ(Profile): ...@@ -70,7 +71,7 @@ class ProfileXYZ(Profile):
The point. The point.
""" """
try: try:
return self._list_points[index] return self._points[index]
except IndexError: except IndexError:
raise IndexError(f"Invalid point index: {index}") raise IndexError(f"Invalid point index: {index}")
...@@ -81,7 +82,7 @@ class ProfileXYZ(Profile): ...@@ -81,7 +82,7 @@ class ProfileXYZ(Profile):
Nothing. Nothing.
""" """
point_xyz = PointXYZ(0., 0., 0.) point_xyz = PointXYZ(0., 0., 0.)
self._list_points.append(point_xyz) self._points.append(point_xyz)
def delete(self, index: int): def delete(self, index: int):
"""Delete the point at index """Delete the point at index
...@@ -93,7 +94,7 @@ class ProfileXYZ(Profile): ...@@ -93,7 +94,7 @@ class ProfileXYZ(Profile):
Nothing. Nothing.
""" """
try: try:
self._list_points.pop(index) self._points.pop(index)
except IndexError: except IndexError:
raise IndexError(f"Invalid point index: {index}") raise IndexError(f"Invalid point index: {index}")
...@@ -107,7 +108,7 @@ class ProfileXYZ(Profile): ...@@ -107,7 +108,7 @@ class ProfileXYZ(Profile):
Nothing. Nothing.
""" """
profile = ProfileXYZ() profile = ProfileXYZ()
self._list_points.insert(index, profile) self._points.insert(index, profile)
def delete1(self, list_index: list): def delete1(self, list_index: list):
"""Delete a list of points """Delete a list of points
...@@ -124,12 +125,12 @@ class ProfileXYZ(Profile): ...@@ -124,12 +125,12 @@ class ProfileXYZ(Profile):
for idx in indices: for idx in indices:
# if idx < len(self._list_profiles) : # if idx < len(self._list_profiles) :
try: try:
self._list_points.pop(idx) self._points.pop(idx)
except IndexError: except IndexError:
print("Empty list, nothing to delete") print("Empty list, nothing to delete")
except TypeError: except TypeError:
if isinstance(list_index, int): if isinstance(list_index, int):
self._list_points.pop(list_index) self._points.pop(list_index)
print(f"\n{list_index} is not a list\n") print(f"\n{list_index} is not a list\n")
else: else:
raise TypeError( raise TypeError(
...@@ -148,16 +149,16 @@ class ProfileXYZ(Profile): ...@@ -148,16 +149,16 @@ class ProfileXYZ(Profile):
return [x for x in lst if not np.isnan(x)] return [x for x in lst if not np.isnan(x)]
def x(self): def x(self):
return [point.x for point in self._list_points] return [point.x for point in self._points]
def y(self): def y(self):
return [point.y for point in self._list_points] return [point.y for point in self._points]
def z(self): def z(self):
return [point.z for point in self._list_points] return [point.z for point in self._points]
def names(self): def names(self):
return [point.name for point in self._list_points] return [point.name for point in self._points]
def x_max(self): def x_max(self):
return max(self.filter_isnan(self.x)) return max(self.filter_isnan(self.x))
......
...@@ -302,6 +302,9 @@ class Reach: ...@@ -302,6 +302,9 @@ class Reach:
Returns: Returns:
Nothing. Nothing.
""" """
list_profile = []
list_header = []
try: try:
list_profile, list_header = self.read_file_st(str(file_path_name)) list_profile, list_header = self.read_file_st(str(file_path_name))
...@@ -311,6 +314,7 @@ class Reach: ...@@ -311,6 +314,7 @@ class Reach:
prof.import_points(profile) prof.import_points(profile)
self._profiles.append(prof) self._profiles.append(prof)
self._update_profile_numbers() self._update_profile_numbers()
except FileNotFoundError as e: except FileNotFoundError as e:
print(e) print(e)
exception_message_box(e) exception_message_box(e)
...@@ -367,8 +371,8 @@ class Reach: ...@@ -367,8 +371,8 @@ class Reach:
else: else:
pass pass
if list_profile and list_header: # if list_profile and list_header:
raise FileFormatError(filename, f"{list_profile}, {list_header}") # raise FileFormatError(filename, f"{list_profile}, {list_header}")
print("****** Fichier {} lu et traité en {} secondes *******".format(filename, time() - t0)) print("****** Fichier {} lu et traité en {} secondes *******".format(filename, time() - t0))
return list_profile, list_header return list_profile, list_header
......
...@@ -237,31 +237,28 @@ class GeometryWindow(QMainWindow, WindowToolKit): ...@@ -237,31 +237,28 @@ class GeometryWindow(QMainWindow, WindowToolKit):
_translate("MainWindow_reach", "Y (m)"), color='green', fontsize=12 _translate("MainWindow_reach", "Y (m)"), color='green', fontsize=12
) )
self.get_x = self._reach.get_x()
self.get_y = self._reach.get_y()
self.line_xy = [ self.line_xy = [
self.ui.canvas_1.axes.plot(x, y, color='r', lw=1., markersize=3, marker='+') self.ui.canvas_1.axes.plot(x, y, color='r', lw=1.,
for x, y in zip(self.get_x, self.get_y) markersize=3, marker='+')
for x, y in zip(self._reach.get_x(), self._reach.get_y())
] ]
self.get_x_complete_list_ld = self._reach.get_x_complete_list_ld()
self.get_y_complete_list_ld = self._reach.get_y_complete_list_ld()
self.line_ld_1 = self.ui.canvas_1.axes.plot( self.line_ld_1 = self.ui.canvas_1.axes.plot(
self.get_x_complete_list_ld, self._reach.get_guidelines_x(),
self.get_y_complete_list_ld self._reach.get_guidelines_y()
) )
self.plot_selected_1, = self.ui.canvas_1.axes.plot( self.plot_selected_1, = self.ui.canvas_1.axes.plot(
self._reach.get_x_profile_i(0), self._reach.get_profile_i(0).x(),
self._reach.get_y_profile_i(0), self._reach.get_profile_i(0).y(),
lw=1., markersize=3, lw=1., markersize=3,
marker='+', color="b" marker='+', color="b"
) )
self.plot_selected_1.set_visible(False) self.plot_selected_1.set_visible(False)
self.before_plot_selected_1, = self.ui.canvas_1.axes.plot( self.before_plot_selected_1, = self.ui.canvas_1.axes.plot(
self._reach.get_x_profile_i(0), self._reach.get_profile_i(0).x(),
self._reach.get_y_profile_i(0), self._reach.get_profile_i(0).y(),
lw=1., markersize=3, lw=1., markersize=3,
marker='+', color="k", linestyle="--" marker='+', color="k", linestyle="--"
) )
...@@ -269,8 +266,8 @@ class GeometryWindow(QMainWindow, WindowToolKit): ...@@ -269,8 +266,8 @@ class GeometryWindow(QMainWindow, WindowToolKit):
self.before_plot_selected_1.set_visible(False) self.before_plot_selected_1.set_visible(False)
self.after_plot_selected_1, = self.ui.canvas_1.axes.plot( self.after_plot_selected_1, = self.ui.canvas_1.axes.plot(
self._reach.get_x_profile_i(0), self._reach.get_profile_i(0).x(),
self._reach.get_y_profile_i(0), self._reach.get_profile_i(0).y(),
lw=1., markersize=3, lw=1., markersize=3,
marker='+', color="m", linestyle='--' marker='+', color="m", linestyle='--'
) )
......
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