def loadAllGenKwData(ert: EnKFMain, case_name, keys=None, realization_index=None): """ @type ert: EnKFMain @type case_name: str @type keys: list of str @rtype: DataFrame """ fs = ert.getEnkfFsManager().getFileSystem(case_name) realizations = GenKwCollector.createActiveList(ert, fs) if realization_index is not None: if realization_index not in realizations: raise IndexError(f"No such realization ({realization_index})") realizations = [realization_index] gen_kw_keys = ert.getKeyManager().genKwKeys() if keys is not None: gen_kw_keys = [ key for key in keys if key in gen_kw_keys ] # ignore keys that doesn't exist gen_kw_array = _lib.enkf_fs_keyword_data.keyword_data_get_realizations( ert.ensembleConfig(), fs, gen_kw_keys, realizations ) gen_kw_data = DataFrame( data=gen_kw_array, index=realizations, columns=gen_kw_keys ) gen_kw_data.index.name = "Realization" return gen_kw_data
def loadObservationData(ert: EnKFMain, case_name, keys=None): """ @type ert: EnKFMain @type case_name: str @type keys: list of str @rtype: DataFrame """ observations = ert.getObservations() history_length = ert.getHistoryLength() dates = [ observations.getObservationTime(index).datetime() for index in range(1, history_length + 1) ] summary_keys = ert.getKeyManager().summaryKeysWithObservations() if keys is not None: summary_keys = [key for key in keys if key in summary_keys ] # ignore keys that doesn't exist columns = summary_keys std_columns = ["STD_%s" % key for key in summary_keys] df = DataFrame(index=dates, columns=columns + std_columns) for key in summary_keys: observation_keys = ert.ensembleConfig().getNode( key).getObservationKeys() for obs_key in observation_keys: observation_data = observations[obs_key] for index in range(0, history_length + 1): if observation_data.isActive(index): obs_time = observations.getObservationTime( index).datetime() node = observation_data.getNode(index) value = node.getValue() std = node.getStandardDeviation() df[key][obs_time] = value df["STD_%s" % key][obs_time] = std return df
def loadAllMisfitData(ert: EnKFMain, case_name) -> DataFrame: """ @type ert: EnKFMain @type case_name: str @rtype: DataFrame """ fs = ert.getEnkfFsManager().getFileSystem(case_name) realizations = MisfitCollector.createActiveList(ert, fs) misfit_keys = ert.getKeyManager().misfitKeys(sort_keys=False) misfit_sum_index = len(misfit_keys) - 1 misfit_array = numpy.empty(shape=(len(misfit_keys), len(realizations)), dtype=numpy.float64) misfit_array.fill(numpy.nan) misfit_array[misfit_sum_index] = 0.0 for column_index, obs_vector in enumerate(ert.getObservations()): for realization_index, realization_number in enumerate( realizations): misfit = obs_vector.getTotalChi2(fs, realization_number) misfit_array[column_index][realization_index] = misfit misfit_array[misfit_sum_index][realization_index] += misfit misfit_data = DataFrame(data=numpy.transpose(misfit_array), index=realizations, columns=misfit_keys) misfit_data.index.name = "Realization" return misfit_data
def loadAllSummaryData(ert: EnKFMain, case_name, keys=None, realization_index=None): """ @type ert: EnKFMain @type case_name: str @type keys: list of str @rtype: DataFrame """ fs = ert.getEnkfFsManager().getFileSystem(case_name) time_map = fs.getTimeMap() dates = [ time_map[index].datetime() for index in range(1, len(time_map)) ] realizations = SummaryCollector.createActiveList(ert, fs) if realization_index is not None: if realization_index not in realizations: raise IndexError(f"No such realization {realization_index}") realizations = [realization_index] summary_keys = ert.getKeyManager().summaryKeys() if keys is not None: summary_keys = [key for key in keys if key in summary_keys ] # ignore keys that doesn't exist summary_data = _lib.enkf_fs_summary_data.get_summary_data( ert.ensembleConfig(), fs, summary_keys, realizations, len(dates)) multi_index = MultiIndex.from_product([realizations, dates], names=["Realization", "Date"]) df = DataFrame(data=summary_data, index=multi_index, columns=summary_keys) return df
def getAllObservationKeys(ert: EnKFMain): """ @type ert: EnKFMain @rtype: list of str """ return ert.getKeyManager().summaryKeysWithObservations()