def fetchData(self, key, case=None):
        key, keyword = key.split(":")
        ensemble_config_node = self.getEnsembleConfigNode(key)
        enkf_fs = self.ert().getEnkfFsManager().getFileSystem(case)
        ensemble_plot_gen_kw = EnsemblePlotGenKW(ensemble_config_node, enkf_fs)
        keyword_index = ensemble_plot_gen_kw.getIndexForKeyword(keyword)

        use_log_scale = ensemble_plot_gen_kw.shouldUseLogScale(keyword_index)

        data = {"x": [0], "y": [], "min_y": None, "max_y": None, "min_x": 0, "max_x": 0, "use_log_scale": use_log_scale}

        for vector in ensemble_plot_gen_kw:
            y = []
            data["y"].append(y)

            if len(vector) > keyword_index:
                value = vector.getValue(keyword_index)
                y.append(value)

                if data["min_y"] is None or data["min_y"] > value:
                    data["min_y"] = value

                if data["max_y"] is None or data["max_y"] < value:
                    data["max_y"] = value

        return data
Example #2
0
    def loadAllGenKwData(ert, case_name, keys=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)

        gen_kw_keys = GenKwCollector.getAllGenKwKeys(ert)

        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 = numpy.empty(shape=(len(gen_kw_keys), len(realizations)),
                                   dtype=numpy.float64)
        gen_kw_array.fill(numpy.nan)

        for column_index, key in enumerate(gen_kw_keys):
            key, keyword = key.split(":")

            use_log_scale = False
            if key.startswith("LOG10_"):
                key = key[6:]
                use_log_scale = True

            ensemble_config_node = ert.ensembleConfig().getNode(key)
            ensemble_data = EnsemblePlotGenKW(ensemble_config_node, fs)
            keyword_index = ensemble_data.getIndexForKeyword(keyword)

            for realization_index, realization_number in enumerate(
                    realizations):
                realization_vector = ensemble_data[realization_number]

                value = realization_vector[keyword_index]

                if use_log_scale:
                    value = math.log10(value)

                gen_kw_array[column_index][realization_index] = value

        gen_kw_data = DataFrame(data=numpy.transpose(gen_kw_array),
                                index=realizations,
                                columns=gen_kw_keys)
        gen_kw_data.index.name = "Realization"

        return gen_kw_data
Example #3
0
    def loadAllGenKwData(ert, case_name, keys=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)

        gen_kw_keys = GenKwCollector.getAllGenKwKeys(ert)

        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 = numpy.empty(shape=(len(gen_kw_keys), len(realizations)), dtype=numpy.float64)
        gen_kw_array.fill(numpy.nan)

        for column_index, key in enumerate(gen_kw_keys):
            key, keyword = key.split(":")

            use_log_scale = False
            if key.startswith("LOG10_"):
                key = key[6:]
                use_log_scale = True

            ensemble_config_node = ert.ensembleConfig().getNode(key)
            ensemble_data = EnsemblePlotGenKW(ensemble_config_node, fs)
            keyword_index = ensemble_data.getIndexForKeyword(keyword)

            for realization_index, realization_number in enumerate(realizations):
                realization_vector = ensemble_data[realization_number]

                value = realization_vector[keyword_index]

                if use_log_scale:
                    value = math.log10(value)

                gen_kw_array[column_index][realization_index] = value

        gen_kw_data = DataFrame(data=numpy.transpose(gen_kw_array), index=realizations, columns=gen_kw_keys)
        gen_kw_data.index.name = "Realization"

        return gen_kw_data