聚合来自传感器的时间序列

2024-03-21

我有大约 500 个传感器,每个传感器大约每分钟发出一次值。可以假设传感器的值保持恒定,直到发出下一个值,从而创建时间序列。传感器在发送数据时并不同步(因此观察时间戳会有所不同),但所有数据都是集中收集并按传感器存储(以允许按传感器子集进行过滤)。

如何生成一个聚合时间序列来给出传感器数据的总和? n (需要创建超过 1 天的观测集的时间序列 - 因此需要考虑每天 24x60x500 个观测值)。计算还需要快速,最好在

示例 - 原始输入:

q)n:10
q)tbl:([]time:n?.z.t;sensor:n?3;val:n?100.0)
q)select from tbl
time         sensor val
----------------------------    
01:43:58.525 0      33.32978
04:35:12.181 0      78.75249
04:35:31.388 0      1.898088    
02:31:11.594 1      16.63539
07:16:40.320 1      52.34027
00:49:55.557 2      45.47007
01:18:57.918 2      42.46532
02:37:14.070 2      91.98683
03:48:43.055 2      41.855
06:34:32.414 2      9.840246

我正在寻找的输出应该显示相同的时间戳以及传感器之间的总和。如果传感器没有在匹配时间戳处定义的记录,则应使用其先前的值(这些记录仅暗示传感器输出更改的时间)。

预期输出,按时间排序

time         aggregatedvalue
----------------------------    
00:49:55.557   45.47007  / 0 (sensor 0) + 0 (sensor 1) + 45.47007 (sensor 2)
01:18:57.918   42.46532  / 0 (sensor 0) + 0 (sensor 1) + 42.46532 (new value on sensor 2)
01:43:58.525   75.7951   / 33.32978 + 0 + 42.46532
02:31:11.594   92.43049  / 33.32978 + 16.63539 + 42.46532
02:37:14.070   141.952   / 33.32978 + 16.63539 + 91.98683
03:48:43.055   91.82017  / 33.32978 + 16.63539 + 41.855
04:35:12.181   137.24288 / 78.75249 + 16.63539 + 41.855
04:35:31.388   60.388478 / 1.898088 + 16.63539 + 41.855   
06:34:32.414   28.373724 / 1.898088 + 16.63539 + 9.840246 
07:16:40.320   64.078604 / 1.898088 + 52.34027 + 9.840246

我假设记录按时间顺序进入,因此 tbl 将按时间排序。如果不是这种情况,请先按时间对表进行排序。

d 是传感器每次的最后价格的字典。下面的解决方案可能不是最优雅的,我可以想象有一种更高效的方法可用,不需要每个。

q)d:(`long$())!`float$()
q)f:{d[x]::y;sum d} 
q)update agg:f'[sensor;val] from tbl
time         sensor val      agg     
-------------------------------------
00:34:28.887 2      53.47096 53.47096
01:05:42.696 2      40.66642 40.66642
01:26:21.548 1      41.1597  81.82612
01:53:10.321 1      51.70911 92.37553
03:42:39.320 1      17.80839 58.47481
05:15:26.418 2      51.59796 69.40635
05:47:49.777 0      30.17723 99.58358
11:32:19.305 0      39.27524 108.6816
11:37:56.091 0      71.11716 140.5235
12:09:18.458 1      78.5033  201.2184

您的 720k 记录数据集相对较小,因此任何聚合都应该远低于一秒。如果您存储多天的数据,您可能需要考虑概述的一些技术(展开、分区等)here http://code.kx.com/wiki/JB%3aKdbplusForMortals/contents .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

