Что такое двоичный формат ENVI (Classic) ROI?

11

Я питонист в офисе, полном пользователей ENVI / IDL. Я создал несколько инструментов, чтобы помочь преодолеть разрыв, но один большой камень преткновения - это файлы ENVI Classic .roi, которые мои коллеги часто используют.

Я легко могу импортировать ROI ENVI 5 в Python, так как текстовый формат легко разбирается. Тем не менее, я не очень разбираюсь в двоичном формате файлов ENVI Classic .roi, которые составляют основную часть обмена данными в моей группе. Есть ли у кого-нибудь код, который читает или записывает эти файлы, или есть понимание того, как можно это сделать?

Несколько утомительно запускать ENVI 5 каждый раз, когда я хочу идти вперед и назад - я бы лучше решил проблему в источнике, если это возможно.

Давен Куинн
источник

Ответы:

1

Я не эксперт по Python, но это должно быть относительно легко сделать, если вы уже пишете сценарии, которые могут анализировать, читать и записывать стандартизированные файлы ASCII.

Согласно Harris Geospatial Solutions, текущий разработчик ENVI, файлы двоичных изображений ENVI (описанные здесь) должны состоять из двоичного файла и файла заголовка ASCII (определено с примером здесь) . Чтобы прочитать файл изображения ENVI, вам необходимо проанализировать заголовок ASCII и получить доступ к типу данных (целое число, число с плавающей запятой, со знаком / без знака и т. Д.), Количеству полос, чередованию (последовательная полоса, полосовая перемежаемость по пиксель, или Band-interleaved-by-line ), порядок байтов и любую другую соответствующую информацию данных. Внимательно посмотрите на описание формата файла заголовка и пример, связанный с выше.

Теперь, когда вы знаете, какие фрагменты двоичного файла читать одновременно, в каком порядке и в каких диапазонах они принадлежат, вы готовы читать данные изображения .

копье
источник
ROI ENVI хранятся в виде файлов изображений? Я предполагаю, что они имеют «тот же пространственный размер, что и их родительские растры» в соответствии с Harris Geospatial , но в пользовательском интерфейсе полупиксели (разделенные по диагонали) выбираются во время перетаскивания для создания области интереса, поэтому кажется, что это должно быть некоторый векторный формат, если только не существует какого-либо двухбитного растрового флага (для указания направления треугольника). В любом случае, я постараюсь, как вы предлагаете, и посмотрю, как далеко я доберусь!
Давен Куинн
Я думаю, что «файлы двоичных изображений ENVI» представляют собой пару файлов, один без расширения и один с расширением «.hdr». Но файлы .roi выглядят в другом двоичном формате? Кстати, если все, что вы хотите сделать, это загрузить файл .hdr, используйте этот пакет python: spectralpython.net
MD004
Нет, я определенно ищу решение для чтения / записи объектов ROI напрямую, а не только заголовков, которые можно прочитать, например, с помощью GDAL в зависимости от формата ...
Daven Quinn