From 04583974eccb7baebcd0d5cfb3e73c7a1bbe9e4a Mon Sep 17 00:00:00 2001 From: "Yngve S. Kristiansen" Date: Tue, 5 Mar 2024 15:04:24 +0100 Subject: [PATCH] Group observations by response (WIP) --- src/ert/analysis/_es_update.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/ert/analysis/_es_update.py b/src/ert/analysis/_es_update.py index e47c17d67d5..a35e805d256 100644 --- a/src/ert/analysis/_es_update.py +++ b/src/ert/analysis/_es_update.py @@ -295,21 +295,35 @@ def _get_obs_and_measure_data( df = filtered_response.to_dataframe().reset_index() - observation_keys.append(df["name"].to_list()) - observation_values.append(df["observations"].to_list()) - observation_errors.append(df["std"].to_list()) + observation_keys.extend( + observation.to_dataframe() + .reset_index()["name"] + .to_numpy() + .reshape((len(filtered_response.name), -1)) + .tolist() + ) + observation_values.extend( + observation["observations"] + .to_dataframe() + .to_numpy() + .reshape((1, -1)) + .tolist() + ) + observation_errors.extend( + observation["std"].to_dataframe().to_numpy().reshape((1, -1)).tolist() + ) - measured_data.append( + measured_data.extend( filtered_response["values"] .transpose(..., "realization") - .values.reshape((-1, len(filtered_response.realization))) + .values.reshape( + (len(filtered_response.name), -1, len(filtered_response.realization)) + ) ) source_fs.load_responses.cache_clear() - # Measured_data, an array of 3 dimensions - # Outer dimension: One array per observation - # Mid dimension is ??? Sometimes length 1, sometimes nreals? - # Inner dimension: value is "values", index is realization + # Measured_data, an array of nd arrays with shape (1, nreals) + # Each inner array has 1 dimension containing obs key, and nreals "values" return ( np.concatenate(measured_data, axis=0), np.concatenate(observation_values),