【问题标题】:scanning plot through a large data file using python使用python扫描大型数据文件
【发布时间】:2017-05-17 12:42:10
【问题描述】:

我有一个 16 位整数数据的大型 (10-100GB) 数据文件,它代表来自数据采集设备的时间序列。我想写一段python代码来扫描它,绘制一个几秒钟的数据的移动窗口。理想情况下,我希望它尽可能连续。

数据以 4MHz 采样,因此要绘制几秒钟的数据需要在图表上绘制约 1000 万个数据点。不幸的是,我不能真正降低采样,因为我想看到的特征在文件中是稀疏的。

matplotlib 并非真正设计用于执行此操作。这在技术上是可行的,而且我有一个半工作的 matplotlib 解决方案,它允许我绘制任何特定的时间窗口,但是连续扫描增量变化的数据太慢太麻烦——重绘图形需要几秒钟,这是太长了。

任何人都可以建议一个 python 包或方法来做这件事吗?

【问题讨论】:

    标签: python-2.7 matplotlib plot


    【解决方案1】:

    PyQtGraph 比 Matplotlib 快,但我不知道它是否可以每秒绘制 1000 万个点。它还包括多种对数据进行下采样的方法,因此其中一种可能对您仍然有用。请注意,它需要 Qt 和 PyQt。

    不过,您仍有 5e9 和 5e10 之间的数据样本。如果你可以同时绘制 其中1000万,这仍然意味着要制作500到5000块地块。你真的要目视检查它们吗?您可能会考虑实现某种特征检测。

    【讨论】:

    • 哦,有很多特征检测可供我使用,但我想在应用更复杂的算法之前快速扫描数据,看看它是否有用。在这里,下采样并不是一个真正的选择(可能能够逃脱 3 倍左右)。
    【解决方案2】:

    在类似问题(时变热图)中对我有用的方法是运行批处理作业,在夜间生成数千个这样的图,并将每个图保存为单独的图像。 10s一个数字,10h可以生产3600个。然后,您可以简单地浏览可以为您提供所需洞察力的图像。

    【讨论】:

    • 不幸的是,我需要对我的应用程序进行准实时处理(主要是快速扫描文件以帮助设置更详细的分析)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 2021-08-11
    相关资源
    最近更新 更多