Skip to content

Commit d86a333

Browse files
committed
Set active realizations on startup
1 parent 2a8fd92 commit d86a333

File tree

3 files changed

+26
-24
lines changed

3 files changed

+26
-24
lines changed

src/ert/config/design_matrix.py

+14-17
Original file line numberDiff line numberDiff line change
@@ -141,26 +141,23 @@ def read_design_matrix(
141141
# Read the parameter names (first row) as strings to prevent pandas from modifying them.
142142
# This ensures that duplicate or empty column names are preserved exactly as they appear in the Excel sheet.
143143
# By doing this, we can properly validate variable names, including detecting duplicates or missing names.
144-
try:
145-
param_names = (
146-
pd.read_excel(
147-
self.xls_filename,
148-
sheet_name=self.design_sheet,
149-
nrows=1,
150-
header=None,
151-
dtype="string",
152-
)
153-
.iloc[0]
154-
.apply(lambda x: x.strip() if isinstance(x, str) else x)
155-
)
156-
design_matrix_df = DesignMatrix._read_excel(
144+
param_names = (
145+
pd.read_excel(
157146
self.xls_filename,
158-
self.design_sheet,
147+
sheet_name=self.design_sheet,
148+
nrows=1,
159149
header=None,
160-
skiprows=1,
150+
dtype="string",
161151
)
162-
except (ValueError, AttributeError) as exc:
163-
raise ValueError(f"Error reading design matrix: {exc}") from exc
152+
.iloc[0]
153+
.apply(lambda x: x.strip() if isinstance(x, str) else x)
154+
)
155+
design_matrix_df = DesignMatrix._read_excel(
156+
self.xls_filename,
157+
self.design_sheet,
158+
header=None,
159+
skiprows=1,
160+
)
164161
design_matrix_df.columns = param_names.to_list()
165162

166163
if "REAL" in design_matrix_df.columns:

src/ert/run_models/ensemble_experiment.py

-2
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@ def run_experiment(
7777
except ConfigValidationError as exc:
7878
raise ErtRunError(str(exc)) from exc
7979

80-
assert design_matrix.active_realizations is not None
81-
self.active_realizations = design_matrix.active_realizations
8280
if not restart:
8381
self.experiment = self._storage.create_experiment(
8482
name=self.experiment_name,

src/ert/run_models/model_factory.py

+12-5
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,20 @@ def _setup_ensemble_experiment(
117117
args: Namespace,
118118
status_queue: SimpleQueue[StatusEvents],
119119
) -> EnsembleExperiment:
120-
active_realizations = _realizations(args, config.model_config.num_realizations)
120+
active_realizations = _realizations(
121+
args, config.model_config.num_realizations
122+
).tolist()
123+
if (
124+
config.analysis_config.design_matrix is not None
125+
and config.analysis_config.design_matrix.active_realizations is not None
126+
):
127+
active_realizations = config.analysis_config.design_matrix.active_realizations
121128
experiment_name = args.experiment_name
122129
assert experiment_name is not None
123130

124131
return EnsembleExperiment(
125132
random_seed=config.random_seed,
126-
active_realizations=active_realizations.tolist(),
133+
active_realizations=active_realizations,
127134
ensemble_name=args.current_ensemble,
128135
minimum_required_realizations=config.analysis_config.minimum_required_realizations,
129136
experiment_name=experiment_name,
@@ -271,9 +278,9 @@ def _setup_iterative_ensemble_smoother(
271278
random_seed=config.random_seed,
272279
active_realizations=active_realizations.tolist(),
273280
target_ensemble=_iterative_ensemble_format(args),
274-
number_of_iterations=int(args.num_iterations)
275-
if args.num_iterations is not None
276-
else 4,
281+
number_of_iterations=(
282+
int(args.num_iterations) if args.num_iterations is not None else 4
283+
),
277284
minimum_required_realizations=config.analysis_config.minimum_required_realizations,
278285
num_retries_per_iter=4,
279286
experiment_name=experiment_name,

0 commit comments

Comments
 (0)