def getPlotDataForKeyAndCases(self, key, cases): observation_data_fetcher = ObservationDataFetcher(self.ert()) block_observation_data_fetcher = BlockObservationDataFetcher( self.ert()) gen_kw_fetcher = EnsembleGenKWFetcher(self.ert()) gen_data_fetcher = EnsembleGenDataFetcher(self.ert()) if self.isBlockObservationKey(key): return self.fetchBlockObservationData( block_observation_data_fetcher, key, cases) elif self.isSummaryKey(key): return self.fetchSummaryData(observation_data_fetcher, key, cases) elif self.isGenKWKey(key): return self.fetchGenKWData(gen_kw_fetcher, key, cases) elif self.isGenDataKey(key): return self.fetchGenData(gen_data_fetcher, key, cases) elif self.isPcaDataKey(key): plot_data = PlotData(key) pca_plot_data = self.fetchPcaData(key, cases) plot_data.setUserData("PCA", pca_plot_data) return plot_data else: raise NotImplementedError("Key %s not supported." % key)
def getPlotDataForKeyAndCases(self, key, cases): observation_data_fetcher = ObservationDataFetcher(self.ert()) block_observation_data_fetcher = BlockObservationDataFetcher(self.ert()) gen_kw_fetcher = EnsembleGenKWFetcher(self.ert()) gen_data_fetcher = EnsembleGenDataFetcher(self.ert()) if self.isBlockObservationKey(key): return self.fetchBlockObservationData(block_observation_data_fetcher, key, cases) elif self.isSummaryKey(key): return self.fetchSummaryData(observation_data_fetcher, key, cases) elif self.isGenKWKey(key): return self.fetchGenKWData(gen_kw_fetcher, key, cases) elif self.isGenDataKey(key): return self.fetchGenData(gen_data_fetcher, key, cases) elif self.isPcaDataKey(key): plot_data = PlotData(key) pca_plot_data = self.fetchPcaData(key, cases) plot_data.setUserData("PCA", pca_plot_data) return plot_data else: raise NotImplementedError("Key %s not supported." % key)
def fetchBlockObservationData(self, block_observation_data_fetcher, key, cases): plot_data = PlotData(key) data = block_observation_data_fetcher.fetchData(key) block_observation_plot_data = ObservationPlotData(key) selected_report_step_index = 0 if len(data) > 0: data = data[selected_report_step_index] block_observation_plot_data.setObservationData(data["x"], data["y"], data["std"], False, histogram_support=False) block_observation_plot_data.updateBoundaries(data["min_x"], data["max_x"], data["min_y"], data["max_y"]) plot_data.setObservationData(block_observation_plot_data) for case in cases: ensemble_data = EnsembleBlockDataFetcher(self.ert()).fetchData(key, case) if len(ensemble_data) > 0: ensemble_data = ensemble_data[selected_report_step_index] ensemble_plot_data = EnsemblePlotData(key, case) ensemble_plot_data.setEnsembleData(ensemble_data["x"], ensemble_data["y"], ensemble_data["min_x_values"], ensemble_data["max_x_values"], histogram_support=False) ensemble_plot_data.updateBoundaries(ensemble_data["min_x"], ensemble_data["max_x"], ensemble_data["min_y"], ensemble_data["max_y"]) plot_data.addEnsembleData(ensemble_plot_data) return plot_data
def fetchGenKWData(self, gen_kw_fetcher, key, cases): plot_data = PlotData(key) histogram_factory = ReportStepLessHistogramPlotDataFactory(key) self.addEnsembleData(plot_data, key, cases, gen_kw_fetcher, histogram_factory) plot_data.setHistogramFactory(histogram_factory) return plot_data
def fetchBlockObservationData(self, block_observation_data_fetcher, key, cases): plot_data = PlotData(key) plot_data.setUnitY(self.ert().eclConfig().getDepthUnit()) plot_data.setUnitX(self.ert().eclConfig().getPressureUnit()) if block_observation_data_fetcher.hasData(key): block_observation_data_fetcher.setSelectedReportStepIndex(0) self.addObservationData(plot_data, key, block_observation_data_fetcher) ensemble_block_data_fetcher = EnsembleBlockDataFetcher(self.ert()) ensemble_block_data_fetcher.setSelectedReportStepIndex(0) self.addEnsembleData(plot_data, key, cases, ensemble_block_data_fetcher) self.addPcaData(plot_data, key, cases) return plot_data
def fetchSummaryData(self, observation_data_fetcher, key, cases): plot_data = PlotData(key) observation_data = 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) refcase_data = RefcaseDataFetcher(self.ert()).fetchData(key) refcase_plot_data = RefcasePlotData(key) refcase_plot_data.setRefcaseData(refcase_data["x"], refcase_data["y"]) refcase_plot_data.updateBoundaries(refcase_data["min_x"], refcase_data["max_x"], refcase_data["min_y"], refcase_data["max_y"]) plot_data.setRefcaseData(refcase_plot_data) for case in cases: ensemble_data = EnsembleDataFetcher(self.ert()).fetchData(key, case) ensemble_plot_data = EnsemblePlotData(key, case) ensemble_plot_data.setEnsembleData(ensemble_data["x"], ensemble_data["y"], ensemble_data["min_y_values"], ensemble_data["max_y_values"]) ensemble_plot_data.updateBoundaries(ensemble_data["min_x"], ensemble_data["max_x"], ensemble_data["min_y"], ensemble_data["max_y"]) plot_data.addEnsembleData(ensemble_plot_data) return plot_data
def fetchGenKWData(self, gen_kw_fetcher, key, cases): plot_data = PlotData(key) histogram_factory = ReportStepLessHistogramPlotDataFactory(key) for case in cases: ensemble_data = gen_kw_fetcher.fetchData(key, case) ensemble_plot_data = EnsemblePlotData(key, case) ensemble_plot_data.setEnsembleData(ensemble_data["x"], ensemble_data["y"], None, None) ensemble_plot_data.updateBoundaries(ensemble_data["min_x"], ensemble_data["max_x"], ensemble_data["min_y"], ensemble_data["max_y"]) plot_data.addEnsembleData(ensemble_plot_data) histogram_factory.addEnsembleData(case, ensemble_data["x"], ensemble_data["y"], ensemble_data["min_y"], ensemble_data["max_y"]) plot_data.setHistogramFactory(histogram_factory) return plot_data
def fetchGenData(self, gen_data_fetcher, key, cases): plot_data = PlotData(key) gen_data_observation_fetcher = ObservationGenDataFetcher(self.ert()) if gen_data_observation_fetcher.hasData(key): self.addObservationData(plot_data, key, gen_data_observation_fetcher) self.addEnsembleData(plot_data, key, cases, gen_data_fetcher) self.addPcaData(plot_data, key, cases) return 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
def fetchSummaryData(self, observation_data_fetcher, key, cases): plot_data = PlotData(key) histogram_factory = HistogramPlotDataFactory(key) refcase_fetcher = RefcaseDataFetcher(self.ert()) self.addObservationData(plot_data, key, observation_data_fetcher, histogram_factory) self.addRefcaseData(plot_data, key, refcase_fetcher, histogram_factory) self.addEnsembleData(plot_data, key, cases, EnsembleDataFetcher(self.ert()), histogram_factory) self.addPcaData(plot_data, key, cases) if refcase_fetcher.hasRefcase(): unit = refcase_fetcher.getRefCase().unit(key) if unit != "": plot_data.setUnitY(unit) plot_data.setHistogramFactory(histogram_factory) return plot_data
def fetchGenData(self, gen_data_fetcher, key, cases): plot_data = PlotData(key) ensemble_data = ObservationGenDataFetcher(self.ert()).fetchData(key, cases) if len(ensemble_data) > 0: observation_plot_data = ObservationPlotData(key) observation_plot_data.setObservationData(ensemble_data["x"], ensemble_data["y"], ensemble_data["std"], ensemble_data["continuous"]) observation_plot_data.updateBoundaries(ensemble_data["min_x"], ensemble_data["max_x"], ensemble_data["min_y"], ensemble_data["max_y"]) plot_data.setObservationData(observation_plot_data) for case in cases: ensemble_data = gen_data_fetcher.fetchData(key, case) if len(ensemble_data) > 0: ensemble_plot_data = EnsemblePlotData(key, case) ensemble_plot_data.setEnsembleData(ensemble_data["x"], ensemble_data["y"], ensemble_data["min_y_values"], ensemble_data["max_y_values"]) ensemble_plot_data.updateBoundaries(ensemble_data["min_x"], ensemble_data["max_x"], ensemble_data["min_y"], ensemble_data["max_y"]) plot_data.addEnsembleData(ensemble_plot_data) return plot_data
def __init__(self, web_page, plot_url): QObject.__init__(self) assert isinstance(web_page, QWebPage) self.__web_page = web_page self.__ready = False self.__html_ready = False self.__data = PlotData("invalid", parent=self) self.__size = None self.__temporary_data_object = None self.applyContextObject() root_path = os.getenv("ERT_SHARE_PATH") path = os.path.join(root_path, plot_url) self.__web_page.mainFrame().load(QUrl("file://%s" % path)) self.__web_page.loadFinished.connect(self.loadFinished)
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 addPcaData(self, plot_data, key, cases): if plot_data.hasObservationData() and plot_data.hasEnsembleData(): plot_data.setUserData("PCA", self.fetchPcaData(key, cases)) else: plot_data.setUserData( "PCA", PlotData("No ensemble data available for %s" % key))