Jupyter notebooks and similar tools provide great new ways for analysing pre-recorded datasets in a fast and efficient way in a web browser. The next logical step is to attempt analysation in real-time, on data that is streamed live from a measurement to the browser!
In a nutshell, this project aims to prototype a kind of monitoring dashboard that bridges the data acquisition step with an otherwise separate analysis task in one go. Think of live oscillographs and histograms - updated in real-time - plus necessary user interfaces like buttons to create and organise measurements etc.
Interesting applications for this are educational experiments and simple data monitoring tasks.
As a data source we will use the Muon Hunter kits (www.muonhunter.com). They provide timestamps on a Raspberry Pi 3 for every muon that is detected. Three of these open source devices will be available. The GUI around the real-time plots shall take different measurement scenarios into account and guide the user through the individual steps like a wizard.
There's also an option to tinker with the hardware: trying larger GM tubes or playing with the trigger functionality that uses the Pi camera to take cloud chamber pictures.
A more general variant of this idea could target the visualisation of real-time sensor signals from an Arduino board.
The plan is to build it with Bokeh, an interactive visualisation python library, which can be nicely integrated into jupyter notebooks if needed and features many widgets, GUI elements and compatibility with common web browsers. The pandas python library is an interesting candidate to store the measurement data in a structured way.
Build a prototype that displays live histograms and calculations of muon rates in a web browser, served from a Raspberry Pi. Include GUI elements to trigger and organise individual measurements.
- Our results, a git repo and some docs live here: https://gitlab.cern.ch/MuonPlottr/MuonPlottr/wikis/home
- Python programming
- linux/UNIX environment know-how (e.g. Ubuntu, Debian, OS X terminal)
- optional: electronics, Raspberry Pi, Arduino
python (or electronics know-how, if focusing on hardware aspects)
Jupyter and Co. are already usable on a Raspberry Pi according to this project: https://github.com/kleinee/jns