示例#1
0
    def datarows(cls):
        # make segment dictionary
        segs = {}
        for level_num, segment_list in cls.project.segmenttree.getLeveledSegments().items():
            for segment in segment_list:
                segpath = cls.segpathsep.join([u'{}'.format(sp) for sp in segment.path])
                segs[segment.id] = (level_num,segpath,segment.name)
         
        # Iterate through the pen data array, yielding each pen sample
        # as a list.
        getSeriesForSample = cls.project.getSeriesForSample
        getPressedRunForSample = cls.project.getPressedRunForSample
        getStrokeForSample = cls.project.getStrokeForSample

        for i, pensample in enumerate(cls.project.pendata):
            r = [i,]
            r.extend(pensample.tolist())
            r.extend((convertSampleStateValue(pensample['state']), 
                        getSeriesForSample(i),
                        getPressedRunForSample(i),
                        getStrokeForSample(i),
                        segs.get(pensample['segment_id'],('','',''))[0],
                        segs.get(pensample['segment_id'],('','',''))[1],
                        segs.get(pensample['segment_id'],('','',''))[2]
                        ))
            yield r
示例#2
0
    def datarows(cls):
        # make segment dictionary
        segs = {}
        for level_num, segment_list in cls.project.segmenttree.getLeveledSegments(
        ).items():
            for segment in segment_list:
                segpath = cls.segpathsep.join(
                    [u'{}'.format(sp) for sp in segment.path])
                segs[segment.id] = (level_num, segpath, segment.name)

        # Iterate through the pen data array, yielding each pen sample
        # as a list.
        getSeriesForSample = cls.project.getSeriesForSample
        getPressedRunForSample = cls.project.getPressedRunForSample
        getStrokeForSample = cls.project.getStrokeForSample
        getStrokeTypeForSample = cls.project.getStrokeTypeForSample

        for i, pensample in enumerate(cls.project.pendata):
            r = [
                i,
            ]
            r.extend(pensample.tolist())
            r.extend((convertSampleStateValue(pensample['state']),
                      getSeriesForSample(i), getPressedRunForSample(i),
                      getStrokeForSample(i), getStrokeTypeForSample(i),
                      segs.get(pensample['segment_id'], ('', '', ''))[0],
                      segs.get(pensample['segment_id'], ('', '', ''))[1],
                      segs.get(pensample['segment_id'], ('', '', ''))[2]))
            yield r
示例#3
0
    def datarows(cls):
        pendata = cls.project.pendata

        ss = cls.project.segmenttree
        sfile = ss.name

        lvls = range(1, ss.getLevelCount() + 1)

        segs_by_lvl = ss.getLeveledSegments()
        catname = ss.name

        cvcolcount = 0
        if len(cls.project.trial_cond_vars):
            cvcolcount = len(cls.project.trial_cond_vars.dtype.names)

        for i in xrange(pendata.shape[0]):
            dp = pendata[i]

            rowdata = [
                sfile, i, dp['time'], dp['x'], dp['y'], dp['pressure'],
                convertSampleStateValue(dp['state']), catname
            ]

            # Go through segment levels finding matching seg at each level for
            # current data point. Use '' for levels where no seg matched
            # data point time, otherwise use segment name.
            for l in lvls:
                dpsegname = cls.missingval
                for seg in segs_by_lvl[l]:
                    if seg.contains(time=dp['time']):
                        dpsegname = seg.name
                        break
                # If no seg was found at this level, none will exist at lower
                # levels for this point, so break the loop. Remaining col vals
                # will automatically be filled in by ReportExporter
                if dpsegname == cls.missingval:
                    break
                rowdata.append(dpsegname)

            if cvcolcount:
                tcv = cls.project.getTrialConditionsForSample(i)

                if tcv is not None:
                    rowdata = tcv + rowdata
                else:
                    rowdata = [cls.missingval
                               for i in range(cvcolcount)] + rowdata
            yield rowdata
示例#4
0
    def datarows(cls):
        
        # Iterate through the pen data array, yielding each pen sample
        # as a list.
        getSeriesForSample = cls.project.getSeriesForSample
        getPressedRunForSample = cls.project.getPressedRunForSample
        getStrokeForSample = cls.project.getStrokeForSample

        for i, pensample in enumerate(cls.project.pendata):
            r = [i,]
            r.extend(pensample.tolist())
            r.extend((convertSampleStateValue(pensample['state']), 
                        getSeriesForSample(i),
                        getPressedRunForSample(i),
                        getStrokeForSample(i)
                        ))
            yield r
示例#5
0
    def datarows(cls):
        pendata = cls.project.pendata

        ss = cls.project.segmenttree
        sfile=ss.name

        lvls = range(1,ss.getLevelCount()+1)

        segs_by_lvl=ss.getLeveledSegments()
        catname = ss.name

        cvcolcount=0
        if len(cls.project.trial_cond_vars):
            cvcolcount=len(cls.project.trial_cond_vars.dtype.names)

        for i in xrange(pendata.shape[0]):
            dp=pendata[i]


            rowdata = [sfile,i,dp['time'],dp['x'],dp['y'],dp['pressure'],
                       convertSampleStateValue(dp['state']), catname]

            # Go through segment levels finding matching seg at each level for
            # current data point. Use '' for levels where no seg matched
            # data point time, otherwise use segment name.
            for l in lvls:
                dpsegname=cls.missingval
                for seg in segs_by_lvl[l]:
                    if seg.contains(time=dp['time']):
                        dpsegname=seg.name
                        break
                # If no seg was found at this level, none will exist at lower
                # levels for this point, so break the loop. Remaining col vals
                # will automatically be filled in by ReportExporter
                if dpsegname == cls.missingval:
                    break
                rowdata.append(dpsegname)

            if cvcolcount:
                tcv=cls.project.getTrialConditionsForSample(i)
                if tcv is not None:
                    rowdata.extend(list(tcv))
                else:
                    rowdata.extend([cls.missingval for i in range(cvcolcount)])
            yield rowdata
示例#6
0
    def datarows(cls):

        # Iterate through the pen data array, yielding each pen sample
        # as a list.
        getSeriesForSample = cls.project.getSeriesForSample
        getPressedRunForSample = cls.project.getPressedRunForSample
        getStrokeForSample = cls.project.getStrokeForSample
        getStrokeTypeForSample = cls.project.getStrokeTypeForSample

        for i, pensample in enumerate(cls.project.pendata):
            r = [
                i,
            ]
            r.extend(pensample.tolist())
            r.extend((convertSampleStateValue(pensample['state']),
                      getSeriesForSample(i), getPressedRunForSample(i),
                      getStrokeForSample(i), getStrokeTypeForSample(i)))
            yield r
示例#7
0
    def datarows(cls):
        # make segment dictionary
        segs = {}
        for level_num, segment_list in cls.project.segmenttree.getLeveledSegments(
        ).items():
            for segment in segment_list:
                segpath = cls.segpathsep.join(
                    [u'{}'.format(sp) for sp in segment.path])
                segs[segment.id] = (level_num, segpath, segment.name)

        # Iterate through the pen data array, yielding each pen sample
        # as a list.
        getSeriesForSample = cls.project.getSeriesForSample
        getPressedRunForSample = cls.project.getPressedRunForSample
        getStrokeForSample = cls.project.getStrokeForSample
        getStrokeTypeForSample = cls.project.getStrokeTypeForSample

        vcparser_dat = cls.project.vc_parser_dat
        prev_series_id = 0
        series_sample_index = -1
        for i, pensample in enumerate(cls.project.pendata):
            r = [
                i,
            ]
            r.extend(pensample.tolist())

            series_id = getSeriesForSample(i)
            series_parser_dat = None

            if series_id > 0 and vcparser_dat:
                series_parser_dat = vcparser_dat.get(series_id - 1)

            if series_id == 0:
                prev_series_id = 0
                series_sample_index = -1

            if series_id != prev_series_id:
                series_sample_index = 0
                prev_series_id = series_id
            else:
                series_sample_index += 1

            x_fc10 = cls.missingval
            y_fc10 = cls.missingval
            x_fc5 = cls.missingval
            y_fc5 = cls.missingval
            vxy_fc10 = cls.missingval
            vxy_fc5 = cls.missingval
            vxy_fc10_extrema = cls.missingval
            vxy_fc5_extrema = cls.missingval
            vxy_fc10_minima_dalpha = cls.missingval
            vxy_fc10_minima_pre = cls.missingval
            vxy_fc10_minima_post = cls.missingval

            if series_parser_dat:
                x_fc10 = series_parser_dat['x.fc10'][series_sample_index]
                y_fc10 = series_parser_dat['y.fc10'][series_sample_index]
                x_fc5 = series_parser_dat['x.fc5'][series_sample_index]
                y_fc5 = series_parser_dat['y.fc5'][series_sample_index]
                vxy_fc10 = series_parser_dat['vxy.fc10'][series_sample_index]
                vxy_fc5 = series_parser_dat['vxy.fc5'][series_sample_index]
                vxy_fc10_extrema = series_parser_dat['vxy.fc10.extrema'][
                    series_sample_index]
                vxy_fc5_extrema = series_parser_dat['vxy.fc5.extrema'][
                    series_sample_index]
                vxy_fc10_minima_dalpha = series_parser_dat[
                    'vxy.fc10.minima.dalpha'][series_sample_index]
                vxy_fc10_minima_pre = series_parser_dat['vxy.fc10.minima.pre'][
                    series_sample_index]
                vxy_fc10_minima_post = series_parser_dat[
                    'vxy.fc10.minima.post'][series_sample_index]

            r.extend((convertSampleStateValue(pensample['state']), series_id,
                      getPressedRunForSample(i), x_fc10, y_fc10, x_fc5, y_fc5,
                      vxy_fc10, vxy_fc5, vxy_fc10_extrema, vxy_fc5_extrema,
                      vxy_fc10_minima_dalpha, series_sample_index,
                      vxy_fc10_minima_pre, vxy_fc10_minima_post,
                      getStrokeForSample(i), getStrokeTypeForSample(i),
                      segs.get(pensample['segment_id'], ('', '', ''))[0],
                      segs.get(pensample['segment_id'], ('', '', ''))[1],
                      segs.get(pensample['segment_id'], ('', '', ''))[2]))
            yield r