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
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)