¿Cuál es el formato binario de los ROI de ENVI (Classic)?

11

Soy Pythonist en una oficina llena de usuarios de ENVI / IDL. He creado algunas herramientas para ayudar a cerrar la brecha, pero un gran obstáculo son los archivos .roi ENVI Classic, que mis colegas usan mucho.

Puedo importar fácilmente el ROI de ENVI 5 en Python, ya que el formato basado en texto es fácil de analizar. Sin embargo, no tengo un buen sentido del formato binario de los archivos .roi de ENVI Classic, que constituyen la mayor parte del intercambio de datos en mi grupo. ¿Alguien tiene algún código que lea o escriba estos archivos, o alguna idea de cómo uno podría hacerlo?

Es algo tedioso encender ENVI 5 cada vez que quiero ir y venir, prefiero resolver el problema en la fuente si es posible.

Daven Quinn
fuente

Respuestas:

1

No soy un experto en python, pero esto debería ser relativamente fácil de hacer si ya está escribiendo scripts que pueden analizar, leer y escribir archivos ASCII estandarizados.

Según Harris Geospatial Solutions, el desarrollador actual de ENVI, los archivos de imagen binaria ENVI (descritos aquí) deben consistir en el archivo binario y un archivo de encabezado ASCII (definido con un ejemplo aquí) . Para leer un archivo de imagen ENVI, deberá analizar el encabezado ASCII y acceder al tipo de datos (entero, flotante, con signo / sin signo, etc.), número de bandas, el intercalado (secuencia de banda, intercalado por banda) píxel o Band-interleaved-by-line ), orden de bytes y cualquier otra información de datos pertinente. Eche un vistazo de cerca a la descripción del formato del archivo de encabezado y al ejemplo vinculado anteriormente.

Ahora que sabe qué partes del binario leer a la vez, en qué orden están y a qué bandas pertenecen, está listo para leer los datos de la imagen .

lanza
fuente
¿Los ROI de ENVI se almacenan como archivos de imagen? Supongo que tienen "el mismo tamaño espacial que sus rásteres primarios" según Harris Geospatial , pero en la interfaz de usuario, se seleccionan medio píxeles (diagonalmente divididos) durante el arrastre para crear un ROI, por lo que parece que esto debería ser un formato vectorial de algún tipo, a menos que haya algún tipo de bandera ráster de dos bits (para especificar la dirección del triángulo). De todos modos, lo intentaré como sugieres y veré hasta dónde llego.
Daven Quinn
Creo que los "archivos de imagen binarios ENVI" son un par de archivos, uno sin extensión y otro con la extensión ".hdr". Pero, ¿los archivos .roi parecen estar en un formato binario diferente? Por cierto, si todo lo que quiere hacer es cargar el archivo .hdr, use este paquete de python: spectralpython.net
MD004
No, definitivamente estoy buscando una solución para leer / escribir el ROI directamente, no solo los encabezados, que se pueden leer, por ejemplo, con GDAL según el formato ...
Daven Quinn