obci.analysis.obci_signal_processing.signal package¶
Submodules¶
obci.analysis.obci_signal_processing.signal.data_asci_write_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.data_asci_write_proxy.
DataAsciWriteProxy
(p_file_path, p_unpack_later=False, p_append_ts=False, p_sample_type='FLOAT')[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.data_generic_write_proxy.DataGenericWriteProxy
Open p_file_name file in p_dir_path directory.
obci.analysis.obci_signal_processing.signal.data_buffered_write_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.data_buffered_write_proxy.
DataBufferedWriteProxy
(p_file_path, p_unpack_later=False, p_append_ts=False, p_sample_type='FLOAT')[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.data_generic_write_proxy.DataGenericWriteProxy
Open p_file_name file in p_dir_path directory.
obci.analysis.obci_signal_processing.signal.data_generic_write_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.data_generic_write_proxy.
DataGenericWriteProxy
(p_file_path, p_unpack_later=False, p_append_ts=False, p_sample_type='FLOAT')[source]¶ Bases:
object
A class representing data file. It should be an abstraction for saving raw data into a file. Decision whether save signal to one or few separate files should be made here and should be transparent regarding below interface - the interface should remain untouched. Public interface: - finish_saving() - closes data file and return its path, - data_received(p_data_sample) - gets and saves next sample of signal
Open p_file_name file in p_dir_path directory.
obci.analysis.obci_signal_processing.signal.data_raw_write_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.data_raw_write_proxy.
DataRawWriteProxy
(p_file_path, p_unpack_later=False, p_append_ts=False, p_sample_type='FLOAT')[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.data_generic_write_proxy.DataGenericWriteProxy
Open p_file_name file in p_dir_path directory.
obci.analysis.obci_signal_processing.signal.data_read_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.data_read_proxy.
DataReadProxy
(p_file_path, sample_type='FLOAT')[source]¶ Bases:
object
-
get_next_value
()[source]¶ Return next value from data file (as python float). Close data file and raise NoNextValue exception if eof.
-
get_next_values
(p_num)[source]¶ Return next p_num values from data file (as numpy array). Close data file and raise NoNextValue exception if eof.
-
obci.analysis.obci_signal_processing.signal.data_simple_write_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.data_simple_write_proxy.
DataSimpleWriteProxy
(p_file_path, p_unpack_later=False, p_append_ts=False, p_sample_type='FLOAT')[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.data_generic_write_proxy.DataGenericWriteProxy
Open p_file_name file in p_dir_path directory.
obci.analysis.obci_signal_processing.signal.data_write_proxy module¶
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy module¶
-
class
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.
GenericInfoFileReadProxy
(p_file_path)[source]¶ Bases:
object
Info file reader.
...
-
class
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.
GenericInfoFileWriteProxy
(p_file_path)[source]¶ Bases:
object
A class that is responsible for implementing logics of openbci signal parameters storage in info file. The file is supposed to be compatible with signalml2.0. By now it isn`t:) The class should be separated from all multiplexer-stuff logics. InfoFileProxy represents a process of saving one signal parameters. Init method gets a dictionary of signal params in format understadable by InfoFileProxy. See __init__ metod for more details. Wanna extend info file with a new param? See __init__ method for more details. Public interface: - finish_saving()
Init xml structure.
-
finish_saving
(p_signal_params={})[source]¶ Write xml_doc to the file, return the file`s path. Arguments: - p_file_name - a name of to-be-created info file - p_dir_path - a dir-path where p_file_name is to be created - p_signal_params - a dictionary of all signal parameters that should be stored in info file.
What is the logics flow of analysing parameters? p_signal_params has keys representing signal parameters identificators. self._create_tags_controls creates a dictionary with the same keys, values are functions being ‘able’ to understand particular param values. Method self._process_signal_params, for every key in p_signal_params fires corresponding function from self._tags_control, giving as argument value from p_signal_params...
So, how can I implement a new parameter usage? Let`s say that the parameter is signal`s colour. Let`s call it ‘color’, values are strings. p_signal_params should contain a pair ‘color’ -> ‘color_value’. 1. Create function self._set_color(self, p_color) 2. Add pair ‘color’ -> self._set_color to self._tags_control in self._create_tags_control() 3. Implement the function so that it creates xml element for color parameter and appends it to self._xml_root. For simple params (with one value) you can fire self._set_simple_tag(‘color’, ‘color_value’).
-
-
class
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.
OpenBciDocument
[source]¶ Bases:
xml.dom.minidom.Document
,object
Abstract class for future developement, used in proxies.
-
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.
TAGS_DEFINITIONS
= {'number_of_samples': ('simple', ['sampleCount']), 'page_size': ('simple', ['pageSize']), 'calibration': ('simple', ['calibration']), 'number_of_channels': ('simple', ['channelCount']), 'channels_names': ('list', ['channelLabels', 'label']), 'file': ('simple', ['sourceFileName']), 'channels_numbers': ('list', ['channelNumbers', 'number']), 'blocks_per_page': ('simple', ['blocksPerPage']), 'channels_gains': ('list', ['calibrationGain', 'calibrationParam']), 'export_date': ('simple', ['exportDate']), 'first_sample_timestamp': ('simple', ['firstSampleTimestamp']), 'sampling_frequency': ('simple', ['samplingFrequency']), 'byte_order': ('simple', ['byteOrder']), 'sample_type': ('simple', ['sampleType']), 'channels_offsets': ('list', ['calibrationOffset', 'calibrationParam']), 'export_file_name': ('simple', ['exportFileName']), 'file_format': ('list', ['sourceFileFormat', 'rawSignalInfo'])}¶ **For every tag we have entry in format* –* –
- ‘tag_universal_name’: (tag_type(‘list’ or ‘simple’),
- list of tag translations (one element for ‘simple’
- two elements for ‘list’)
)
obci.analysis.obci_signal_processing.signal.info_file_proxy module¶
Module implements specific info file manifest for svarog.
What is different from info_file_proxy:
- root name (here we haver rs:rawSignal and xmlns)
- tags namespace (here every tag has rs: previx)
- tags ordering (svarog requires specific tags ordering)
- additional tags (svarog requires only and only tags described in SvarogFileWriteProxy.ORDER)
-
class
obci.analysis.obci_signal_processing.signal.info_file_proxy.
InfoDocument
[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.OpenBciDocument
Subclass xml_document, so that we can add rs: prefix before every tag name.
-
prefix
= 'rs:'¶
-
-
class
obci.analysis.obci_signal_processing.signal.info_file_proxy.
InfoFileReadProxy
(p_file_path)[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.GenericInfoFileReadProxy
Sublassed read proxy - every get_ method need to be subclassed to add rs: prefix before tag name.
...
-
class
obci.analysis.obci_signal_processing.signal.info_file_proxy.
InfoFileWriteProxy
(p_file_path)[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.generic_info_file_proxy.GenericInfoFileWriteProxy
Subclass write proxy - ensure that every element has rs: prefix, ensure tags ordering, ensure tags required by svarog.
Init xml structure.
-
ORDER
= ['rs:exportFileName', 'rs:sourceFileName', 'rs:sourceFileFormat', 'rs:samplingFrequency', 'rs:channelCount', 'rs:sampleCount', 'rs:calibration', 'rs:sampleType', 'rs:byteOrder', 'rs:pageSize', 'rs:blocksPerPage', 'rs:channelLabels', 'rs:calibrationGain', 'rs:calibrationOffset', 'rs:firstSampleTimestamp']¶
-
obci.analysis.obci_signal_processing.signal.read_data_source module¶
-
class
obci.analysis.obci_signal_processing.signal.read_data_source.
DataSource
[source]¶ Bases:
object
-
class
obci.analysis.obci_signal_processing.signal.read_data_source.
FileDataSource
(p_file, p_num_of_channels, p_sample_type='FLOAT')[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.read_data_source.DataSource
-
class
obci.analysis.obci_signal_processing.signal.read_data_source.
MemoryDataSource
(p_data=None, p_copy=True, p_sample_source='FLOAT')[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.read_data_source.DataSource
-
get_samples
(p_from=None, p_len=None)[source]¶ Always success. If p_from or p_len is somehow out of range return an empty array of samples
-
obci.analysis.obci_signal_processing.signal.read_info_source module¶
-
class
obci.analysis.obci_signal_processing.signal.read_info_source.
FileInfoSource
(p_file)[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.read_info_source.InfoSource
-
class
obci.analysis.obci_signal_processing.signal.read_info_source.
InfoSource
[source]¶ Bases:
object
-
class
obci.analysis.obci_signal_processing.signal.read_info_source.
MemoryInfoSource
(p_params={})[source]¶ Bases:
obci.analysis.obci_signal_processing.signal.read_info_source.InfoSource
obci.analysis.obci_signal_processing.signal.signal_constants module¶
obci.analysis.obci_signal_processing.signal.signal_exceptions module¶
-
exception
obci.analysis.obci_signal_processing.signal.signal_exceptions.
BadSampleFormat
[source]¶ Bases:
Exception
An exception that should be raised when data sample has arrived and it is not float (struct is unable to pack it).
-
exception
obci.analysis.obci_signal_processing.signal.signal_exceptions.
NoNextTag
[source]¶ Bases:
Exception
Raised when end of tag file is met in self.get_next_tag().
obci.analysis.obci_signal_processing.signal.signal_logging module¶
Module defines a single method get_logger that returns logger with set logging level. Change loggin.INFO lines to change logging level.