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 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