Quel est le format binaire des ROI ENVI (Classic)?

11

Je suis pythoniste dans un bureau plein d'utilisateurs d'ENVI / IDL. J'ai créé quelques outils pour aider à combler le fossé, mais un gros obstacle est les fichiers ENVI Classic .roi, que mes collègues utilisent beaucoup.

Je peux facilement importer des ROI ENVI 5 en Python, car le format texte est facile à analyser. Cependant, je n'ai pas un bon sens pour le format binaire des fichiers ENVI Classic .roi, qui constituent la majeure partie de l'échange de données dans mon groupe. Quelqu'un a-t-il un code qui lit ou écrit ces fichiers, ou une idée de la façon dont on pourrait s'y prendre?

C'est un peu fastidieux de lancer ENVI 5 chaque fois que je veux faire des allers-retours - je préfère résoudre le problème à la source si possible.

Daven Quinn
la source

Réponses:

1

Je ne suis pas un expert en python, mais cela devrait être relativement facile à faire si vous écrivez déjà des scripts qui peuvent analyser, lire et écrire des fichiers ASCII standardisés.

Selon Harris Geospatial Solutions, le développeur actuel d'ENVI, les fichiers d'images binaires ENVI (décrits ici) devrait se composer du fichier binaire et d'un fichier d'en-tête ASCII (défini avec l'exemple ici) . Pour lire un fichier image ENVI, vous devrez analyser l'en-tête ASCII et accéder au type de données (entier, flottant, signé / non signé, etc.), au nombre de bandes, à l'entrelacement (bande séquentielle, bande entrelacée par bande) pixel ou bande entrelacée par ligne ), l'ordre des octets et toute autre information pertinente sur les données. Examinez de près la description du format de fichier d'en-tête et l'exemple lié ci-dessus.

Maintenant que vous savez quels morceaux du binaire lire à la fois, dans quel ordre ils sont et à quelles bandes ils appartiennent, vous êtes prêt à lire les données d'image .

Lance
la source
Les ROI ENVI sont-ils stockés sous forme de fichiers image? Je suppose qu'ils ont "la même taille spatiale que leurs rasters parents" selon Harris Geospatial , mais dans l'interface utilisateur, les demi-pixels (coupés en diagonale) sont sélectionnés lors du glissement pour créer un retour sur investissement, il semble donc que cela devrait être un format vectoriel quelconque, sauf s'il existe une sorte d'indicateur de trame à deux bits (pour spécifier la direction du triangle). Quoi qu'il en soit, je vais essayer comme vous le suggérez et voir jusqu'où j'arrive!
Daven Quinn
Je pense que les "fichiers d'images binaires ENVI" sont une paire de fichiers, un sans extension et un avec l'extension ".hdr". Mais, les fichiers .roi semblent être dans un format binaire différent? Soit dit en passant, si tout ce que vous voulez faire est de charger le fichier .hdr, utilisez ce paquet python: spectralpython.net
MD004
Non, je suis vraiment à la recherche d'une solution pour lire / écrire directement les ROI, pas seulement les en-têtes, qui peuvent être lus avec par exemple GDAL selon le format ...
Daven Quinn