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
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"])