首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取具有qt型压缩的BLOB?

如何读取具有qt型压缩的BLOB?
EN

Stack Overflow用户
提问于 2019-05-21 17:48:24
回答 2查看 408关注 0票数 1

我有一个文件(确切地说是100 k文件),其中包含天气雷达的数据--一个文件是一个雷达图像。这是来自几个雷达的数据拼接,创造了一张全国反射率的地图。这些文件有扩展名.cmax,我需要把它们转换成更有用的东西(例如。用于进一步使用的反射率阵列。

我问过数据提供者如何读取这些文件。他们的答复是:

我们系统中的标准产品格式(.cmax)是向我们提供软件的公司的内部格式。它由xml和二进制部分组成。它可以通过读取字节流来读取。首先,将初始字节解析为xml,然后将其余字节(BLOB)处理为使用"qt“方法压缩的二进制数据。您需要使用支持这种压缩模式的库来解压缩它们。一般来说,您必须工作一点,但是它可以在几乎任何编程语言中完成。

主要问题是数据的二进制部分。我尝试用zlib (googling qt压缩出来)解压缩它,并在C++中读取二进制数据。他们都不起作用。在我看来,在Qt中尝试以二进制方式读取这些数据也是不合理的。

该文件以以下行开头:

代码语言:javascript
运行
复制
<product version="5.44.5" datetime="2017-01-01T18:00:00" datatype="dBZ" type="cmax" name="CMAX" owner="">
   <data time="18:00:00" date="2017-01-01">

然后是雷达规格和图像细节(有源雷达、最小反射率和最大反射率等)。XML部分以以下内容结尾:

代码语言:javascript
运行
复制
</product>
<!-- END XML -->
<BLOB blobid="0" size="79617" compression="qt">(here are lots of binary data)</BLOB>

我在找一种方法(工具?)来转换二进制数据。例如,它可以是提到的库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-13 07:23:30

看看细节,这很可能是莱昂纳多(Selex/Gematronic)的Rainbow5格式。zlib是用于解压缩的右库。但它也有一些窍门。python读取器在wradlib库(https://github.com/wradlib)中实现。也许你可以从这段代码中适应。免责声明:我是wradlib的开发者之一。

票数 1
EN

Stack Overflow用户

发布于 2019-05-21 21:12:56

您是否尝试简单地使用qUncompress()函数?https://doc.qt.io/qt-5/qbytearray.html#qUncompress

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56243843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档