コード例 #1
0
    def compute_measures(self, var, window=None):
        """
        Computing some measures with the wind series
        Window is a dictionary with a keyword for the windoe size and a window length

        :return:
        """
        if self.raw_data is None:
            raise NameError("Raw data is not loaded")

        if var > self.raw_data.shape[1]:
            raise NameError("Invalid variable number")

        dvals = {}
        dvals['SpecEnt'] = spectral_entropy(self.raw_data[:, var], sf=1)
        dvals['SampEnt'] = sample_entropy(self.raw_data[:, var], order=2)

        data = self.raw_data[:, var]
        for w in window:
            lw = window[w]
            length = int(data.shape[0] / lw)
            size = lw * length
            datac = data[:size]
            datac = datac.reshape(-1, lw)
            means = np.mean(datac, axis=1)
            vars = np.std(datac, axis=1)
            dvals[f'Stab{w}'] = np.std(means)
            dvals[f'Lump{w}'] = np.std(vars)

        return dvals
コード例 #2
0
    def compute_measures(self, var, window=None):
        """
        Computing some measures with the wind series
        Window is a dictionary with a keyword for the windoe size and a window length

        :return:
        """
        if self.raw_data is None:
            raise NameError("Raw data is not loaded")

        if var > self.raw_data.shape[1]:
            raise NameError("Invalid variable number")

        dvals = {}
        dvals['SpecEnt'] = spectral_entropy(self.raw_data[:, var], sf=1)
        dvals['SampEnt'] = sample_entropy(self.raw_data[:, var], order=2)

        data = self.raw_data[:, var]
        for w in window:
            print(w)
            lw = window[w]
            print(lw)
            length = int(data.shape[0] / lw)
            size = lw * length
            datac = data[:size]
            datac = datac.reshape(-1, lw)
            means = np.mean(datac, axis=1)
            vars = np.std(datac, axis=1)
            dvals[f'Stab{w}'] = np.std(means)
            dvals[f'Lump{w}'] = np.std(vars)
            # decompositions
            stl = STL(self.raw_data[:, var], period=lw)
            res = stl.fit()
            strength_seasonality = 1 - (np.var(
                res.resid)) / (np.var(res.observed - res.trend))
            strength_trend = 1 - (np.var(
                res.resid)) / (np.var(res.observed - res.seasonal))
            dvals[f'strength_seasonality{w}'] = strength_seasonality
            dvals[f'strength_trend{w}'] = strength_trend
            fig = res.plot()

        return dvals