繁体   English   中英

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

[英]How do I tell python what my data structure (that is in binary) looks like so I can plot it?

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

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数据框(或其他方便的数据结构)中的方法,以便在完成主例程后,您可以从数据框中获取所有数据并进行绘制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM