我如何告诉python我的数据结构(二进制)是什么样子,以便我可以绘制它?

琼斯

我有一个看起来像这样的数据集。

b'\xa3\x95\x80\x80YFMT\x00BBnNZ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00Type,Length,Name,Format,Columns\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x95\x80\x81\x17PARMNf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00Name,Value\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x95\x80\x82-GPS\x00BIHBcLLeeEefI\x00\x00\x00Status,TimeMS,Week,NSats,HDop,Lat,Lng,RelAlt,Alt,Spd,GCrs,VZ,T\x00\x00\xa3\x95\x80\x83\x1fIMU\x00Iffffff\x00\x00\x00\x00\x00\x00\x00\x00\x00TimeMS,GyrX,GyrY,G

我一直在阅读以尝试找到如何在python中实现代码,该代码将使我能够解析此数据,以便可以相互绘制某些列(通常是时间)。

我发现一些可以帮助您做到这一点的事情:

有一个代码可以让我将这些数据转换为CSV文件。我知道如何使用代码并将其转换为CSV文件并从那里绘图,但是为了获得学习经验,我希望能够做到这一点而无需将其转换为CSV文件。现在,我尝试阅读该代码,但由于对Python非常陌生,所以我一无所知。这是代码的链接:

https://github.com/PX4/Firmware/blob/master/Tools/sdlog2/sdlog2_dump.py

另外,有人发布这句话说这可能是日志格式,但是我又无法理解或运行该页面上的任何代码。

http://dev.px4.io/advanced-ulog-file-format.html
汤姆·约翰逊

解析二进制数据的一个很好的起点是struct模块https://docs.python.org/3/library/struct.html及其unpack功能。这就是您链接到的CSV转储例程的功能。如果您遍历该process方法,它将执行以下操作:

  • 读取大块二进制数据
  • 找出它是否具有有效的标题
  • 检查消息类型-如果它是FORMAT消息,则对此进行解析。如果是描述消息,请对此进行解析。
  • 转储CSV行

您可以修改此代码,从本质上用将__printCSVRow数据捕获到pandas数据框(或其他方便的数据结构)中方法替换该方法,以便在完成主例程后,您可以从数据框中获取所有数据并进行绘制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

找不到“ yo”二进制文件。确保已安装它并在$ PATH中。你能告诉我问题是什么吗?

有人可以告诉我一个好的依赖矩阵是什么样子并指定原因吗?

如何获得点子告诉我为什么它不匹配PyPI二进制轮子?

当通过 ssh 检索二进制文件时,是什么导致 \r's 被插入到 \n's 之前,我该如何规避它?

如果二进制数据是“ 4字节单一格式”,那是什么意思,我该如何在JavaScript中读取它?

我可以提取调试时可以检查的二进制数据吗?

我知道它只是到“ openvt”二进制文件的链接,如何禁用“ open”命令?

我的文件夹中的.rnd二进制文件是什么?

为什么我的补丁以二进制格式发布?

分类到二进制 - 我做错了什么?

二进制堆数据结构-应用

我可以调用什么工具/二进制文件来确定nVIDIA GPU的计算能力?

我可以使用什么程序将文本转换为二进制数字?

我可以在C ++中使用istream读取二进制数据吗?

我可以直接通过HTTP发送二进制数据吗?

我可以执行驻留在数据段(ELF二进制)中的代码吗?

我如何获得lshal二进制文件?

二进制系统,我如何计算

Python 3,我可以判断以二进制模式打开的文件是否包含文本吗?

我在哪里可以获得 Python 3.4 或 3.5 的 Windows 二进制安装?

我如何从数据库中检索以二进制格式存储的图像

你能帮我理解python中打包的二进制数据吗

如果我遵循 MVC 并通过 RealmSwift 持久化数据,那么 Swift 模型类会是什么样子?

当二进制文件运行时,它是否立即将其整个二进制数据复制到内存中?我可以改变吗?

为什么VS告诉我将方法的十进制数更改为十六进制或二进制

我如何在 python 循环中进行二进制选择

我在哪里可以找到我的项目的 Rust 测试二进制文件?

如何使用 redis-plus-plus 存储二进制数据,就像我想存储结构一样?@for_stack?

我的“ / bin”文件夹中的“ [”二进制文件是什么?(MacOS Big Sur M1芯片)