Ejemplo n.º 1
0
def prepSingle(filename, save=True):
    '''
	preprocesses a single file by name - used for testing
	'''
    sub = fs.Subject(filename=filename)
    X, y = preprocess(sub)
    if save:
        fs.write_csv(filename, X, y)
    return X, y
Ejemplo n.º 2
0
def prepAll(force=False):
    '''
	preprocesses all files stored on properly on the drive. either mesa or shhs.
	the amount of time and errors are logged for testing purposes. optionally
	re-processing already completed files is possible.
	'''
    log, clock = get_log('Preprocessing', echo=True), stopwatch()
    filenames = fs.getAllSubjectFilenames(preprocessed=False)

    # determines already completed files
    oldFiles = fs.getAllSubjectFilenames(preprocessed=True)
    if not force:
        filenames = [fn for fn in filenames if fn not in oldFiles]
        log.print('Files already completed:   {0}'.format(len(oldFiles)))
        log.print('Files remaining:           {0}'.format(len(filenames)))
        if (len(oldFiles) > 0):
            log.printHL()
            for fn in oldFiles:
                log.print('{0} already completed'.format(fn))
    else:
        log.print('Files re-preprocessing:    {0}'.format(len(oldFiles)))
        log.print('Files remaining:           {0}'.format(len(filenames)))
    log.printHL()

    # processes each file with try/catch loop incase of errors in single files.
    clock.round()
    for i, filename in enumerate(filenames):
        try:
            subject = fs.Subject(filename=filename)
            X, y = preprocess(subject)
            fs.write_csv(filename, X, y)
            log.print('{0} preprocessed in {1}s'.format(
                filename, clock.round()))
        except Exception as e:
            log.print('{0} Exception: {1}'.format(filename, str(e)))
            clock.round()
    clock.stop()
Ejemplo n.º 3
0
def prep_X(edf, anno):
    '''
	converts two edf and anno filepaths into X
	'''
    sub = fs.Subject(edfPath=edf, annoPath=anno, ArousalAnno=False)
    return preprocess(sub, arousals=False)