diff --git a/src/Model/InitialConditions/InitialConditions.py b/src/Model/InitialConditions/InitialConditions.py index c8610a02..9b698b41 100644 --- a/src/Model/InitialConditions/InitialConditions.py +++ b/src/Model/InitialConditions/InitialConditions.py @@ -498,7 +498,7 @@ class InitialConditions(SQLSubModel): data_discharge[profile.rk] = 0.0 else: 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() logger.debug(f"incline = {incline}") @@ -562,7 +562,9 @@ class InitialConditions(SQLSubModel): data_height[profile.rk] = 0.0 else: 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() logger.debug(f"incline = {incline}") @@ -571,11 +573,13 @@ class InitialConditions(SQLSubModel): width = profile.width_approximation() frictions = self._reach.frictions.frictions strickler = None + if frictions is not None: if len(frictions) >= 1: for f in frictions: if f.contains_rk(profile.rk): strickler = f.get_friction(profile.rk)[0] + if strickler is None: strickler = 25.0 @@ -587,8 +591,9 @@ class InitialConditions(SQLSubModel): else: height = ( discharge - / - ((width * 0.8) * strickler * (abs(incline) ** (0.5))) + / ((width * 0.8) + * strickler + * (abs(incline) ** (0.5))) ) ** (0.6) elevation = max( @@ -624,7 +629,7 @@ class InitialConditions(SQLSubModel): data_discharge[profile.rk] = 0.0 else: for data in self._data: - data_discharge[data["rk"]] = data["discharge"] + data_discharge[data["rk"].rk] = data["discharge"] self._data = [] for profile in profiles: @@ -637,7 +642,7 @@ class InitialConditions(SQLSubModel): [upstream_rk, downstream_rk], [elevation1, elevation2]) new = Data(reach=self._reach, status=self._status) - new["rk"] = profile.rk + new["rk"] = profile new["discharge"] = d new["elevation"] = elevation self._data.append(new) diff --git a/src/View/BoundaryCondition/Edit/Table.py b/src/View/BoundaryCondition/Edit/Table.py index 560c04fc..d3a73f5b 100644 --- a/src/View/BoundaryCondition/Edit/Table.py +++ b/src/View/BoundaryCondition/Edit/Table.py @@ -72,7 +72,9 @@ class TableModel(PamhyrTableModel): if 0 <= column < 2: v = self._data.get_i(row)[column] 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": if self._opt_data == "time": value = timestamp_to_old_pamhyr_date(int(v)) diff --git a/src/View/BoundaryCondition/UndoCommand.py b/src/View/BoundaryCondition/UndoCommand.py index d5bace01..22feaed9 100644 --- a/src/View/BoundaryCondition/UndoCommand.py +++ b/src/View/BoundaryCondition/UndoCommand.py @@ -94,7 +94,9 @@ class AddCommand(QUndoCommand): self._bcs = bcs self._tab = tab 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 def undo(self): diff --git a/src/View/InitialConditions/UndoCommand.py b/src/View/InitialConditions/UndoCommand.py index e19550b0..4bf254bc 100644 --- a/src/View/InitialConditions/UndoCommand.py +++ b/src/View/InitialConditions/UndoCommand.py @@ -113,7 +113,7 @@ class SortCommand(QUndoCommand): def redo(self): self._ics.sort( reverse=self._reverse, - key=lambda x: x["rk"] + key=lambda x: x["rk"].rk ) if self._indexes is None: self._indexes = list(