Qual é o formato binário das ROIs do ENVI (Classic)?

11

Sou um Pythonist em um escritório cheio de usuários ENVI / IDL. Criei algumas ferramentas para ajudar a preencher essa lacuna, mas um grande obstáculo são os arquivos .roi do ENVI Classic, que meus colegas usam muito.

Posso importar facilmente os ROIs do ENVI 5 para o Python, pois o formato baseado em texto é fácil de analisar. No entanto, não tenho bom senso para o formato binário dos arquivos .roi do ENVI Classic, que compõem a maior parte do intercâmbio de dados no meu grupo. Alguém tem algum código que lê ou grava esses arquivos, ou alguma idéia de como alguém pode fazer isso?

É um pouco tedioso iniciar o ENVI 5 toda vez que eu quero ir e voltar - prefiro resolver o problema na fonte, se possível.

Daven Quinn
fonte

Respostas:

1

Não sou especialista em python, mas isso deve ser relativamente fácil de fazer se você já estiver escrevendo scripts que podem analisar, ler e gravar arquivos ASCII padronizados.

De acordo com a Harris Geospatial Solutions, o atual desenvolvedor dos arquivos de imagem binária ENVI , ENVI (descritos aqui) deve consistir no arquivo binário e em um arquivo de cabeçalho ASCII (definido com o exemplo aqui) . Para ler um arquivo de imagem ENVI, você precisará analisar o cabeçalho ASCII e acessar o tipo de dados (número inteiro, flutuante, assinado / não assinado etc.), número de bandas, o intercalar (Band Sequential, Band intercaled-by- pixel ou banda intercalada por linha ), ordem de bytes e outras informações de dados pertinentes. Dê uma olhada na descrição do formato do arquivo de cabeçalho e no exemplo vinculado acima.

Agora que você sabe quais blocos do binário devem ler por vez, em que ordem eles estão e a quais bandas eles pertencem, você está pronto para ler os dados da imagem .

Lança
fonte
As ROIs do ENVI são armazenadas como arquivos de imagem? Eu acho que eles têm "o mesmo tamanho espacial que seus rasters pai", de acordo com a Harris Geospatial , mas na interface do usuário, meio pixels (diagonalmente bissetados) são selecionados durante o arrasto para criar um ROI, então parece que isso deveria ser um algum tipo de formato vetorial, a menos que exista algum tipo de sinalizador de varredura de dois bits (para especificar a direção do triângulo). Enfim, vou tentar como você sugere e ver até onde chego!
Daven Quinn
Eu acho que os "arquivos de imagem binária ENVI" são um par de arquivos, um sem extensão e outro com a extensão ".hdr". Mas, os arquivos .roi parecem estar em um formato binário diferente? A propósito, se tudo o que você deseja fazer é carregar o arquivo .hdr, use este pacote python: spectralpython.net
MD004
Não, eu estou olhando definitivamente para uma solução para ler / escrever os ROIs diretamente, não apenas os cabeçalhos, que podem ser lidos com, por exemplo GDAL, dependendo do formato ...
Daven Quinn