Skip to main content

二进制时间序列存储格式,其中时间轴通过表达式给出。

项目描述

二进制时间序列

二进制时间序列存储格式,其中时间轴通过表达式给出。

范围

这是一种非常简单的二进制文件格式规范,用于以高效可写和可读格式存储规则间隔的单通道测量数据序列。t_i基本假设是一系列测量的时间轴N可以根据数组索引动态计算:

for (int i=0; i<N; i++) {
	t_i = t_0 + i * Delta_t;
}

其中t_0是第一个样本的(参考)时间戳,Delta_t是采样间隔。

数据值y_i存储为原始值y_i_raw,可选择带有偏移量scalingOffset 和比例因子scalingFactor

for (int i=0; i<N; i++) {
	if (hasScaling) {
		y_i = y_i_raw;
	} else {
		y_i = scalingOffset + y_i_raw * scalingFactor;
	}
}

此文件格式中可以存储的最大样本数受 (signed)int类型的最大值限制,即

Integer.MAX_VALUE == 2^31 - 1 == 2_147_483_647 \approx 2.1e9

这对应于 的总持续时间T_max = (2^31-1) * Delta_t

在原始double值 as的情况下y_i_raw,可能出现的相应最大文件大小为

(64 + Double.BYTES * 2_147_483_647) == (64+8*(2^31-1)) \approx 16 GB

其中 64 个字节为文件头信息保留。

假设 ADC 以 频率 采样f = 1 MHz。则采样间隔为Delta_t = 1/f = 1 µs ,该文件格式可存储在一个文件中的最大时间序列长度为T_max \approx 2147 s

*.bts此文件格式的推荐文件扩展名为B inary Time Series 。

快速子集读取

这种文件格式的主要目标是允许轻松快速地读取整个时间序列数据的子集。具有等间距的时间轴允许计算给定时间间隔内的数据索引并使用第 2 节中的定义。3 的文档(见下文),可以计算文件中的偏移量以寻找文件中的计算位置并从那里仅读取所需的数据。

文档

此文件格式的规范在此存储库中以 PDF 格式提供: 二进制时间序列文件格式规范

本规范的 LaTeX 源代码和编译后的 PDF 也嵌入(作为资源)在jarMaven Central 上的 Java 实现中。

执行

此存储库中提供了使用 aByteBuffer作为文件抽象层的这种文件格式的 Java 实现。

最新版本在 Maven Central 上可用:

<dependency>
	<groupId>de.labathome</groupId>
	<artifactId>BinaryTimeseries</artifactId>
	<version>1.0.4</version>
</dependency>

PyPI上提供了此文件格式的(当前只读)Python 实现:

pip install BinaryTimeseries

用途

以下示例文件中给出了如何使用这些类的起点:

src/main/java/examples/Examples.java

BinaryTimeseries/Examples.py

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

BinaryTimeseries-1.0.4.tar.gz (8.8 kB 查看哈希

已上传 source

内置分布

BinaryTimeseries-1.0.4-py3-none-any.whl (13.4 kB 查看哈希

已上传 py3