Exemple #1
0
                                 imagestimulus=imagestimulus,
                                 textstimulus=textstimulus,
                                 markernumerate=markernumerate)

        self.end_time = time.time()
        self.elapsed_time = self.end_time - self.start_time
        self.logger.info("!!ON_PLAY ELAPSED TIME!! : {}".format(
            self.elapsed_time))


if __name__ == "__main__":
    #WARNING TO SIMULATE:  USE Generated data or Replay data ( - Generated(outlet_actichamp.py,sine waves), Replay(PREFERABLY file_stream_player.py or class replayamp - does not simulate all)
    replayamp = False

    #replay sample data
    filetoreplay = my.get_filetoreplay()  #filepath

    #save folder dir
    test_folder_path = my.get_test_folder()  #folderpath

    #1.Start Class
    prime = primeclass(replayamp=replayamp, filetoreplay=filetoreplay)
    try:
        #2.RE-INIT Vars
        #SAVING - Reinitialize parameters
        #Start dialogue
        info = {
            'SAVE': ['no', 'yes'],
            'savefolder': test_folder_path,
            'subject': 1,
            'session': 1,
Exemple #2
0
        self.end_time = time.time()
        self.elapsed_time = self.end_time - self.start_time
        self.logger.info("!!ON_PLAY ELAPSED TIME!! : {}".format(
            self.elapsed_time))

if __name__ == "__main__":
    #WARNING TO SIMULATE:  USE ONLY Replay data -  Replay(PREFERABLY file_stream_player.py instead of using replayamp of nftclass)

    #replayamp
    replayamp = False
    #replay sample data (using same for online and offline if you don't acquire data)
    folderdir = 'e2_sample'
    filename = "EG_S001_REST_ss01_b01_08102019_14h13m_rest_1"
    amp_ref = ['Cz']  #[] - no_ref (give manual information about the ref)
    filetoreplay = my.get_filetoreplay(folderdir=folderdir,
                                       filename=filename,
                                       filetype=".meta")  #filepath

    #save folder dir
    test_folder_path = os.path.join(my.get_test_folder(),
                                    'nftclass')  #folderpath

    #1.Start Class
    nft = nftclass(replayamp=replayamp, filetoreplay=filetoreplay)
    nft.logger.debug("#WARNING replayamp only useful for online routines")
    try:
        #2.RE-INIT Vars
        #SAVING
        #Start dialogue
        info = {
            'SAVE': ['no', 'yes'],
                )
            else:
                logger.info('Reached the end of data. Restarting.')
            idx_chunk = 0
            finished = False
            #            t_start = timeit.default_timer() #chooses the best default timer depending on os and python version
            if high_resolution:
                t_start = time.perf_counter()
            else:
                t_start = timeit.default_timer()


# sample code
if __name__ == '__main__':
    server_name = 'BrainVision RDA'  #'Actichamp-0'
    server_data_unit = 'uV'
    chunk_size = 50  # chunk samples ; for a fs=1000Hz , 10 Samples are sent at a 10ms interval
    #filetoreplay
    folderdir = 'e2_sample'  #folder inside "sampledata"
    filename = 'EG_S001_REST_ss01_b01_08102019_14h13m_rest_1'  #
    filetype = ".meta"  #".vhdr"#".meta"
    filetoreplay = my.get_filetoreplay(
        folderdir=folderdir, filename=filename,
        filetype=filetype)  #filepath "sampledata"
    #stream
    stream_player(server_name,
                  filetoreplay,
                  chunk_size,
                  server_data_unit=server_data_unit,
                  auto_restart=True)
Exemple #4
0
def test_1():
    save = False
    plot = True
    on_filter = True  # DC Offset
    rereference = False
    ref_channels = ['Fp1']  # or average
    
    #load data from sample folder
    folderdir = 'e2_sample'
    filename = "EG_S001_REST_ss01_b01_08102019_14h13m_rest_1"
    filetype = ".meta"
    filepath = my.get_filetoreplay(folderdir=folderdir, filename=filename, filetype=filetype)

    
    # wyrm test data: mushu2wyrm
    raw_wyrm = my.load_mushu_data(filepath) #format: raw_wyrm.data samples x channels
    if on_filter:
        order=4
        fs_n= raw_wyrm.fs / 2
        l_freq, h_freq=1, 40#bandpass
        b, a = wyrm.processing.signal.butter(order, [l_freq / fs_n, h_freq / fs_n], btype= 'band' )
        raw_m_2 = wyrm.processing.lfilter(raw_wyrm, b, a)
    if plot:
        spectrum = wyrm.processing.spectrum(raw_wyrm)
        psds=spectrum.data.transpose() #chs, psds
        freqs =spectrum.axes[0]
        fmax=freqs<40
        psds=psds[:,fmax]
        freqs=freqs[fmax]
        eeg.plot_psd(psds, freqs, log_scale=False)

    # mne test data: wyrm2mne or mushu2mne
    st=time.time()
    raw, event_id = my.raw_wyrm_to_mne(raw_wyrm) #raw, event_id = my.mushu_to_mne(filepath) 
    print("Event id 1: ", event_id)
    et=time.time()-st
    stim_ch_1 = raw.pick_types(stim=True)
    print("Time raw: ", et)
    
    raw_m=raw
    print(raw_m.ch_names)
    if on_filter:
        l_freq, h_freq = 1, None  # highpass
        raw_m.filter(l_freq, h_freq)
        l_freq, h_freq = None, 40  # lowpass
        raw_m.filter(l_freq, h_freq)
    if rereference:
        raw_m.set_eeg_reference(ref_channels=ref_channels, projection=False)
    if plot:
        picks = mne.pick_types(raw_m.info, eeg=True)
        raw_m.plot_psd(fmax=40, picks=picks)
        raw_m.pick_types(eeg=True).plot(n_channels=1)
    if save:
        filedir, filname, ext = my.parse_path_list(filepath)
        nfilename = filename + ".fif"
        out_filepath = os.path.join(filedir, nfilename)
        print('saving eeg fif'), nfilename
        raw_m.save(out_filepath)

    
    #simulate an online conversion 
    st=time.time()
    raw, event_id = my.online_raw_wyrm2mne(raw_wyrm)
    print("Event id 2: ", event_id)
    et=time.time()-st
    stim_ch_2=raw.pick_types(stim=True)
    print("Time online: ", et)
    
    print("Same : ", (stim_ch_1.get_data()==stim_ch_2.get_data()).all() )