def apply_SSA_decomposition_one(var, ncomp, data): """ Applies SSA decomposition to one variable of the data :param var: :param ncomp: :param data: :return: """ mdec = data[:, :, var] # print(mdec.shape, ncomp) ssa = SSA(ncomp) ldec = [] for i in range(mdec.shape[0]): ssa.fit(mdec[i]) ldec.append(ssa.decomposition()) decvar = np.swapaxes(np.stack(ldec), 1, 2) return np.concatenate((data[:, :, 1:], decvar), axis=2)
def apply_SSA_decomposition_y(ncomp, data): """ Applies SSA decomposition to one variable of the data :param ncomp: :param data: :return: """ mdec = data # print(mdec.shape, ncomp) ssa = SSA(ncomp) ldec = [] for i in range(mdec.shape[0]): ssa.fit(mdec[i]) ldec.append(ssa.decomposition()) decvar = np.swapaxes(np.stack(ldec), 1, 2) # print(decvar.shape) return decvar
def apply_SSA_decomposition_all(ncomp, data): """ Applies SSA decomposition to one variable of the data :param var: :param ncomp: :param data: :return: """ dmat = [] ssa = SSA(ncomp) for m in range(data.shape[2]): mdec = data[:, :, m] ldec = [] for i in range(mdec.shape[0]): ssa.fit(mdec[i]) ldec.append(ssa.decomposition()) decvar = np.swapaxes(np.stack(ldec), 1, 2) dmat.append(decvar) return np.concatenate(dmat, axis=2)