Exemple #1
0
    def fetchPcaData(self, key, cases):
        """ @rtype: PlotData """
        if key.startswith("PCA:"):
            pca_name = key
        else:
            pca_name = "PCA:%s" % key

        pca_data_fetcher = PcaDataFetcher(self.ert())
        pca_plot_data = PlotData(pca_name)

        if DataTypeKeysModel().isCustomPcaKey(key):
            obs_keys = DataTypeKeysModel().getCustomPcaKeyObsKeys(key)
        else:
            obs_keys = pca_data_fetcher.getObsKeys(key)

        for case in cases:

            pca_data = pca_data_fetcher.fetchData(obs_keys, case)

            if pca_data["x"] is not None:

                if not pca_plot_data.hasObservationData():
                    pca_observation_plot_data = ObservationPlotData(pca_name)
                    pca_observation_plot_data.setObservationData(
                        pca_data["x"], pca_data["obs_y"],
                        [0.0 for x in pca_data["x"]], False)
                    pca_observation_plot_data.updateBoundaries(
                        pca_data["min_x"], pca_data["max_x"],
                        pca_data["min_y"], pca_data["max_y"])
                    pca_plot_data.setObservationData(pca_observation_plot_data)

                pca_ensemble_plot_data = EnsemblePlotData(key, case)
                pca_ensemble_plot_data.setEnsembleData(pca_data["x"],
                                                       pca_data["y"], [], [])
                pca_ensemble_plot_data.updateBoundaries(
                    pca_data["min_x"], pca_data["max_x"], pca_data["min_y"],
                    pca_data["max_y"])
                pca_plot_data.addEnsembleData(pca_ensemble_plot_data)

        return pca_plot_data
Exemple #2
0
    def addObservationData(self,
                           plot_data,
                           key,
                           fetcher,
                           histogram_factory=None):
        observation_data = fetcher.fetchData(key)

        observation_plot_data = ObservationPlotData(key)
        observation_plot_data.setObservationData(
            observation_data["x"], observation_data["y"],
            observation_data["std"], observation_data["continuous"])
        observation_plot_data.updateBoundaries(observation_data["min_x"],
                                               observation_data["max_x"],
                                               observation_data["min_y"],
                                               observation_data["max_y"])

        plot_data.setObservationData(observation_plot_data)

        if histogram_factory is not None:
            histogram_factory.setObservations(observation_data["x"],
                                              observation_data["y"],
                                              observation_data["std"],
                                              observation_data["min_y"],
                                              observation_data["max_y"])