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
|
parent=self
|
||||||
)
|
)
|
||||||
if dlg.exec():
|
if dlg.exec():
|
||||||
run_number = dlg._number
|
function = dlg.function
|
||||||
|
run_number = dlg.number
|
||||||
|
seed = dlg.seed
|
||||||
|
|
||||||
sol = SolverLogEnsWindow(
|
sol = SolverLogEnsWindow(
|
||||||
run_number=run_number,
|
run_number=run_number,
|
||||||
|
seed=seed, function=function,
|
||||||
study=self._study,
|
study=self._study,
|
||||||
config=self.conf,
|
config=self.conf,
|
||||||
solver=solver,
|
solver=solver,
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,10 @@ class EnsembleRunNumberDialog(PamhyrDialog):
|
||||||
parent=parent
|
parent=parent
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self._function = "Random"
|
||||||
|
self._number = 100
|
||||||
|
self._seed = -1
|
||||||
|
|
||||||
self._init_default_values()
|
self._init_default_values()
|
||||||
self._init_connection()
|
self._init_connection()
|
||||||
|
|
||||||
|
|
@ -91,9 +95,21 @@ class EnsembleRunNumberDialog(PamhyrDialog):
|
||||||
def number(self):
|
def number(self):
|
||||||
return self._number
|
return self._number
|
||||||
|
|
||||||
|
@property
|
||||||
|
def seed(self):
|
||||||
|
return self._seed
|
||||||
|
|
||||||
|
@property
|
||||||
|
def function(self):
|
||||||
|
return self._function
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
|
self._function = self.get_combobox_text("comboBox")
|
||||||
self._number = self.get_spin_box("spinBox")
|
self._number = self.get_spin_box("spinBox")
|
||||||
|
|
||||||
|
if self._checkbox.isChecked():
|
||||||
|
self._seed = self.get_spin_box("spinBox_seed")
|
||||||
|
|
||||||
super().accept()
|
super().accept()
|
||||||
|
|
||||||
def reject(self):
|
def reject(self):
|
||||||
|
|
@ -475,14 +491,25 @@ class SolverLogEnsWindow(SolverLogWindow):
|
||||||
_pamhyr_name = "Solver Log Ensemble"
|
_pamhyr_name = "Solver Log Ensemble"
|
||||||
|
|
||||||
def __init__(self, run_number=100,
|
def __init__(self, run_number=100,
|
||||||
|
seed=-1, function="Random",
|
||||||
study=None, config=None,
|
study=None, config=None,
|
||||||
solver=None, parent=None):
|
solver=None, parent=None):
|
||||||
self._run_number = run_number
|
self._run_number = run_number
|
||||||
self._last_run = 0
|
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 = {}
|
self._samples = {}
|
||||||
for ens in study.river._ensembles.lst:
|
for ens in study.river._ensembles.lst:
|
||||||
if ens.function is None:
|
if ens.distribution is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self._samples[ens] = ens.random(self._run_number)
|
self._samples[ens] = ens.random(self._run_number)
|
||||||
|
|
@ -571,6 +598,7 @@ class SolverLogEnsWindow(SolverLogWindow):
|
||||||
table["samples"] = results.new_table_data(
|
table["samples"] = results.new_table_data(
|
||||||
"samples", np.array(self._run_samples)
|
"samples", np.array(self._run_samples)
|
||||||
)
|
)
|
||||||
|
results.set("seed", self._seed) # Keep random seed
|
||||||
|
|
||||||
results.set("table", table)
|
results.set("table", table)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue