时间序列同步和重采样库。

syncing的Python项目详细描述


什么是同步?

syncing是同步和重新采样时间的有用库 系列。

synchronization基于fourier变换 re sampling使用特定的插值方法执行。

安装

要安装它,请使用(具有根用户权限):

$ pip install syncing

或者下载最后一个git版本并使用(具有根权限):

$ python setup.py install

安装附加组件

已启用一些附加功能安装以下 附加服务:

  • cli:启用命令行界面。
  • 打印:允许打印模型流程及其工作流。
  • dev:安装所有库和开发库。

要安装同步和所有附加功能(开发库除外),请执行以下操作:

$ pip install syncing[all]
同步实验室数据

此示例演示如何同步两个数据集obddyno (它们分别是车辆的车载诊断和 底盘测功机)带有参考信号ref。为了达到这个目的我们 使用模型同步模型可视化模型:

>>> from syncing.model import dsp
>>> model = dsp.register()
>>> model.plot(view=False)
SiteMap(...)

[graph]

提示:你可以点击它来浏览图表。

首先,我们综合生成数据集以 型号:

>>> import numpy as np
>>> data_sets = {}
>>> time = np.arange(0, 150, .1)
>>> velocity = (1 + np.sin(time / 10)) * 60
>>> data_sets['ref'] = dict(
...     time=time,                                               # [10 Hz]
...     velocity=velocity / 3.6                                  # [m/s]
... )
>>> data_sets['obd'] = dict(
...     time=time[::10] + 12,                                    # 1 Hz
...     velocity=velocity[::10] + np.random.normal(0, 5, 150),   # [km/h]
...     engine_rpm=np.maximum(
...         np.random.normal(velocity[::10] * 3 + 600, 5), 800
...     )                                                        # [RPM]
... )
>>> data_sets['dyno'] = dict(
...     time=time + 6.66,                                        # 10 Hz
...     velocity=velocity + np.random.normal(0, 1, 1500)         # [km/h]
... )

要同步数据集并打印工作流:

>>> from syncing.model import dsp
>>> sol = dsp(dict(
...     data=data_sets, x_label='time', y_label='velocity',
...     reference_name='ref', interpolation_method='cubic'
... ))
>>> sol.plot(view=False)
SiteMap(...)

[graph]

最后,我们可以分析时间偏移和同步 重新采样的数据集:

>>> import pandas as pd
>>> import schedula as sh
>>> pd.DataFrame(sol['shifts'], index=[0])  # doctest: +SKIP
     obd  dyno
...
>>> df = pd.DataFrame(dict(sh.stack_nested_keys(sol['resampled'])))
>>> df.columns = df.columns.map('/'.join)
>>> df['ref/velocity'] *= 3.6
>>> ax = df.set_index('ref/time').plot(secondary_y='obd/engine_rpm')
>>> ax.set_ylabel('[km/h]'); ax.right_ax.set_ylabel('[RPM]')
Text(...)

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

推荐PyPI第三方库


热门话题
实现接口方法时不允许java@Override   使用BuffereImage加载映像时java高ram使用率   java For循环混乱,为什么不是循环?   java Android网格视图字符串对齐问题   java如何将方法与比较类型的附加功能进行比较?   在Java Swing中放置JSepator后的间隙大小   java如何避免并发访问我的网站中的支付链接   java如何从现有的Unix服务器连接到FTP服务器?   Spring中的java用户相关bean定义   带有scribesjava库的wordpress Woocommerce REST API返回消费者密钥参数缺失错误消息   java我可以自动检测特定设备连接的串行端口吗?   Javafx棋盘游戏   java使用JTextPane显示HTML,支持SVG吗?   SpringBoot如何在java中将映射转换为实体对象?   如何使用java代码对xls文件进行密码保护   Java JPA(EclipseLink)如何在持久化实际实体之前接收下一个生成的值?   Javaservlet启动外部进程