Пример #1
0
    def importCsvFile(self):
        self.data_unit = str(self.lineEdit_time_unit.text())
        self.input_data = ExtractSignalFromCSV(str(self.file_path),
                                               unit=self.data_unit)

        self.displaySignalPreview()

        self.label_signal_name.setVisible(True)
        self.lineEdit_signal_name.setVisible(True)
        self.pushButton_visualize.setVisible(True)
        self.pushButton_save_signal.setVisible(True)
        """ DEBUG """
        self.lineEdit_signal_name.setText("mySignal")
Пример #2
0
'''
""" 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]
Пример #3
0
)
print(
    "This script computes the Granger Causality test in the spectral domain between two monovariate signals \n"
    + "expressed as Python Pandas DataFrame.")
print(
    "*************************************************************************************"
)
""" Import Utils modules """
from utils.ExtractSignal import ExtractSignalFromCSV
from utils.ResampleAndInterpolate import ResampleAndInterpolate
""" Import wanted module with every parent packages """
import DataFrom2Persons.Monovariate.Continuous.Linear.SpectralGrangerCausality as SGC
""" Import signal from a .csv file """
filename = 'data_examples/data_jouet_4.csv'
print "\nLoading signals from csv files : ", filename, "\n"
x1 = ExtractSignalFromCSV(filename, columns=['x1'])
x2 = ExtractSignalFromCSV(filename, columns=['x2'])
""" Define class attributes """
max_lag = 10  # Define the maximum lag acceptable to estimate autoregressive models
criterion = 'bic'  # Define the criterion to estimate the optimal number of lags to estimate autoregressive models
plot = True  # Authorize the plot of the results
""" Instanciate the class with its attributes """
print("\n")

try:
    sgc = SGC.SpectralGrangerCausality(max_lag=max_lag,
                                       criterion=criterion,
                                       plot=plot)
except TypeError, err:
    print("TypeError in SpectralGrangerCausality constructor : \n" + str(err))
    sys.exit(-1)
Пример #4
0
'''
""" 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_Multivariate_Continous_data.csv'
x = ExtractSignalFromCSV(filename, columns = ['Upper body mq'])
y = ExtractSignalFromCSV(filename, columns = ['Upper body mq.1'])

'''
"""OR"""
""" Import signals 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]

N = signals[0].shape[0]
n = np.arange(0,N) 
Пример #5
0
from utils.ResampleAndInterpolate import ResampleAndInterpolate
'''
""" 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_Monovariate_Continuous_data_2.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)
'''
"""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'])
'''
""" Plot input signals """
n = [float(i) / 2 for i in range(x.size)]  # create x axis values
plt.ion()
Пример #6
0
import pandas as pd  # Time serie package
import matplotlib.pyplot as plt  # Plotting package
sys.path.insert(0, '../src/')  # To be able to import from parent directory

print("=================================================================")
print("== Testing for Conditional Granger Causality between 5 signals ==")
print("=================================================================")
""" Import Utils modules """
from utils.ExtractSignal import ExtractSignalFromCSV
from utils.ResampleAndInterpolate import ResampleAndInterpolate
""" Import wanted module with every parent packages """
import DataFromManyPersons.Univariate.Continuous.Linear.ConditionalGrangerCausality as CGC
""" Import signal from a .csv file """
filename = 'data_examples/data_jouet_3.csv'
print "\nLoading signals from csv files : ", filename, "\n"
x1 = ExtractSignalFromCSV(filename, columns=['x1'])
x2 = ExtractSignalFromCSV(filename, columns=['x2'])
x3 = ExtractSignalFromCSV(filename, columns=['x3'])
x4 = ExtractSignalFromCSV(filename, columns=['x4'])
x5 = ExtractSignalFromCSV(filename, columns=['x5'])

# Resample and Interpolate data to have constant frequency
x1 = ResampleAndInterpolate(x1, rule='200ms', limit=5)
x2 = ResampleAndInterpolate(x2, rule='200ms', limit=5)
x3 = ResampleAndInterpolate(x3, rule='200ms', limit=5)
x4 = ResampleAndInterpolate(x4, rule='200ms', limit=5)
x5 = ResampleAndInterpolate(x5, rule='200ms', limit=5)
""" Define class attributes """
max_lag = 10  # Define the maximum lag acceptable to estimate autoregressive models
criterion = 'bic'  # Define the criterion to estimate the optimal number of lags to estimate autoregressive models
plot = True  # Authorize the plot of the results
Пример #7
0
#input signals
print("\n")
print("Generating the input signals...")

N=26

x = pd.DataFrame([0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0],np.arange(0,N))
y = pd.DataFrame([0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0],np.arange(0,N))

'''
"""OR"""
""" Import signals from a .csv file """
#Data from files
filename = 'data_examples/2Persons_Monovariate_Categorical_data.csv'

x = ExtractSignalFromCSV(filename, columns=['0'])
y = ExtractSignalFromCSV(filename, columns=['1'])

s = np.arange(0, x.shape[0])

plt.ion()
f, axarr = plt.subplots(2, sharex=True)
axarr[0].set_title('Input signals')
axarr[0].set_xlabel('Samples')
axarr[1].set_xlabel('Samples')
axarr[0].stem(s, x, label="x")
axarr[1].stem(s, y, label="y")
axarr[0].legend(loc='best')
axarr[1].legend(loc='best')
""" Define class attributes of the wanted method """
atype = 'tot'  # algorithm to be used to compute Q and q
Пример #8
0
print(
    "*********************************************************************************************************************************"
)
print(
    "This scripts computes CCA between two multivariate signals and study it\'s maximal correlation, i.e. the maximal synchrony between them.\n"
    "The two multivariate signals contain features extracted from an audiovisual recording in which a person pronounces the voyels \'a\', \'o\', and \'e\'\n"
    "For the face we extracted the following action unit (AU): AU25 and AU26"
    "For the voice we extracted RMS and roughness\n"
    "Synchrony is expected to be maximised in a neighborhood of 0\n")
print(
    "**********************************************************************************************************************************"
)
"""Import wanted module with every parent packages"""
import DataFrom2Persons.Multivariate.Continuous.Linear.CCA as CCA

x = ExtractSignalFromCSV('../src/samples/CCAVoicedata.csv')
y = ExtractSignalFromCSV('../src/samples/CCAFilteredAU.csv')

"removing headers"
x = x.values
y = y.values
x0 = x[:, 0]
x1 = x[:, 1]
y0 = y[:, 0]
y1 = y[:, 1]

t = np.arange(0, x.shape[0])
""" Plot input signals """
plt.ion()
f, axarr = plt.subplots(4, sharex=True)
axarr[0].set_title('Input signals')