mirror of https://gitlab.com/pamhyr/pamhyr2
Ensemble: Set custom seed.
parent
3325ba935b
commit
d4bc9bdf75
|
|
@ -1609,10 +1609,13 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
|||
parent=self
|
||||
)
|
||||
if dlg.exec():
|
||||
run_number = dlg._number
|
||||
function = dlg.function
|
||||
run_number = dlg.number
|
||||
seed = dlg.seed
|
||||
|
||||
sol = SolverLogEnsWindow(
|
||||
run_number=run_number,
|
||||
seed=seed, function=function,
|
||||
study=self._study,
|
||||
config=self.conf,
|
||||
solver=solver,
|
||||
|
|
|
|||
|
|
@ -71,6 +71,10 @@ class EnsembleRunNumberDialog(PamhyrDialog):
|
|||
parent=parent
|
||||
)
|
||||
|
||||
self._function = "Random"
|
||||
self._number = 100
|
||||
self._seed = -1
|
||||
|
||||
self._init_default_values()
|
||||
self._init_connection()
|
||||
|
||||
|
|
@ -91,9 +95,21 @@ class EnsembleRunNumberDialog(PamhyrDialog):
|
|||
def number(self):
|
||||
return self._number
|
||||
|
||||
@property
|
||||
def seed(self):
|
||||
return self._seed
|
||||
|
||||
@property
|
||||
def function(self):
|
||||
return self._function
|
||||
|
||||
def accept(self):
|
||||
self._function = self.get_combobox_text("comboBox")
|
||||
self._number = self.get_spin_box("spinBox")
|
||||
|
||||
if self._checkbox.isChecked():
|
||||
self._seed = self.get_spin_box("spinBox_seed")
|
||||
|
||||
super().accept()
|
||||
|
||||
def reject(self):
|
||||
|
|
@ -475,14 +491,25 @@ class SolverLogEnsWindow(SolverLogWindow):
|
|||
_pamhyr_name = "Solver Log Ensemble"
|
||||
|
||||
def __init__(self, run_number=100,
|
||||
seed=-1, function="Random",
|
||||
study=None, config=None,
|
||||
solver=None, parent=None):
|
||||
self._run_number = run_number
|
||||
self._last_run = 0
|
||||
|
||||
if seed != -1:
|
||||
np.random.seed(seed)
|
||||
|
||||
self._seed = np.random.get_state()[1][0]
|
||||
logger.info(
|
||||
"solver: Set ensemble with " +
|
||||
f"{run_number} {function} and " +
|
||||
f"{self._seed} as random seed"
|
||||
)
|
||||
|
||||
self._samples = {}
|
||||
for ens in study.river._ensembles.lst:
|
||||
if ens.function is None:
|
||||
if ens.distribution is None:
|
||||
continue
|
||||
|
||||
self._samples[ens] = ens.random(self._run_number)
|
||||
|
|
@ -571,6 +598,7 @@ class SolverLogEnsWindow(SolverLogWindow):
|
|||
table["samples"] = results.new_table_data(
|
||||
"samples", np.array(self._run_samples)
|
||||
)
|
||||
results.set("seed", self._seed) # Keep random seed
|
||||
|
||||
results.set("table", table)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue