mirror of https://gitlab.com/pamhyr/pamhyr2
Compare commits
3 Commits
420d766ae5
...
37963b7b21
| Author | SHA1 | Date |
|---|---|---|
|
|
37963b7b21 | |
|
|
e5b4c998cb | |
|
|
4bf0ad40b1 |
|
|
@ -498,7 +498,7 @@ class InitialConditions(SQLSubModel):
|
||||||
data_discharge[profile.rk] = 0.0
|
data_discharge[profile.rk] = 0.0
|
||||||
else:
|
else:
|
||||||
for data in self._data:
|
for data in self._data:
|
||||||
data_discharge[data["rk"]] = data["discharge"]
|
data_discharge[data["rk"].rk] = data["discharge"]
|
||||||
|
|
||||||
incline = self._reach.reach.get_incline_median_mean()
|
incline = self._reach.reach.get_incline_median_mean()
|
||||||
logger.debug(f"incline = {incline}")
|
logger.debug(f"incline = {incline}")
|
||||||
|
|
@ -562,7 +562,9 @@ class InitialConditions(SQLSubModel):
|
||||||
data_height[profile.rk] = 0.0
|
data_height[profile.rk] = 0.0
|
||||||
else:
|
else:
|
||||||
for data in self._data:
|
for data in self._data:
|
||||||
data_height[data["rk"]] = data["height"]
|
data_height[data["rk"].rk] = data["height"]
|
||||||
|
|
||||||
|
print(data_height)
|
||||||
|
|
||||||
incline = self._reach.reach.get_incline_median_mean()
|
incline = self._reach.reach.get_incline_median_mean()
|
||||||
logger.debug(f"incline = {incline}")
|
logger.debug(f"incline = {incline}")
|
||||||
|
|
@ -571,11 +573,13 @@ class InitialConditions(SQLSubModel):
|
||||||
width = profile.width_approximation()
|
width = profile.width_approximation()
|
||||||
frictions = self._reach.frictions.frictions
|
frictions = self._reach.frictions.frictions
|
||||||
strickler = None
|
strickler = None
|
||||||
|
|
||||||
if frictions is not None:
|
if frictions is not None:
|
||||||
if len(frictions) >= 1:
|
if len(frictions) >= 1:
|
||||||
for f in frictions:
|
for f in frictions:
|
||||||
if f.contains_rk(profile.rk):
|
if f.contains_rk(profile.rk):
|
||||||
strickler = f.get_friction(profile.rk)[0]
|
strickler = f.get_friction(profile.rk)[0]
|
||||||
|
|
||||||
if strickler is None:
|
if strickler is None:
|
||||||
strickler = 25.0
|
strickler = 25.0
|
||||||
|
|
||||||
|
|
@ -587,8 +591,9 @@ class InitialConditions(SQLSubModel):
|
||||||
else:
|
else:
|
||||||
height = (
|
height = (
|
||||||
discharge
|
discharge
|
||||||
/
|
/ ((width * 0.8)
|
||||||
((width * 0.8) * strickler * (abs(incline) ** (0.5)))
|
* strickler
|
||||||
|
* (abs(incline) ** (0.5)))
|
||||||
) ** (0.6)
|
) ** (0.6)
|
||||||
|
|
||||||
elevation = max(
|
elevation = max(
|
||||||
|
|
@ -624,7 +629,7 @@ class InitialConditions(SQLSubModel):
|
||||||
data_discharge[profile.rk] = 0.0
|
data_discharge[profile.rk] = 0.0
|
||||||
else:
|
else:
|
||||||
for data in self._data:
|
for data in self._data:
|
||||||
data_discharge[data["rk"]] = data["discharge"]
|
data_discharge[data["rk"].rk] = data["discharge"]
|
||||||
|
|
||||||
self._data = []
|
self._data = []
|
||||||
for profile in profiles:
|
for profile in profiles:
|
||||||
|
|
@ -637,7 +642,7 @@ class InitialConditions(SQLSubModel):
|
||||||
[upstream_rk, downstream_rk],
|
[upstream_rk, downstream_rk],
|
||||||
[elevation1, elevation2])
|
[elevation1, elevation2])
|
||||||
new = Data(reach=self._reach, status=self._status)
|
new = Data(reach=self._reach, status=self._status)
|
||||||
new["rk"] = profile.rk
|
new["rk"] = profile
|
||||||
new["discharge"] = d
|
new["discharge"] = d
|
||||||
new["elevation"] = elevation
|
new["elevation"] = elevation
|
||||||
self._data.append(new)
|
self._data.append(new)
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,9 @@ class TableModel(PamhyrTableModel):
|
||||||
if 0 <= column < 2:
|
if 0 <= column < 2:
|
||||||
v = self._data.get_i(row)[column]
|
v = self._data.get_i(row)[column]
|
||||||
if self._data.get_type_column(column) == float:
|
if self._data.get_type_column(column) == float:
|
||||||
value = f"{v:.4f}"
|
if type(v) == str:
|
||||||
|
v = v.replace(',', '.')
|
||||||
|
value = f"{float(v):.4f}"
|
||||||
elif self._data.header[column] == "time":
|
elif self._data.header[column] == "time":
|
||||||
if self._opt_data == "time":
|
if self._opt_data == "time":
|
||||||
value = timestamp_to_old_pamhyr_date(int(v))
|
value = timestamp_to_old_pamhyr_date(int(v))
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,9 @@ class AddCommand(QUndoCommand):
|
||||||
self._bcs = bcs
|
self._bcs = bcs
|
||||||
self._tab = tab
|
self._tab = tab
|
||||||
self._index = index
|
self._index = index
|
||||||
self._old = self._bcs.get(self._tab, self._index)
|
self._old = None
|
||||||
|
if len(self._bcs.get_tab(self._tab)) > self._index:
|
||||||
|
self._bcs.get(self._tab, self._index)
|
||||||
self._new = None
|
self._new = None
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ class SortCommand(QUndoCommand):
|
||||||
def redo(self):
|
def redo(self):
|
||||||
self._ics.sort(
|
self._ics.sort(
|
||||||
reverse=self._reverse,
|
reverse=self._reverse,
|
||||||
key=lambda x: x["rk"]
|
key=lambda x: x["rk"].rk
|
||||||
)
|
)
|
||||||
if self._indexes is None:
|
if self._indexes is None:
|
||||||
self._indexes = list(
|
self._indexes = list(
|
||||||
|
|
|
||||||
|
|
@ -686,13 +686,13 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
options=options,
|
options=options,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self._backup_timer.blockSignals(True)
|
||||||
|
self._save_mutex.lock()
|
||||||
|
|
||||||
logger.debug(f"Save study as : {repr(file_name)}")
|
logger.debug(f"Save study as : {repr(file_name)}")
|
||||||
if file_name == "":
|
if file_name == "":
|
||||||
return
|
return
|
||||||
|
|
||||||
self._backup_timer.blockSignals(True)
|
|
||||||
self._save_mutex.lock()
|
|
||||||
|
|
||||||
if file_name.rsplit(".", 1)[-1] == "pamhyr":
|
if file_name.rsplit(".", 1)[-1] == "pamhyr":
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"Pamhyr extention is present : " +
|
"Pamhyr extention is present : " +
|
||||||
|
|
@ -706,9 +706,42 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
)
|
)
|
||||||
self._study.filename = file_name + ".pamhyr"
|
self._study.filename = file_name + ".pamhyr"
|
||||||
|
|
||||||
sql_request_count = self._study.sql_save_request_count()
|
if len(self._study.scenarios) != 1:
|
||||||
|
self.save_as_study_multi_scenario()
|
||||||
|
else:
|
||||||
|
self.save_as_study_single_scenario()
|
||||||
|
|
||||||
|
self.conf.set_last_study(self._study.filename)
|
||||||
|
|
||||||
|
self._save_mutex.unlock()
|
||||||
|
self._backup_timer.blockSignals(False)
|
||||||
|
|
||||||
|
def save_as_study_multi_scenario(self):
|
||||||
|
scenarios = self._study.scenarios.lst
|
||||||
|
|
||||||
progress = QProgressDialog(
|
progress = QProgressDialog(
|
||||||
"Saving...", None,
|
"Saving scenarios...", None,
|
||||||
|
0, len(scenarios),
|
||||||
|
parent=self
|
||||||
|
)
|
||||||
|
progress.setWindowModality(Qt.WindowModal)
|
||||||
|
progress.setValue(0)
|
||||||
|
|
||||||
|
for scenario in scenarios:
|
||||||
|
self._study.reload_from_scenario(scenario)
|
||||||
|
self.save_as_study_single_scenario(scenario.id)
|
||||||
|
|
||||||
|
progress.setValue(progress.value() + 1)
|
||||||
|
|
||||||
|
def save_as_study_single_scenario(self, sid=-1):
|
||||||
|
sql_request_count = self._study.sql_save_request_count()
|
||||||
|
|
||||||
|
msg = "Saving..."
|
||||||
|
if sid != -1:
|
||||||
|
msg = f"Saving scenario {sid}..."
|
||||||
|
|
||||||
|
progress = QProgressDialog(
|
||||||
|
msg, None,
|
||||||
0, sql_request_count,
|
0, sql_request_count,
|
||||||
parent=self
|
parent=self
|
||||||
)
|
)
|
||||||
|
|
@ -727,11 +760,6 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
logger.info(status)
|
logger.info(status)
|
||||||
self.statusbar.showMessage(status, 3000)
|
self.statusbar.showMessage(status, 3000)
|
||||||
|
|
||||||
self.conf.set_last_study(self._study.filename)
|
|
||||||
|
|
||||||
self._save_mutex.unlock()
|
|
||||||
self._backup_timer.blockSignals(False)
|
|
||||||
|
|
||||||
def _backup(self):
|
def _backup(self):
|
||||||
logger.debug("Backup signal...")
|
logger.debug("Backup signal...")
|
||||||
if not self.conf.backup_enable:
|
if not self.conf.backup_enable:
|
||||||
|
|
|
||||||
|
|
@ -357,8 +357,10 @@ class GraphWidget(QGraphicsView):
|
||||||
if len(selectable_items) == 0:
|
if len(selectable_items) == 0:
|
||||||
if event.buttons() & Qt.LeftButton:
|
if event.buttons() & Qt.LeftButton:
|
||||||
old_p = self.mapToScene(
|
old_p = self.mapToScene(
|
||||||
float(self.m_origin_x),
|
QPoint(
|
||||||
float(self.m_origin_y)
|
int(self.m_origin_x),
|
||||||
|
int(self.m_origin_y)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
new_p = self.mapToScene(event.pos())
|
new_p = self.mapToScene(event.pos())
|
||||||
translation = new_p - old_p
|
translation = new_p - old_p
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue