Example #1
0
    def request_window_stream(self, window_spec=None, nullmarker_stride_ms=1000, no_overlap=True):

        # load windower spec file
        if window_spec is None:
            window_definitions = WindowFactory.default_windower_spec()
            no_overlap = True
            self.logger.info("Using default windower spec %s" % window_definitions)
        else:
            windower_spec_file = open(window_spec, 'r')
            window_definitions = \
                WindowFactory.window_definitions_from_yaml(windower_spec_file)
            windower_spec_file.close()
            self.logger.info(str("Finished loading windower spec file from %s" % window_spec))

        if nullmarker_stride_ms != window_definitions[0].endoffsetms:
            warnings.warn("defined nullmarker stride (%d) is different from "
                          "endoffset (%d) in window-definitions[0]!" %
                          (nullmarker_stride_ms, window_definitions[0].endoffsetms))

        eeg_client = self.setup_client()

        # create windower
        self.marker_windower = MarkerWindower(eeg_client,
                                              window_definitions,
                                              nullmarker_stride_ms=nullmarker_stride_ms,
                                              no_overlap = no_overlap)
        self.logger.info( "Created windower instance")

        # return an iterator over the yielded windows
        window_stream = ((sample, label) for (sample, label) in self.marker_windower)
        self.logger.info( "Created window-stream")

        return window_stream
Example #2
0
    def request_window_stream(self, window_spec=None, nullmarker_stride_ms=1000, no_overlap=True):

        # load windower spec file
        if window_spec is None:
            window_definitions = WindowFactory.default_windower_spec()
            no_overlap = True
            self.logger.info("Using default windower spec %s" % window_definitions)
        else:
            windower_spec_file = open(window_spec, 'r')
            window_definitions = \
                WindowFactory.window_definitions_from_yaml(windower_spec_file)
            windower_spec_file.close()
            self.logger.info(str("Finished loading windower spec file from %s" % window_spec))

        if nullmarker_stride_ms != window_definitions[0].endoffsetms:
            warnings.warn("defined nullmarker stride (%d) is different from "
                          "endoffset (%d) in window-definitions[0]!" %
                          (nullmarker_stride_ms, window_definitions[0].endoffsetms))

        eeg_client = self.setup_client()

        # create windower
        self.marker_windower = MarkerWindower(eeg_client,
                                              window_definitions,
                                              nullmarker_stride_ms=nullmarker_stride_ms,
                                              no_overlap = no_overlap)
        self.logger.info( "Created windower instance")

        # return an iterator over the yielded windows
        window_stream = ((sample, label) for (sample, label) in self.marker_windower)
        self.logger.info( "Created window-stream")

        return window_stream
Example #3
0
    def __init__(self, windower_spec_file=None, local_window_conf=False,
                 nullmarker_stride_ms=1000, no_overlap=False,
                 continuous=False,
                 data_consistency_check=False, **kwargs):

        super(Stream2TimeSeriesSourceNode, self).__init__(**kwargs)

        assert not(nullmarker_stride_ms is None and windower_spec_file is None),\
            "No segmentation parameters specified!"
        if windower_spec_file is None:
            no_overlap = True
            continuous = True
            wdefs = WindowFactory.default_windower_spec(
                endoffsetms=nullmarker_stride_ms)
        else:
            wdefs = Windower._load_window_spec(windower_spec_file,
                                               local_window_conf)

        self.set_permanent_attributes(
            window_definition=wdefs,
            nullmarker_stride_ms=nullmarker_stride_ms,
            no_overlap=no_overlap,
            data_consistency_check=data_consistency_check,
            dataset=None,
            continuous=continuous)
    def __init__(self,
                 windower_spec_file=None,
                 local_window_conf=False,
                 nullmarker_stride_ms=1000,
                 no_overlap=False,
                 continuous=False,
                 data_consistency_check=False,
                 **kwargs):

        super(Stream2TimeSeriesSourceNode, self).__init__(**kwargs)

        assert not(nullmarker_stride_ms is None and windower_spec_file is None),\
            "No segmentation parameters specified!"
        if windower_spec_file is None:
            no_overlap = True
            continuous = True
            wdefs = WindowFactory.default_windower_spec(
                endoffsetms=nullmarker_stride_ms)
        else:
            wdefs = Windower._load_window_spec(windower_spec_file,
                                               local_window_conf)

        self.set_permanent_attributes(
            window_definition=wdefs,
            nullmarker_stride_ms=nullmarker_stride_ms,
            no_overlap=no_overlap,
            data_consistency_check=data_consistency_check,
            dataset=None,
            continuous=continuous)
Example #5
0
    def test_window_definitions_from_yaml(self):
        simpleYAMLInput = \
"""
skip_ranges : 
         - {start : 0, end: 15000}
window_defs :
     s16: 
         classname : A
         markername : "S 16"
         startoffsetms : -1400
         endoffsetms : -120
         jitter : 0
         excludedefs : []
     null: 
         classname : B
         markername : "null"
         startoffsetms : -1280
         endoffsetms : 0
         jitter : 0
         excludedefs : [all]
exclude_defs: 
      all:
        markernames : ["S  1", "S  2", "S  8", "S 16", "S 24", "S 32"]
        preexcludems : 2000
        postexcludems : 2000
"""

        windows = WindowFactory.window_definitions_from_yaml(simpleYAMLInput)
        self.assert_(
            len(windows) == 2
            and isinstance(windows[0], windower.LabeledWindowDef)
            and isinstance(windows[1], windower.LabeledWindowDef))
        self.assert_(
            set([windows[0].classname, windows[1].classname]) == set(
                ['A', 'B']))
        self.assert_(
            set([windows[0].markername, windows[1].markername]) == set(
                ['S 16', 'null']))
        self.assert_(
            set([windows[0].startoffsetms, windows[1].startoffsetms]) == set(
                [-1400, -1280]))
        self.assert_(
            set([windows[0].endoffsetms, windows[1].endoffsetms]) == set(
                [-120, 0]))
        self.assert_(windows[0].skipfirstms == 15000)
        self.assert_(windows[0].excludedefs == []
                     or windows[1].excludedefs == [])
        window = windows[0] if windows[0].excludedefs != [] else windows[1]
        self.assert_(
            len(window.excludedefs) == 6
            and isinstance(window.excludedefs[0], windower.ExcludeDef))
        self.assert_(window.excludedefs[0].preexcludems == 2000)
        self.assert_(window.excludedefs[0].postexcludems == 2000)
    def test_window_definitions_from_yaml(self):
        simpleYAMLInput = \
"""
skip_ranges : 
         - {start : 0, end: 15000}
window_defs :
     s16: 
         classname : A
         markername : "S 16"
         startoffsetms : -1400
         endoffsetms : -120
         jitter : 0
         excludedefs : []
     null: 
         classname : B
         markername : "null"
         startoffsetms : -1280
         endoffsetms : 0
         jitter : 0
         excludedefs : [all]
exclude_defs: 
      all:
        markernames : ["S  1", "S  2", "S  8", "S 16", "S 24", "S 32"]
        preexcludems : 2000
        postexcludems : 2000
""" 

        windows = WindowFactory.window_definitions_from_yaml(simpleYAMLInput)
        self.assert_(len(windows) == 2 
                     and isinstance(windows[0], windower.LabeledWindowDef)
                     and isinstance(windows[1], windower.LabeledWindowDef))
        self.assert_(set([windows[0].classname, windows[1].classname])
                      == set(['A', 'B']))
        self.assert_(set([windows[0].markername, windows[1].markername])
                      == set(['S 16', 'null']))
        self.assert_(set([windows[0].startoffsetms, windows[1].startoffsetms]) 
                      == set([-1400, -1280]))
        self.assert_(set([windows[0].endoffsetms, windows[1].endoffsetms])
                      == set([-120, 0]))
        self.assert_(windows[0].skipfirstms == 15000)
        self.assert_(windows[0].excludedefs == [] or windows[1].excludedefs == [])
        window = windows[0] if windows[0].excludedefs != [] else windows[1]
        self.assert_(len(window.excludedefs) == 6
                     and isinstance(window.excludedefs[0],windower.ExcludeDef))
        self.assert_(window.excludedefs[0].preexcludems == 2000)           
        self.assert_(window.excludedefs[0].postexcludems == 2000)
Example #7
0
    def request_window_stream(self,
                              window_spec,
                              nullmarker_stride_ms=1000,
                              no_overlap=False):
        # function to connect a client to a running
        # remote streaming server or local process
        if self.ip is None:
            self.ip = "127.0.0.1"  # for the local mode

        if self.port is None:
            # without a port we cannot do anything
            raise Exception, "Port for stream reception is not set!"

        # connect and start client
        eeg_client = eeg_stream.EEGClient(host=self.ip, port=self.port)
        eeg_client.connect()
        self.logger.info("Started EEG-Client")
        self.eeg_client.append(eeg_client)

        # load windower spec file
        windower_spec_file = open(window_spec, 'r')
        window_definitions = \
            WindowFactory.window_definitions_from_yaml(windower_spec_file)
        windower_spec_file.close()
        self.logger.info("Finished loading windower spec file")
        self.logger.info(window_definitions)

        # create windower
        self.marker_windower = MarkerWindower(
            eeg_client,
            window_definitions,
            nullmarker_stride_ms=nullmarker_stride_ms,
            no_overlap=no_overlap)
        self.logger.info("Created windower instance")

        # return an iterator over the yielded windows
        window_stream = ((sample, label)
                         for (sample, label) in self.marker_windower)
        self.logger.info("Created window-stream")

        return window_stream
    def request_window_stream(self, window_spec, nullmarker_stride_ms = 1000, no_overlap = False):
        # function to connect a client to a running
        # remote streaming server or local process
        if self.ip is None:
            self.ip = "127.0.0.1" # for the local mode

        if self.port is None:
            # without a port we cannot do anything
            raise Exception, "Port for stream reception is not set!"

        # connect and start client
        eeg_client = eeg_stream.EEGClient(host=self.ip,
                                               port=self.port)
        eeg_client.connect()
        self.logger.info( "Started EEG-Client")
        self.eeg_client.append(eeg_client)

        # load windower spec file
        windower_spec_file = open(window_spec, 'r')
        window_definitions = \
            WindowFactory.window_definitions_from_yaml(windower_spec_file)
        windower_spec_file.close()
        self.logger.info( "Finished loading windower spec file")
        self.logger.info(window_definitions)

        # create windower
        self.marker_windower = MarkerWindower(eeg_client,
                                              window_definitions,
                                              nullmarker_stride_ms=nullmarker_stride_ms,
                                              no_overlap = no_overlap)
        self.logger.info( "Created windower instance")

        # return an iterator over the yielded windows
        window_stream = ((sample, label) for (sample, label) in self.marker_windower)
        self.logger.info( "Created window-stream")

        return window_stream