biolab / orange3

🍊 :bar_chart: :bulb: Orange: Interactive data analysis
https://orangedatamining.com
Other
4.81k stars 1k forks source link

Question: Orange appropriate for "real time" data analysis from analog Arduino pins through USB port? #1833

Closed ghost closed 7 years ago

ghost commented 7 years ago

question

Goal For students to have a visual tool for the purpuse of classifiying human signals (EMG, ECG ect.) aka algorithm design testing on a data stream.

Background

hh-controlsoftware-calibrate

Would Orange work for my case described above or would it be too slow to use in "real time"? I know I could import and export data, but for rapid testing I would prefer to do in on a data stream.

@kernc @janezd

kernc commented 7 years ago

I assume, if you introduce a new data structure adapted for work with streams of time series data, e.g. a deque or a collection of deques, it might work. The reading widget would construct a deque object and append readings to it. It would pass this deque through a signal to your other filtering/visualization widgets. For best (or reasonable) performance, I suppose it shouldn't re-send the signal on each reading appended, but instead the other widgets just update themselves according to the refresh rate you (the user) specify, and since all widgets are working on the exact same object, they see the new data as it is appended. However, the widget that sends the signal to learners for training / prediction will need to construct a Table and re-send it via signal on each update as there are currently no sufficient streaming mechanisms in place to allow otherwise.

ghost commented 7 years ago

How much would be the biggest refresh rate?

Thank you for the reply.

kernc commented 7 years ago

How much would be the biggest refresh rate?

If you mean for the first part which is signal recording into a custom deque object and visualization, as described above, then Orange will add no overhead and the limit is that of the hardware/Python/stack/implementation.

If you mean altogether, including constructing a Table object to send to Predictions widget, the "refresh rate" should depend mostly upon the size of the data, but should definitely be much lower.

What minimum refresh rate would you expect and what use cases do you envision?

ajdapretnar commented 7 years ago

@mcevzar Did you manage to implement this? We'd love to hear about the results! :)