Jaki jest format binarny ROI ENVI (Classic)?

11

Jestem Pythonistą w biurze pełnym użytkowników ENVI / IDL. Stworzyłem narzędzia, które pomagają wypełnić lukę, ale jedną wielką przeszkodą są pliki .roi ENVI Classic, z których często korzystają moi koledzy.

Mogę łatwo importować ROI ENVI 5 do Pythona, ponieważ format tekstowy jest łatwy do analizy. Nie mam jednak dobrego rozumienia binarnego formatu plików .roi ENVI Classic, które stanowią większość wymiany danych w mojej grupie. Czy ktoś ma kod, który czyta lub zapisuje te pliki, lub ma jakiś wgląd w to, jak można to zrobić?

Rozruch ENVI 5 jest nieco uciążliwy za każdym razem, gdy chcę iść do przodu i do tyłu - wolę rozwiązać problem u źródła, jeśli to możliwe.

Daven Quinn
źródło

Odpowiedzi:

1

Nie jestem ekspertem od Pythona, ale powinno to być stosunkowo łatwe, jeśli już piszesz skrypty, które potrafią parsować, odczytywać i zapisywać znormalizowane pliki ASCII.

Według Harris Geospatial Solutions obecny twórca plików binarnych ENVI, ENVI (opisanych tutaj) powinien składać się z pliku binarnego i pliku nagłówkowego ASCII (zdefiniowanego tutaj przykładem) . Aby odczytać plik obrazu ENVI, musisz przeanalizować nagłówek ASCII i uzyskać dostęp do typu danych (liczba całkowita, liczba zmiennoprzecinkowa, podpisany / niepodpisany itp.), Liczba pasm, przeplot (Band Sequential, Band-interleaved-by- piksel lub pasmo przeplatane po linii ), kolejność bajtów i wszelkie inne istotne informacje o danych. Przyjrzyj się opisowi formatu pliku nagłówka i przykładowi, do którego link znajduje się powyżej.

Teraz, gdy już wiesz, jakie fragmenty pliku binarnego czytamy na raz, w jakiej kolejności są i do jakich pasm należą, możesz odczytywać dane obrazu .

Lanca
źródło
Czy ROI ENVI są przechowywane jako pliki obrazów? Sądzę, że mają one „taki sam rozmiar przestrzenny jak ich macierzyste rastry” według Harrisa Geospatial , ale w interfejsie użytkownika podczas przeciągania wybiera się półpiksele (po przekątnej na pół), więc wygląda na to, że musiałby to być jakiegoś formatu wektorowego, chyba że istnieje jakaś dwubitowa flaga rastrowa (w celu określenia kierunku trójkąta). W każdym razie spróbuję, jak sugerujesz, i zobaczę, jak daleko się posuwam!
Daven Quinn
Myślę, że „binarne pliki obrazów ENVI” to para plików, jeden bez rozszerzenia i jeden z rozszerzeniem „.hdr”. Ale pliki .roi wydają się mieć inny format binarny? Nawiasem mówiąc, jeśli wszystko, co chcesz zrobić, to załadować plik .hdr, użyj tego pakietu python: spectralpython.net
MD004
Nie, zdecydowanie szukam rozwiązania do bezpośredniego odczytu / zapisu ROI, nie tylko nagłówków, które można odczytać np. Za pomocą GDAL w zależności od formatu ...
Daven Quinn