Как читать BLOB-объекты со сжатием qt-типа? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть файл (около 100 тыс. Файлов, если быть точным), содержащий данные метеорологических радаров - один файл представляет собой одно радиолокационное изображение. Это мозаика данных с нескольких радаров, создающая карту отражательной способности всей страны. Файлы имеют расширение .cmax, и мне нужно преобразовать их во что-то более полезное (например, массив отражений) для дальнейшего использования.

Я спросил у провайдера данных, как читать эти файлы. Они ответили:

Стандартный формат продукта в нашей системе (.cmax) является внутренним форматом компании, которая предоставляет нам программное обеспечение. Он состоит из XML и двоичной части. Это может быть прочитано чтением как поток байтов. Во-первых, проанализируйте начальные байты как xml, затем обработайте остальные (BLOB) как двоичные данные, сжатые методом "qt". Вы должны распаковать их, используя библиотеку, которая поддерживает этот режим сжатия. В общем, вам нужно немного поработать, но это можно сделать практически на любом языке программирования.

Основная проблема связана с двоичной частью данных. Я попытался распаковать его с помощью zlib (googling qt сжатие получается) и чтения в виде двоичных данных в C ++. Никто из них не работал. Мне также не кажется разумным пытаться читать эти данные как двоичные в Qt.

Файл начинается с этих строк:

<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 заканчивается на:

</product>
<!-- END XML -->
<BLOB blobid="0" size="79617" compression="qt">(here are lots of binary data)</BLOB>

Я ищу способ (инструмент?) Для преобразования этих двоичных данных. Например, это может быть упомянутая библиотека.

1 Ответ

0 голосов
/ 22 мая 2019

Вы пытались просто использовать функцию qUncompress ()?https://doc.qt.io/qt-5/qbytearray.html#qUncompress

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...