Using orange, I would like to be able to do real time analysis or visualizations on streaming data. I would appreciate any input on the matter!
1 Answer
"Realtime" is a very big word, in many regards you would only call a system realtime when there is very little latency in a system, almost no latency. It would require specialized hardware and os, for a discussion of python and realtime see https://stackoverflow.com/questions/7079864/real-time-operating-via-python.
If you describe the requirement as "continously (or frequently) updated", it looks possible to me to do some mining on streamed data with orange. I am adding my 5 ct, as I have just started looking into orange.
You would need to create a widget that opens your input stream and propagates it in chunks to the subsequent widgets in the flow, i.e. when you want to build something like a "tail -f" on a file source, reads character by character until there is a linefeed in the stream. In that case it would release a signal with the line as data to the output.
Orange widgets are receiving their inputs as signals, "widgets receive inputs at runtime with the designated handler method (specified in the OWWidget.inputs class member)." This next widget would update on that signal and propagate on its own outputs. So the continued live analysis propagation of streaming data through orange widgets seems in general possible to me.
How close to or far from real time this would be depends on many factors like load, computing power, and memory. The choice of mining algorithms might also be limited by such factors.
-
$\begingroup$ Basically, Frankstr summed it up quite nicely. I would only add that, if you will start creating a widget for stream data, have a look at EnKlik Anketa and Google Sheets image in Prototypes add-on, which both implement data reload, which simulates streaming. $\endgroup$– vijolicaMay 9, 2018 at 11:09