用于分析传感器采集的人体运动数据(如体力活动水平、步态动力学)的python包
sensormotion的Python项目详细描述
InstallationRequirementsUsageContributionGetting Help
传感器运动
用于分析传感器采集的人体运动数据的python包(例如 体力活动水平,步态动力学)。
专用加速计装置,如活动记录仪, 通常捆绑软件来分析传感器数据。在我的工作中 我经常从智能手机上收集传感器数据,但一直未能 找到任何可比的分析软件。
这个python包允许用户提取人体运动数据,比如 作为步态/行走动力学,直接来自加速度计信号。 此外,该软件包还允许计算 活动(PA)或中等强度的体力活动(MVPA)计数, 类似于actigraph等公司提供的活动计数数据。
安装
您可以使用pip:
pip install sensormotion
要求
这个包有以下依赖项,其中大多数是 python包:
- python 3.x
- 安装python的最简单方法是使用 Anaconda分布 还包括下面列出的其他依赖项
- Python2.x还没有经过测试,因此向后兼容性不是 保证
- numpy
- 包括水蟒。否则,请使用pip(pip install numpy)安装
- scipy
- 包括水蟒。否则,请使用pip(pip install scipy)安装
- matplotlib
- 包括水蟒。否则,请使用pip(pip install matplotlib)安装
使用量
下面是从raw中提取基于步骤的度量的简单示例 垂直加速度数据:
导入包:
importsensormotionassm
如果你有一个垂直加速度信号x,和它对应的 时间信号t,我们可以从使用低通滤波信号开始 过滤器:
b,a=sm.signal.build_filter(frequency=10,sample_rate=100,filter_type='low',filter_order=4)x_filtered=sm.signal.filter_signal(b,a,signal=x)
接下来,我们可以检测滤波信号中的峰值(或谷),它 为我们提供每次检测的时间和价值。我们可以选择 包括信号图和检测到的峰/谷:
peak_times,peak_values=sm.peak.find_peaks(time=t,signal=x_filtered,peak_type='valley',min_val=0.6,min_dist=30,plot=True)
从检测到的峰值,我们可以计算出阶跃指标,比如Cadence 步进时间:
cadence=sm.gait.cadence(time=t,peak_times=peak_times,time_units='ms')step_mean,step_sd,step_cov=sm.gait.step_time(peak_times=peak_times)
有关更深入的教程和更多工作流示例,请查看 在tutorial。
我也建议你看看 documentation看到其他 软件包的功能。