Morelia.Stream package

Subpackages

Submodules

Morelia.Stream.data_flow module

Stream data from multiple devices to multiple destinations. In technical terms, this module is used to create bipartite dataflow graphs from devices to data sinks.

class Morelia.Stream.data_flow.DataFlow(network)

Bases: object

Class that use multiprocessing to efficiently collect data from many devices at once.

Parameters:
  • network (list[tuple[AcquisitionDevice, list[SinkInterface]]]) – A mapping of data sources (POD devices) to one or more data sinks.

  • filter_method – Method to use to clean curropted data. Defaults to TAKE_PAST.

  • filter_insert_value – Value to insert when using the INSERT filter method. Defaults to NaN.

  • fail_tolerance – How many times in a row to fail reading before giving up on reading a β€œchunk” of data (β€œchunk” here is approximately 1 second of samples). Defaults to 3.

collect()

Collect until stop_collection is called.

Return type:

None

collect_for_seconds(duration_sec)

Collect data for duration_sec seconds.

Parameters:

duration_sec (float) – How long to collect data for in seconds.

Return type:

None

stop_collection()

Stop collecting data.

Return type:

None

Morelia.Stream.source module

Functions for getting streaming data from a POD device using ReactiveX (RxPy).

Morelia.Stream.source.get_data(duration, manual_stop_event, pod, sinks)

Streams data from the POD device. The data drops about every 1 second. Streaming will continue until a β€œstop streaming” packet is recieved.

Parameters:
  • duration (float) – How long to stream data for.

  • manual_stop_event (Event) – Used to synchronize multiple get_data operations in a flowgraph. When a flowgraph is told to stop collecting, this event is set which stops the loop within the reactivex operator that is collecting data.

  • pod (AcquisitionDevice) – The device to collect data from.

Return type:

None

Morelia.Stream.source.get_data_wrapper(duration_sec, manual_stop_event, source_class, source_dict, sinks_list)
Morelia.Stream.source.make_packet_putter(read_queue)

Module contents