MobGap-Plus: a pipeline from raw sensor data to mobility outcomes
Project Overview
A Python library called mobgap was designed to turn wearable sensor data into digital mobility outcomes such as walking bouts, cadence and stride length. However, getting data into it was the bottleneck for the research group. Each sensor recording took hours of manual export and left several times its own size in intermediate files. Calibration was worse. Built for wrist-worn devices, it quietly gave up on lower-back data and reported success.
This project built a new Python package, omcwa, which reads the .cwa format directly into NumPy arrays and mobgap-plus, which feeds those arrays into mobgap without intermediate files. A prototype web application runs the whole chain end to end.
What were the key results of your research project?
Two open-source Python packages, omcwa and mobgap-plus. Together they take a raw sensor recording straight into the analysis library, with no manual export and no intermediate files.
The manual stage is gone. What took hours of hand-driven export per recording, and left about 8 GB on disk, is now a single function call.
A quiet data quality problem is now loud.
GitHub Repository: https://github.com/uos-mobgap/omcwa
A presentation of this research will be shared here and on our YouTube site when available.
How do you feel you have benefitted from completing this internship and has it made you consider future career paths?
The main thing I take away is a realistic view of research software. Most of what I worked with was written by researchers solving their own problem, which is entirely reasonable, and it means the code does that one job and stops there. Seeing where those limits sit, and what they cost a team downstream, is not something I would have picked up from a course.
I also ended up working in a field I never expected to, on problems I did not expect to meet. I had not worked at the byte level before, or with C++, and a good part of the eight weeks went on reading twelve-year-old barely documented code closely enough to trust it. It was hard, and I enjoyed every bit of it.
It has made me take research software engineering seriously as a career. The part I found most satisfying was not getting something to work once, but leaving it in a state the next person can pick up: documentation, tests, a proper release, and the reasoning written down. I would like to keep doing that.
Download presentation slides