聚合来自传感器的时间序列 的相关文章

  • MySql查询时间间隔数据的直方图

    我有一个这种类型的事件输入 event user event start event end event type 插入到 MySql 表中 每个表都在自己的行中 以 user start 作为主键 我需要按时间间隔 例如分钟 查询类型的直
  • 将 Python Pandas 中的列名称从日期时间对象更改为字符串?

    下列的这个食谱 https stackoverflow com questions 28664103 how to transform a time series pandas dataframe using the index attri
  • 对相似的时间序列进行聚类?

    我有 10 20k 个不同的时间序列 24 维数据 一天中每个小时的一列 并且我对表现出大致相同活动模式的时间序列进行聚类感兴趣 我最初开始实施动态时间扭曲 DTW 是因为 并非我所有的时间序列都完全一致 出于我的目的 两个稍微偏移的时间序
  • 时间序列 - 相关性和滞后时间

    我正在研究一组输入变量和响应变量价格之间的相关性 这些都是按时间顺序排列的 1 我是否有必要平滑曲线其中输入变量是循环变量 自回归 如果是这样 怎么办 2 一旦建立相关性 我想准确量化输入变量如何影响响 应变量 例如 一旦 X 增加 gt
  • 每周数据的时间序列分解

    我对 R 完全陌生 刚刚开始使用它 我有三年的每周数据 我想将这个时间序列数据分解为趋势 季节性和其他组成部分 我有以下疑问 我应该使用哪个功能 ts or decompose 如何应对闰年的情况 如果我错了请指正 频率是52 提前致谢 我
  • Flutter - JSON 和时间序列图表

    我试图在时间序列图表中显示一些数据 我找到了一个例子 https google github io charts flutter example time series charts simple html https google git
  • “iddata”类型的输入参数未定义函数“minus”

    这是后续我之前遇到的一个问题 https stackoverflow com questions 45688607 我想给信号一个偏移量 然后在其中添加一些延迟并计算 RMSE 但是在求差时我遇到以下问题 我想请教以下问题 我该如何解决上述
  • 使用支持向量回归进行时间序列预测

    我一直在尝试使用Python语言中的支持向量回归来实现时间序列预测工具 我使用 scikit learn 中的 SVR 模块进行非线性支持向量回归 但我对未来事件的预测有严重的问题 回归线非常适合原始函数 根据已知数据 但一旦我想预测未来的
  • 使用 ARMAResult.predict() 函数的正确方法

    根据这个问题如何使用 statsmodels 和 Python 获得 AR 模型中的常数项 https stackoverflow com questions 24172454 how to get constant term in ar
  • R:index()或index.xts()改变了时间序列的Date值,为什么?

    我想从使用 getSymbols 获得的时间序列中提取日期 但是当我使用 index index xts 函数时 返回的日期似乎早了一天 我无法理解为什么下面的代码中会发生这种行为 然而 预期的行为是获取与原始时间序列中的日期对象相对应的日
  • 从 R 中的 Facet_wrap ggplot2 中删除一个级别/组

    我的 tbl df gt str p2p dt SKILL A Classes tbl dt tbl data table and data frame 693 obs of 35 variables Patch Factor w 7 le
  • R中不同时间序列数据值的互相关

    我有 5 个地点 15 天的时间序列数据 以日格式 存储为matrix 数据的结构是 meter daywise lt structure c 24 4745528484842 21 5936510486629 58 91208965401
  • 使用 ICA 消除 EEG 信号中的眨眼现象

    我是 scikit learn 的新手 但我正在尝试消除单个脑电图通道内的眨眼 噪声峰值 我在互联网上搜索过 但只看到了 MNE PyEEG 或其他 Python 模块的更复杂的读物 我只想要一些简单的东西并且只依赖于sklearn 这是我
  • 使用 ywunbiased 时,statsmodels.tsa.stattools 中的 PACF 函数给出的数字大于 1?

    我有一个长度为 177 的数据帧 我想计算并绘制部分自相关函数 PACF 我已导入数据等 我这样做 from statsmodels tsa stattools import pacf ys pacf data key array diff
  • python中的递归图

    我正在尝试按照我的要求对时间序列中的模式进行聚类 如何用python对音节类型进行聚类 https stackoverflow com questions 33393388 how to clustering syllable types
  • 不同长度的时间序列数据的聚类

    我有不同系列长度的时间序列数据 我想根据 DTW 距离进行聚类 但找不到与之相关的 ant 库 sklearn给出直接错误 而 tslearn kmeans 给出错误答案 我的问题是如果我用零填充它就可以解决 但我不确定这在聚类时填充时间序
  • 使用 Python Pandas 使用每日数据计算月平均值

    我有一个包含四列的文本文件 年 月 日和雪深 这是 1979 年至 2009 年 30 年期间的每日数据 我想使用 pandas 计算 360 个 30 年 X 12 个月 个人月平均值 即隔离 1979 年 1 月 1979 年 2 月
  • 时间序列距离度量

    为了对一组时间序列进行聚类 我正在寻找一个智能距离度量 我尝试过一些众所周知的指标 但没有一个适合我的情况 ex Let s assume that my cluster algorithm extracts this three cent
  • R:如何获取时间序列数据中日期时间列的最大值

    我正在研究时间序列数据 我有 2 个日期时间列和 1 个会计周列 我给出了一个例子 我遇到如下情况 我需要获取 EditDate 的最大值 EditDate lt c 2015 04 01 11 40 13 2015 04 03 02 54
  • 如何使用动态时间扭曲获得距离矩阵?

    我有 6 个时间序列值 如下所示 import numpy as np series np array 0 0 1 2 1 0 1 0 0 0 1 2 0 0 0 0 0 0 1 2 0 0 0 0 0 1 1 0 0 1 2 1 0 1

随机推荐