Skip to content

Commit

Permalink
Remove reading from refcase and read from response instead
Browse files Browse the repository at this point in the history
  • Loading branch information
oyvindeide committed Nov 29, 2023
1 parent acbe0cc commit c05bd4d
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 74 deletions.
4 changes: 0 additions & 4 deletions src/ert/dark_storage/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,6 @@ def data_for_key(
"""Returns a pandas DataFrame with the datapoints for a given key for a
given case. The row index is the realization number, and the columns are an
index over the indexes/dates"""

if key.split(":")[0][-1] == "H":
return res.history_data(key, ensemble).T

if key.startswith("LOG10_"):
key = key[6:]
if key in ensemble.get_summary_keyset():
Expand Down
39 changes: 1 addition & 38 deletions src/ert/libres_facade.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import numpy as np
import pandas as pd
from deprecation import deprecated
from pandas import DataFrame, Series
from pandas import DataFrame
from resdata.grid import Grid

from ert.analysis import AnalysisEvent, SmootherSnapshot, smoother_update
Expand Down Expand Up @@ -410,43 +410,6 @@ def load_all_misfit_data(self, ensemble: EnsembleReader) -> DataFrame:

return misfit

def refcase_data(self, key: str) -> DataFrame:
refcase = self.config.ensemble_config.refcase

if refcase is None or key not in refcase:
return DataFrame()

values = refcase.numpy_vector(key, report_only=False)
dates = refcase.numpy_dates

data = DataFrame(zip(dates, values), columns=["Date", key])
data.set_index("Date", inplace=True)

return data.iloc[1:]

def history_data(
self, key: str, ensemble: Optional[EnsembleReader] = None
) -> Union[DataFrame, Series]:
if ensemble is None:
return self.refcase_data(key)

if key not in ensemble.get_summary_keyset():
return DataFrame()

data = self.load_all_summary_data(ensemble, [key])
if data.empty:
return self.refcase_data(key)
idx = data.index.duplicated()
if idx.any():
data = data[~idx]
_logger.warning(
"The simulation data contains duplicate "
"timestamps. A possible explanation is that your "
"simulation timestep is less than a second."
)
data = data.unstack(level="Realization")
return data

def get_summary_keys(self) -> List[str]:
return self.config.ensemble_config.get_summary_keys()

Expand Down
32 changes: 0 additions & 32 deletions tests/unit_tests/test_libres_facade.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,38 +156,6 @@ def test_observation_keys_missing_key(facade):
assert [] == obs_keys


def test_case_refcase_data(facade):
data = facade.refcase_data("FOPR")
assert isinstance(data, PandasObject)


def test_case_refcase_data_missing_key(facade):
data = facade.refcase_data("nokey")
assert isinstance(data, PandasObject)


def test_case_history_data(facade):
data = facade.history_data("FOPRH")
assert isinstance(data, PandasObject)

print(f"{facade.enspath=}")
with open_storage(facade.enspath, mode="w") as storage:
experiment_id = storage.create_experiment()
ensemble = storage.create_ensemble(
experiment_id, name="empty", ensemble_size=facade.get_ensemble_size()
)
data = facade.history_data("FOPRH", ensemble=ensemble)
assert isinstance(data, PandasObject)

data = facade.history_data("WOPRH:OP1")
assert isinstance(data, PandasObject)


def test_case_history_data_missing_key(facade):
data = facade.history_data("nokey")
assert isinstance(data, PandasObject)


def test_summary_data_verify_indices_and_values(
caplog, snake_oil_case_storage, snake_oil_default_storage, snapshot
):
Expand Down

0 comments on commit c05bd4d

Please sign in to comment.