Это мой первый раз, когда я работаю с бинарными файлами, прямо так голыми со мной.интерпретация двоичных данных в Python
Я использую Python 2.7
Я пытаюсь использовать большой двоичный файл, который определяет широту/долготу каждого пикселя изображения.
Используя этот код: open('input', 'rb').read(50)
файл выглядит следующим образом: \x80\x0c\x00\x00\x00\x06\x00\x00.\x18\xca\xe4.\x18\xcc\xe4.\x18\xcf\xe4.\x18\xd1\xe4.\x18\xd3\xe4.\x18\xd5\xe4.\x18\xd7\xe4.\x18\xd9\xe4/\x18\xdb\xe4/\x18\xdd\xe4/\x18
...
Считывание меня файл содержит следующую информацию для декодирования, но я не уверен в том, как их применять :
Файлы находятся в порядке байт LSBF. Файлы начинаются с 2 4-байтовых целочисленных значений, что дает размер файла и пикселя и строки (x, y). После того, как файлы имеют следующие пары элементов, это 2-байтовые целочисленные значения широты и долготы, умноженные на 100 и усеченные (например, 75.324 E - «-7532»).
Спасибо за любую помощь.
Обратите внимание, причина в том, что это в конечном итоге было бы нарисовать/изменить изображение на основе lat/long, а не на пиксель #, если кто-то задавался вопросом.
Вы можете преобразовать это в массив NumPy. Это было бы удобно? Кстати, вы используете Python 2 или Python 3? –
Двумя основными инструментами для этого в python являются модуль ['struct'] (https://docs.python.org/2/library/struct.html) и [' numpy.fromfile'] (http: // docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.fromfile.html). Учитывая большой блок данных, numpy, вероятно, будет самым простым и быстрым. [Здесь] (http://stackoverflow.com/questions/14245094/how-to-read-part-of-binary-file-with-numpy) пример. Я предлагаю вам попробовать его и задать конкретный вопрос, если у вас есть проблемы с ним. – tom10
Извините, отредактировал, используя Python 2.7. – MattS