def commit(self):
        self.Error.seasonal_decompose_fail.clear()
        data = self.data
        if not data or not self.selected:
            self.Outputs.time_series.send(data)
            return

        selected_subset = Timeseries(
            Domain(self.selected, source=data.domain),
            data)  # FIXME: might not pass selected interpolation method

        with self.progressBar(len(self.selected)) as progress:
            try:
                adjusted_data = seasonal_decompose(
                    selected_subset,
                    self.DECOMPOSITION_MODELS[self.decomposition],
                    self.n_periods,
                    callback=lambda *_: progress.advance())
            except ValueError as ex:
                self.Error.seasonal_decompose_fail(str(ex))
                adjusted_data = None

        if adjusted_data is not None:
            ts = Timeseries(Timeseries.concatenate((data, adjusted_data)))
            ts.time_variable = data.time_variable
        else:
            ts = None
        self.Outputs.time_series.send(ts)
示例#2
0
    def commit(self):
        data = self.data
        if not data or not self.selected:
            self.send(Output.TIMESERIES, data)
            return

        selected_subset = Timeseries(Domain(self.selected, source=data.domain), data)  # FIXME: might not pass selected interpolation method

        with self.progressBar(len(self.selected)) as progress:
            adjusted_data = seasonal_decompose(
                selected_subset,
                self.DECOMPOSITION_MODELS[self.decomposition],
                self.n_periods,
                callback=lambda *_: progress.advance())

        ts = Timeseries(Timeseries.concatenate((data, adjusted_data)))
        ts.time_variable = data.time_variable
        self.send(Output.TIMESERIES, ts)