示例#1
0
文件: SyncPy2.py 项目: syncpy/SyncPy
    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...")
示例#2
0
    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
示例#3
0
文件: SyncPy2.py 项目: syncpy/SyncPy
    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=';')
示例#4
0
    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 """
示例#6
0
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)
示例#7
0
'''
""" 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 """