2

这是表示磁场数据的图像,在y=0轴附近,数据会发生应有的变化。 在此处输入图像描述

然而,有明显的事件发生,其中不同的数据转换为容易脱颖而出的振荡。这些超过 101 个点的大而一致的尖峰(对于所有尖峰都是一致的)称为校准卷。我将数据通过统计例程删除任何统计异常值,并且这些非物理校准卷没有被删除。

这是从图像 1 放大的校准卷之一。 在此处输入图像描述

不幸的是,这些振荡的最大值和最小值并不一致,这意味着它们在某个值附近变化。另外,可以看出这不是一个简短的数据集,因为我主要关注的点数延伸到大约 5000 万个数据点。 除了手动绘制所有这些并通过每个校准卷来记录每个校准卷的开始和结束以手动取出它们之外,有没有办法通过快速遍历数据的例程有效地运行整个数据集,发现这些发生校准滚动,并用 NaN 替换该数据?我正在使用的数据结构是 pandasSeriesDataFrames.

这是我正在做的清理此卷的工作:

运行大小为 101 点的窗口,从零开始,逐点滑动。对于窗口的每张幻灯片,我都会计算平均值,如果平均值低于某个值,无论是好数据还是好数据和坏数据的混合都无法创建(只有校准卷可以产生),然后它用 NaN 替换该窗口中的值并继续。

我意识到它可能会取出一些好的数据,这并不理想;但是,我想看看是否有人会有更好的流程或遇到类似问题并有有效的方法来解决它。

编辑:

我实际上意识到我正在实现的代码效率非常低,除了没有带出卷的独特特征。我现在可以运行并且运行速度相对较快的代码是,当它运行一次整个时间序列时,它将值持有者与之前和之后的值持有者进行比较,创建一个 7 点模板。我拥有的比较语句非常复杂,但是,它被设计为与只有 2 步 if 语句一样快。用于消除滚动的独特特征是这些值在 y 轴上以数据点的独特分布进行镜像,这意味着每 2 个点是一个正值,接下来的 2 个点是前 2 个点的负值值,在下一组 4 个数据点之间有一个中间点。

如果我之前没有说过,数据是关于等离子材料中的磁场变化的,当然,它可以在正值和负值之间波动,但这会给我的移除程序带来一个小问题,但绝对不是从长远来看会影响我的目标。

4

0 回答 0