diff --git a/src/View/BoundaryCondition/Edit/Table.py b/src/View/BoundaryCondition/Edit/Table.py
index a7481666..ad4ba66d 100644
--- a/src/View/BoundaryCondition/Edit/Table.py
+++ b/src/View/BoundaryCondition/Edit/Table.py
@@ -211,3 +211,23 @@ class TableModel(PamhyrTableModel):
)
self.layoutAboutToBeChanged.emit()
self.update()
+
+ def read_from_file(self, file_name, bctype):
+
+ logger.debug(f"Import initial conditions from {file_name}")
+ data0 = []
+ data1 = []
+ if bctype == "ZD":
+ mult = 1
+ else:
+ mult = 60
+ with open(file_name, encoding="utf-8") as ini_file:
+ for line in ini_file:
+ if not (line.startswith("#") or
+ line.startswith("*") or
+ line.startswith("$")):
+ line = line.split()
+ data0.append(float(line[0]) * mult)
+ data1.append(line[1])
+
+ self.replace_data(data0, data1)
diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index 88dbae69..64dccbf3 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -30,10 +30,10 @@ from PyQt5.QtGui import (
QKeySequence,
)
-from PyQt5 import QtCore
+from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import (
Qt, QVariant, QAbstractTableModel, QCoreApplication,
- pyqtSlot, pyqtSignal,
+ pyqtSlot, pyqtSignal, QSettings,
)
from PyQt5.QtWidgets import (
@@ -198,6 +198,8 @@ class EditBoundaryConditionWindow(PamhyrWindow):
self.find(QAction, "action_add").triggered.connect(self.add)
self.find(QAction, "action_del").triggered.connect(self.delete)
self.find(QAction, "action_sort").triggered.connect(self.sort)
+ self.find(QAction, "action_import").triggered\
+ .connect(self.import_from_file)
self.find(QAction, "action_generate_uniform").triggered.connect(
self.generate_uniform
)
@@ -293,6 +295,31 @@ class EditBoundaryConditionWindow(PamhyrWindow):
self._table.sort(False)
self.plot.update()
+ def import_from_file(self):
+ options = QFileDialog.Options()
+ settings = QSettings(QSettings.IniFormat,
+ QSettings.UserScope, 'MyOrg', )
+ options |= QFileDialog.DontUseNativeDialog
+
+ if self._data.bctype == "TD":
+ file_types = [self._trad["file_hyd"]]
+ if self._data.bctype == "TZ":
+ file_types = [self._trad["file_lim"]]
+ if self._data.bctype == "ZD":
+ file_types = [self._trad["file_ava"]]
+ file_types.append(self._trad["file_all"])
+
+ file_name, _ = QtWidgets.QFileDialog.getOpenFileName(
+ self,
+ self._trad["open_file"],
+ "",
+ ";; ".join(file_types),
+ options=options
+ )
+
+ if file_name != "":
+ self._table.read_from_file(file_name, self._data.bctype)
+
def move_up(self):
row = self.index_selected_row()
self._table.move_up(row)
diff --git a/src/View/BoundaryCondition/Edit/translate.py b/src/View/BoundaryCondition/Edit/translate.py
index 76b8ff3e..efc180d1 100644
--- a/src/View/BoundaryCondition/Edit/translate.py
+++ b/src/View/BoundaryCondition/Edit/translate.py
@@ -35,6 +35,17 @@ class BCETranslate(BCTranslate):
self._dict["Boundary Condition Options"] = _translate(
"BoundaryCondition", "Boundary Condition Options")
+ self._dict["open_file"] = _translate(
+ "BoundaryCondition", "Open a file")
+ self._dict["file_hyd"] = _translate(
+ "BoundaryCondition", "Mage hydrograph file (*.HYD)")
+ self._dict["file_lim"] = _translate(
+ "BoundaryCondition", "Mage limnigraph file (*.LIM)")
+ self._dict["file_lim"] = _translate(
+ "BoundaryCondition", "Mage rating curve file (*.AVA)")
+ self._dict["file_all"] = _translate(
+ "BoundaryCondition", "All files (*)")
+
self._sub_dict["table_headers"] = {
"x": _translate("BoundaryCondition", "X"),
"y": _translate("BoundaryCondition", "Y"),
diff --git a/src/View/InitialConditions/Table.py b/src/View/InitialConditions/Table.py
index 13e02ab4..e61f0d9d 100644
--- a/src/View/InitialConditions/Table.py
+++ b/src/View/InitialConditions/Table.py
@@ -297,8 +297,6 @@ class InitialConditionTableModel(PamhyrTableModel):
if int(line[0]) == reach_id:
data.append([line[4], line[2], line[3]])
- print(data)
-
self._undo.push(
ReplaceDataCommand(
self._lst,
diff --git a/src/View/ui/EditBoundaryConditions.ui b/src/View/ui/EditBoundaryConditions.ui
index 056c02a8..9d4f9293 100644
--- a/src/View/ui/EditBoundaryConditions.ui
+++ b/src/View/ui/EditBoundaryConditions.ui
@@ -70,6 +70,7 @@
false
+
@@ -149,6 +150,18 @@
Remove points to make the curve increasing
+
+
+
+ ressources/import.pngressources/import.png
+
+
+ Import
+
+
+ Import from file
+
+
diff --git a/src/lang/fr.ts b/src/lang/fr.ts
index 592dbdd7..b25cab15 100644
--- a/src/lang/fr.ts
+++ b/src/lang/fr.ts
@@ -192,17 +192,17 @@
Éditer les conditions aux limites
-
+
X
X
-
+
Y
Y
-
+
Solid (kg/s)
Solide (kg/s)
@@ -242,19 +242,19 @@
Options des conditions limites
-
+
No geometry
Pas de géométrie
-
+
No geometry found for this reach.
This feature requires a reach with a geometry.
Aucune géométrie n'a été trouvée sur ce bief.
Cette fonctionnalité nécessite un bief muni d'une géométrie.
-
+
Warning
Avertissement
@@ -263,6 +263,31 @@ Cette fonctionnalité nécessite un bief muni d'une géométrie.Pollutant
Polluant
+
+
+ Open a file
+ Ouvrir un fichier
+
+
+
+ Mage hydrograph file (*.HYD)
+ Hydrogramme Mage (*.HYD)
+
+
+
+ Mage limnigraph file (*.LIM)
+ Limnigramme Mage (*.LIM)
+
+
+
+ Mage rating curve file (*.AVA)
+ Courbe de tarage Mage (*.AVA)
+
+
+
+ All files (*)
+ Tous les fichiers (*)
+
BoundaryConditions
@@ -2622,32 +2647,32 @@ Cette fonctionnalité nécessite un bief muni d'une géométrie.Exporter les données au format CSV
-
+
Generate uniform
Générer un regime uniforme
-
+
Generate rating curve from Manning law
Générer une courbe de tarage (loi de Maning)
-
+
Generate critical
Générer régime critique
-
+
Generate rating curve as Q(z) = Sqrt(g*S(z)^3/L(z))
Générer une courbe de tarage (Q(z) = Sqrt(g*S(z)^3/L(z)))
-
+
Make increasing
Augmenter
-
+
Remove points to make the curve increasing
Supprimer des points pour rendre la courbe croissante