To implement the features of the existing Raw-Visualization and provide improved performance, Qt respectively PyQt was the backend-solution we pursued from the start. The Graphics View Framework from Qt provides the foundation for the required plotting-functionalities. Originally I thought I could read into the documentation of Qt alone and start with an (only) PyQt-based prototype from scratch. This turned out to be a big challenge, because there were various hurdles to overcome as how to setup the View, how to handle multiple Plot-Lines or how to setup axes. Thus on the second day I decided, in consultation with my mentors, to focus on the pyqtgraph-prototype which was planned to be setup during the second week for comparison. This turned out to be great, because by reading pyqtgraph's documentation and it's source-code I learned by example how a plotting-implementation in PyQt could be realized. The modularity of pyqtgraph and its well written code contributed significantly to my learning process (thanks and cudos @developers of pyqtgraph). I even got quickly to a point where the pyqtgraph-prototype could foreshadow to some extent how the final implementation may look like. So this week my work will also by focused on further improving this prototype to set the groundwork for the final backend.
Dear Python/MNE-Community, I am Martin Schulz (marsipu) from Heidelberg (Germany) and I am a 6th year student of medicine. When starting my thesis about pinprick-evoked pain (MEG/EEG) three years ago, I got first in touch with MNE-Python & Programming and benefited a lot from it since. Starting to contribute was an exciting “looking behind the curtain”-experience and therefore I am enthusiastic about the perspective of using this summer for full-time contribution.
My project is about providing an additional backend for the visualization of Raw-data. It is supposed to offer higher performance (e.g. regarding scrolling & scaling) and thus shall facilitate the analysis-step of signal inspection.
1. What did you do this week?
During the Community-Bonding-Period I met with my mentors and started to learn more about the current RawBrowser-Implementation by working on related issues (#9412, #9414, #9419, #9444). I also started reading into the documentation of some of the possible backend-alternatives (PyQt, pyqtgraph) and created my gsoc-repository where prototypes and progress will be hosted.
2. What is coming up next?
This first week of coding will be all about expanding the existing (only)pyqt-based prototype to be comparable to the other possible backends (pyqtgraph, vtk). In the course of that I will also probably start to refactor the prototypes to make their comparision in a future benchmark-utility easier.
3. Did you get stuck anywhere?
Learning about how Qt handles custom plots took (and still takes) me longer than expected and some problems of #9419 posed a challenge, but with the help of the other contributors/mentors those could be overcome.