我正在尝试分析来自数千个传感器的数据。它们都为我提供了如下数据:
Sensor 76, t0, [r0,...,rN]
Sensor 15, t1, [r0,...,rN]
...
Sensor N, tN, [r0,...,rN]
其中tN > ... > t1 > t0
(即按时间排序)和rX
只是固定间隔(1.6384 ms)的计数。出于所有实际目的,它们是具有计数与时间的直方图,其中t0, t1,...
是直方图的左边缘。
我遇到的问题是尝试将数据重新绑定到全局直方图中。这是为每个传感器创建计数与绝对时间直方图。这个新直方图的区间应该是2毫秒长。目前,我使用以下代码填充此全局直方图:
s0 = sensor.utc # left time edge of sensor count
s1 = sensor.utc + self.config.data_bin_size # right time edge of sensor count
t0 = self.config.absolute_time + array_index * self.config.time_sync_bin_size # left time edge of absolute bin
t1 = t0 + self.config.time_sync_bin_size # right time edge of absolute bin
ib = 0 # Index in original array
sensor_num = self.sensor_mapping[sensor.id]["sensor_number"]
while ib < len(sensor.scalers):
u0 = max(s0, t0)
u1 = min(s1, t1)
self.global_bins[array_index][1][DOM_num] += float(u1 - u0) / float(s1 - s0) * sensor.scalers[ib] # putting things into the global histogram
if u1 == t1:
array_index += 1
t0 = t1
t1 += self.config.time_sync_bin_size
if u1 == s1:
ib += 1
s0 = s1
s1 += self.config.data_bin_size
这看起来像是一个非常笨拙的人。我重复循环某些数组索引,因为它们在绝对时间段之间分开。有没有人知道如何改善这个?
由于