def computeBtnEvent(self): # load selected signals from selected files self.signals = [] self.outputBaseName = None ismat = False dic = self.ui.methodWidget.getArgumentsAsDictionary() if not(dic.has_key("ignoreInputSignals") and dic["ignoreInputSignals"]): for f in self.filesSelected: if f.endswith('.mat'): matfile = loadmat(f) ismat = True for s in self.signalsSelected: if not ismat: if not self.filesHasHeaders: self.signals.append(ExtractSignalFromCSV(str(f), separator=self.columnSeparator, unit='ms', columns=s, header=False, headerValues=self.signalsHeader)) else: self.signals.append(ExtractSignalFromCSV(str(f), separator=self.columnSeparator, unit='ms', columns=[str(self.headerMap[s])])) else: ci = self.signalsHeader.index(s) cn = str(self.signalsHeader[ci]) self.signals.append(ExtractSignalFromMAT(str(f), columns_index=ci, columns_wanted_names=[cn], matfile=matfile)) self.ui.methodWidget.compute(self.signals, self.getOutputBasename()) self.ui.stopPushButton.setEnabled(True) self.ui.startPushButton.setEnabled(False) self.ui.toolBox.setEnabled(False) self.showStatus("Computing...")
def loadSignal(self, file, name): signal = None ismat = False if file.endswith('.mat'): matfile = loadmat(file) ismat = True if not ismat: if not self.filesHasHeaders: signal = ExtractSignalFromCSV(str(file), separator=self.columnSeparator, unit='ms', columns=name, header=False, headerValues=self.signalsHeader) else: signal = ExtractSignalFromCSV( str(file), separator=self.columnSeparator, unit='ms', columns=[str(self.headerMap[name])]) else: ci = self.signalsHeader.index(name) cn = str(self.signalsHeader[ci]) signal = ExtractSignalFromMAT(str(file), columns_index=ci, columns_wanted_names=[cn], matfile=matfile) return signal
def exportSelectedSignals(self): table = self.ui.inputSignalsWidget selectedSignalsHeader = [] # give filename self.getSelectedFiles() firstTime = True fileNumber = 1 for index in range(table.rowCount()): item = table.item(index, 0) ismat = False for f in self.getSelectedFiles(): if f.endswith('.mat'): matfile = loadmat(f) ismat = True if item.checkState() == QtCore.Qt.Checked: s = str(item.text()) if not ismat: if not self.filesHasHeaders: signal = ExtractSignalFromCSV(str(f), separator=self.columnSeparator, unit='ms', columns=s, header=False, headerValues=self.signalsHeader) else: signal = ExtractSignalFromCSV(str(f), separator=self.columnSeparator, unit='ms', columns=[str(self.headerMap[s])]) else: ci = self.signalsHeader.index(s) cn = str(self.signalsHeader[ci]) signal = ExtractSignalFromMAT(str(f), columns_index=ci, columns_wanted_names=[cn], matfile=matfile) if firstTime: seletedSignals = pd.DataFrame(index=signal.index) firstTime = False #seletedSignals.insert(col,s,signal) #col += 1 seletedSignals[s+str(fileNumber)] = signal fileNumber += 1 fileName = '' fileName = QtGui.QFileDialog.getSaveFileName(self) if not fileName: print "Error export signals: No filename provided" return else: if not fileName.endsWith('.csv'): fileName = fileName+'.csv' seletedSignals.to_csv(path_or_buf=fileName,header=True,sep=';')
def computeBtnEvent(self): # load selected signals from selected files self.signals = [] ismat = False for f in self.filesSelected: if f.endswith('.mat'): matfile = loadmat(f) ismat = True for s in self.signalsSelected: if not ismat: if not self.filesHasHeaders: self.signals.append( ExtractSignalFromCSV( str(f), separator=self.columnSeparator, unit='ms', columns=s, header=False, headerValues=self.signalsHeader)) else: self.signals.append( ExtractSignalFromCSV( str(f), separator=self.columnSeparator, unit='ms', columns=[str(self.headerMap[s])])) else: ci = self.signalsHeader.index(s) cn = str(self.signalsHeader[ci]) self.signals.append( ExtractSignalFromMAT(str(f), columns_index=ci, columns_wanted_names=[cn], matfile=matfile)) self.ui.methodWidget.compute(self.signals) self.ui.stopPushButton.setEnabled(True) self.ui.startPushButton.setEnabled(False) self.ui.toolBox.setEnabled(False) self.showStatus("Computing...")
""" Define signals in pd.dataFrame format """ # preparing the input signals N = 20 # number of samples f = 1.0 # sinewave frequency (Hz) Fs = 200 # sampling frequency (Hz) n = np.arange(0,N) # number of samples # input signals x = pd.DataFrame({'X':np.sin(2*3.14*f*n/Fs)}) y = pd.DataFrame({'Y':np.sin(2*3.14*2*f*n/Fs)}) ''' """OR""" """ Import signals from a .csv file """ filename = 'data_examples/2Persons_Monovariate_Continuous_data_2.csv' filename = 'data_examples/2PersonsMonoContData2Rsp500ms.csv' x = ExtractSignalFromCSV(filename, columns = ['x'], unit = 's') y = ExtractSignalFromCSV(filename, columns = ['y'], unit = 's') # Resample and Interpolate data to have constant frequency #x = ResampleAndInterpolate(x, rule='500ms', limit=5) #y = ResampleAndInterpolate(y, rule='500ms', limit=5) #filenameOut = 'data_examples/2PersonsMonoContData2Rsp500ms.csv' #out = pd.DataFrame({'x': x.iloc[:,0], 'y': y.iloc[:,0]}).reset_index() #out.drop('Time (s)', 1, inplace=True) #out.to_csv(filenameOut,index_label =['Time','x','y']) ''' """OR""" """ Import signals from a .mat file """
from Methods.utils.ExtractSignal import ExtractSignalFromCSV ''' """ Define signals in pd.dataFrame format """ # preparing the input time series N = 20 # number of samples f = 1.0 # sinewave frequency (Hz) Fs = 200 # sampling frequency (Hz) n = np.arange(0,N) # number of samples # input time series x = pd.DataFrame({'X':np.sin(2*3.14*f*n/Fs)}) y = pd.DataFrame({'Y':np.sin(2*3.14*2*f*n/Fs)}) ''' """OR""" """ Import signal from a .csv file """ filename = 'data_examples/2Persons_Multivariate_Continous_data.csv' x = ExtractSignalFromCSV(filename, columns=['Upper body mq']) y = ExtractSignalFromCSV(filename, columns=['Upper body mq.1']) z = ExtractSignalFromCSV(filename, columns=['Left Hand mq']) a = ExtractSignalFromCSV(filename, columns=['Left Hand mq.1']) ''' """OR""" """ Import signal from a .mat file """ filename = 'data_examples/data_example_MAT.mat' x = ExtractSignalFromMAT(filename, columns_index =[0,2], columns_wanted_names=['Time', 'GlobalBodyActivity0']) y = ExtractSignalFromMAT(filename, columns_index =[10], columns_wanted_names=['GlobalBodyActivity1']) ''' signals = [x, y, z, a] N = signals[0].shape[0] n = np.arange(0, N)
''' """ Define signals in pd.dataFrame format """ # preparing the input time series N = 1000 # number of samples f = 1.0 # sinewave frequency (Hz) Fs = 200 # sampling frequency (Hz) n = np.arange(0,N) # number of samples # input time series x = pd.DataFrame({'X':np.sin(2*3.14*f*n/Fs)}, np.arange(0,N) ) y = pd.DataFrame(2.0*np.random.rand(N,1),np.arange(0,N)) ''' """OR""" """ Import signal from a .csv file """ filename = 'data_examples/2Persons_Multivariate_Continous_data.csv' x = ExtractSignalFromCSV(filename, columns=['Upper body mq']) y = ExtractSignalFromCSV(filename, columns=['Upper body mq.1']) ''' """OR""" """ Import signal from a .mat file """ filename = 'data_examples/data_example_MAT.mat' z = ExtractSignalFromMAT(filename, columns_index =[0,2], columns_wanted_names=['Time', 'GlobalBodyActivity0']) t = ExtractSignalFromMAT(filename, columns_index =[10], columns_wanted_names=['GlobalBodyActivity1']) ''' signals = [x, y] N = signals[0].shape[0] n = np.arange(0, N) """ Plot input signals """