用于分析传感器采集的人体运动数据(如体力活动水平、步态动力学)的python包

sensormotion的Python项目详细描述


InstallationRequirementsUsageContributionGetting Help

传感器运动

PyPI - Python VersionPyPIGitHub issueshttps://readthedocs.org/projects/sensormotion/badge/?version=latesthttps://badges.gitter.im/gitterHQ/gitter.png

用于分析传感器采集的人体运动数据的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看到其他 软件包的功能。

贡献

我在业余时间根据需要为我的 研究项目。但是,请求错误修复和新功能 总是受欢迎的!

请参阅develop branch以获取 包的开发版本,并查看issues page以获取错误报告 以及功能请求。

获得帮助

您可以找到该包的完整文档 here

python的内置帮助函数将显示任何模块的文档 或函数:help(sm.gait.step_time)

我们鼓励您将问题、错误报告或功能请求作为 一个issue

或者,提问 Gitter

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java本机方法的源代码可用吗?   java如何使父方法抛出异常?   java Android以编程方式设置不同屏幕大小/密度的布局   java如何使用一个变量来管理所有客户端请求   java输入一个txt文件,每行有一组数字   json java从jsonobject获取jsonarray错误   java将一个(WAV)写入一个文件只会说一个单词(最后一个单词)   java Telnet忽略原始字节   proguard java。运行桌面应用程序时出现lang.VerifyError   java用左键移动JLabel?   java如何在jText区域验证选项卡?   文件服务器客户端Javasocket编程中的字符串搜索   java省略了JSTL中的最后一个逗号<c:out>   java如何找到if或else代码已执行的次数?   java JavaScript WebSocket send()方法未执行   浮点数声明上的java标识符预期错误   java这是指二进制搜索算法吗?   编译mod at:reobfJar java时的minecraft问题。util。拉链ZipException:重复条目   java检测特定的震动运动(如图所示:D)