处理从仪表化自行车收集的数据。

BicycleDataProcessor的Python项目详细描述


说明

这个程序是用来处理从davis收集的原始数据信号的 仪表化自行车数据采集系统(即 BicycleDAQ)。有关系统和实验的详细信息,请参见[Moore2012]

许可证

BSD 2-Clause License,请参阅LICENSE.txt

引文

如果您使用这些数据,我们恳请您引用我们的工作,或者 [Moore2012]、软件doi和/或其他相关引用。

安装

为了便于设置,我们建议设置一个conda环境:

$ conda create -n bdp numpy scipy matplotlib "pytables<3.0" pyyaml
$ source activate bdp

其余依赖项需要与pip一起安装:

(bdp)$ pip install "uncertainties>2.0.0" "DynamicistToolKit>=0.3.4"
(bdp)$ pip install "yeadon>=1.1.1" "BicycleParameters>=0.2.0"

最后,这个包:

(bdp)$ pip install BicycleDataProcessor

用法

加载预构建的数据库文件

开始使用数据的最简单方法是下载数据库文件 发件人:

$ wget http://files.figshare.com/1710608/instrumented_bicycle_raw_data_h5.tar.bz2
$ tar -jxvf instrumented_bicycle_raw_data_h5.tar.bz2

以及自行车参数数据:

$ wget http://files.figshare.com/1710525/bicycle_parameters.tar.gz
$ tar -zxvf bicycle_parameters.tar.gz
$ rm bicycle_parameters.tar.gz

在工作目录中,创建一个bdp-defaults.cfg并更改 pathToDatabasepathToParameters指向下载的 解压缩的数据库文件和bicycle-parameters数据目录, 分别是。参考example-bdp-defaults.cfg。这个文件 遵循标准的python配置文件格式。

与数据交互

打开python命令提示符并导入模块:

>>> import bicycledataprocessor as bdp

首先加载数据库:

>>> dataset = bdp.DataSet()

现在加载运行:

>>> run = bdp.Run('00105', dataset)

检查以确保数据正确地进行了时间同步:

>>> run.verify_time_sync()

出现的图表显示了 两个加速计。这些信号用于同步NI USB-2008和 vn-100数据。如果这些不匹配,则同步算法 无法工作,数据可能无法使用。

运行有很多与之相关的数据。首先,您可以打印 元数据:

>>> print(run)

完整的元数据存储在字典中:

>>> run.metadata

每个传感器的原始数据存储在字典中,可通过以下方式访问:

>>> run.rawSignals

可通过以下方式访问每个具有校准刻度的传感器的数据:

>>> run.calibratedSignals

基于时间同步的截断后每个传感器的数据可以 使用:

>>> run.truncatedSignals

每个计算信号的数据也存储在字典中:

>>> run.computedSignals

每个任务信号的数据也存储在字典中:

>>> run.taskSignals

可以绘制taskSignals

>>> run.taskSignals.keys() # see a list of options
>>> run.plot('SteerAngle', 'RollAngle', 'PullForce')

将计算出的信号导出为mat文件,其中:

>>> run.export('mat')

从原始数据构建hdf5文件

第二种选择是使用 BicycleDAQ。BicycleDaq将试验和校准的原始数据存储为 MatlabMat文件。然后使用此模块创建数据库并用 数据。

原始试用数据可以下载如下:

$ wget -O raw-trial-data.zip http://downloads.figshare.com/article/public/1164632
$ unzip -d raw-trial-data raw-trial-data.zip
$ rm raw-trial-data.zip

原始校准文件:

$ wget -O raw-calibration-data.zip http://downloads.figshare.com/article/public/1164630
$ unzip -d raw-calibration-data raw-calibration-data.zip
$ rm raw-calibration-data.zip

以及其他损坏的试用文件:

$ wget -O data-corruption.csv http://files.figshare.com/1696860/data_corruption.csv

确保bdp-defaults.cfg路径指向 运行mat文件(pathToRunMat),校准mat文件 (pathToCalibMat),损坏的数据文件(data-corruption.csv)。 可选地,路径可以设置为DataSet()的参数。

现在在当前目录(或路径)中创建一个空数据库文件 在bdp-defaults.cfg中指定(如果您已经这样做了)。:

$ python
>>> import bicycledataprocessor as bdp
>>> dataset = bdp.DataSet()
>>> dataset.create_database()

现在,用数据填充数据库。

>>> dataset.fill_all_tables()

填充数据库需要一点时间。

警告

  • 在早期的某些情况下,不能保证对辊角进行校准 展馆运行。应谨慎使用。
  • 与卢克和查理合作的第一组展馆大多是腐败的, 当心。runTable中的损坏列指定运行的是 腐败的。
  • 偏航角和横向偏差值取决于偏航积分 速度。这似乎适用于信号以零为中心的运行,但是 可能对其他人是错误的。(有计划为所有运行修复此问题。)

授权信息

这部分材料是基于国家科学基金会的工作 基金会批准号:0928339。任何意见、发现和结论或 本材料中的建议是作者的建议,而不是 必然反映国家科学基金会的观点。

参考文献

[Moore2012](1, 2) Moore, J. K. Human Control of a Bicycle. University of California, Davis. 2012.

发行说明

0.1.0

  • 初始PYPI发布。

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

推荐PyPI第三方库


热门话题
Javalog4j2。xml和log4j2test。eclipse中的xml   java映像未显示在surfaceview中   在Java中,能否在for之后立即放置if?   java调用构造函数的不同方式是什么?   java为什么不将其视为多重继承,而所有类都首先从对象类扩展,然后再扩展其他类   带有ms access的java不显示数据库结果   java Eclipse命令行URL参数切断https   java Android JNI回调似乎调用了一个随机方法   java Apache Camel处理XMLFile中声明的编码   java Bonita BPM不要等待Bonita的函数结束   布尔Java:构建逻辑表达式,然后验证它们   java在不使用QueryString的情况下将变量从一个网站页面传递到另一个网站页面   java ORA01861:文本与格式字符串不匹配   java字节[]字符串到C中的字符串#   java试图通过socket发送sqlite数据库文件   java如何使用命令行更改属性文件中的浏览器值以运行selenium测试用例