diff --git a/src/ert/config/summary_config.py b/src/ert/config/summary_config.py index 846ad4dbf78..486657fe2a3 100644 --- a/src/ert/config/summary_config.py +++ b/src/ert/config/summary_config.py @@ -94,10 +94,11 @@ def read_from_file(self, run_path: str, iens: int) -> xr.Dataset: ) data.append(np_vector) - return xr.Dataset( + ds = xr.Dataset( {"values": (["name", "time"], data)}, coords={"time": axis, "name": keys}, ) + return ds.drop_duplicates(["time", "name"]) def _should_load_summary_key(self, data_key: Any, user_set_keys: set[str]) -> bool: return any(fnmatch(data_key, key) for key in user_set_keys) diff --git a/tests/unit_tests/scenarios/test_summary_response.py b/tests/unit_tests/scenarios/test_summary_response.py index e542455e287..2e296b948dd 100644 --- a/tests/unit_tests/scenarios/test_summary_response.py +++ b/tests/unit_tests/scenarios/test_summary_response.py @@ -153,3 +153,24 @@ def run_sim(dates, value, fname="ECLIPSE_CASE"): ) t_step["FOPR"] = value ecl_sum.fwrite() + + +def test_that_duplicate_summary_time_steps_does_not_fail( + setup_configuration, + prior_ensemble, + target_ensemble, +): + ert = setup_configuration + ert.sample_prior(prior_ensemble, list(range(ert.getEnsembleSize()))) + response_times = [ + [datetime(2014, 9, 9)], + [datetime(2014, 9, 9)], + [datetime(2014, 9, 9), datetime(2014, 9, 9)], + [datetime(2014, 9, 9)], + [datetime(2014, 9, 9), datetime(1988, 9, 9)], + ] + create_responses(ert, prior_ensemble, response_times) + + es_update = ESUpdate(ert) + + es_update.smootherUpdate(prior_ensemble, target_ensemble, "an id")