我在现场有很多传感器可以测量水压。过去,这些传感器的高度已经改变了很多次,导致时间序列发生跳跃。由于这些时间序列是连续的,并且我有一个手动测量,所以从技术上来说,我应该能够消除跳跃(手动这很容易,但是测量太多,所以我需要在 python 中完成)。
我尝试过使用中值滤波器消除跳跃,但这并没有真正起作用。
我的代码:
# filter out noise in signal (peaks)
minimumPeak = 0.03 # filter peaks larger than 0.03m
filtered_value = np.array(im.median_filter(data['value'], 5))
noise = np.array((filtered_value-data['value']).abs() > minimumPeak)
data.loc[noise, 'value'] = filtered_value[noise]
Run Code Online (Sandbox Code Playgroud)
数据是包含两列的 pandas 数据框:“日期时间”和“值”。
我也尝试过手动执行此操作,并使其在简单的情况下工作,但在其他情况下效果不佳。知道如何过滤掉跳跃吗?
下图显示了一个示例(黄色表示跳跃,红色表示手动测量(很可能该测量不是像本示例中那样在开始时进行))