Czy istnieje sposób na otwarcie pliku w formacie BSQ w formacie IDL ?
Komentarze
- idl? proszę rozwinąć
- Nie jestem pewien, czy to to pomoże. ' Będziemy potrzebować więcej informacji, aby udzielić lepszej odpowiedzi.
- Dodano linki do BSQ i IDL. Jedyny przyzwoity diagram BSQ, jaki udało mi się znaleźć, znajdował się w pomocy Esri, ' nie sugeruję jednak, że oprogramowanie Esri jest potrzebne.
Odpowiedź
Czy używasz IDL z ENVI, czy samodzielnie?
Jeśli używasz IDL z ENVI (zdecydowanie najłatwiej masz ENVI), wtedy będą działać standardowe polecenia odczytu plików ENVI.Na przykład:
ENVI_SELECT, fid=fid, dims=dims, pos=pos ; Shows a dialog box to allow you to select a file image = ENVI_GET_DATA(fid=fid, dims=dims, pos=pos) ; Gets the data into an array called image
Jeśli nie masz ENVI, jest to nieco trudniejsze. Możesz odczytać dane BSQ za pomocą standardowych poleceń odczytu plików binarnych IDL (zobacz http://www.msi.umn.edu/software/idl/tutorial/idl-rwd.html#Reading%20Binary%20Data , ale będziesz musiał znać wymiary obrazu (próbki, linie i pasma), aby móc go rozsądnie podzielić. Informacje te są często przechowywane w pliku .hdr, który ENVI odczytuje automatycznie, gdy używasz powyższej metody.
Odpowiedź
IDL odczytuje binarną strukturę pliku sekwencyjnego pasma (BSQ) jako [kolumna, wiersz, pasmo]
BSQ, BIL and BIP are multiband encodings where: a 8-bit Grey scale image would encode 1 band of data a 24-bit RGB additive color image would be 3 bands of data a 32-bit CMYK subtractive color image would be 4 bands of data Discrete multispectral images, or contiguous hyperspectral images would have increasing numbers of bands.
Tak więc, jak zauważył @robintw, musisz znać wymiary i źródło / czujnik swojego obrazu. Oprócz kodowania BSQ musisz wiedzieć cztery rzeczy, aby wczytać dane do Interaktywna tablica IDL. Potrzebujesz liczby kolumn, liczby wierszy, liczby pasm i typu danych. Oczywiście w przypadku wszelkich prac geoprzestrzennych poza IDL musisz znać nominalny rozmiar piksela i współrzędne co najmniej 3 punktów kontrolnych do rejestracji obrazu , I dodatkowe szczegóły na str opuluj plik ESRI Grid World.
Do dekodowania danych BSQ dostępne są binarne typy danych IDL
0 Undefined 1 Byte 2 Integer 3 Longword Integer 4 Floating point 5 Double-precision floating 6 Complex 7 String 8 Structure 9 Double-precision complex 10 Pointer 11 Object reference 12 Unsigned Integer 13 Unsigned Longword Integer 14 64-Bit Integer 15 Unsigned 64-Bit Integer
Tak więc z minimum informacji pod ręką: Aby „otworzyć” dane, tworzysz nową procedurę IDL
make array of (columns,rows,bands) assign to working_array open the bsq_image for reading nested loops to read-in binary_values for each band for each row for each column read the binary_value of type from the bsq_image write the data to the working_array display working_array ;;ordered as needed for false color aesthetics
Komentarze
- @Yudine, czy powinien być załącznik lub jakieś szczegóły?
- @ Stuart, to są szczegóły pliku ENVI description = {File Resize Result, x resize factor: 1.000000, y resize factor: 1.000000. [Thu Jan 13 18:15:18 2011]} próbki = 338 wierszy = 308 pasm = 125 offset nagłówka = 0 typ pliku = ENVI Standardowy typ danych = 2 przeplot = bsq typ czujnika = nieznana kolejność bajtów = 0 x start = 459 y start = 1735 Number of bands = 125
- @Yudine, wygląda na to, że masz wszystko, czego potrzebujesz, aby wczytać obraz do tablicy IDL. 338 próbek – > kolumn, 308 linii – > wierszy, 125 pasm. Liczba całkowita typu 2 (prawdopodobnie 0-255). A kolejność bajtów to 0, tj. Little Endian, więc bezpośrednio odczytany na komputerze z systemem Windows (musiałby przekształcić (Swap_If_Big_Endian), jeśli jest 1. Tak więc utwórz nowy Pro w interfejsie użytkownika IDLDE i postępuj zgodnie z pseudokodem. Czytanie Michaela Todda ' powyższa uwaga z linkiem do ćwiczenia klasowego w UIdaho powinna pomóc w składni kodu. Wtedy jedynym problemem będzie decyzja, które pasma w tablicy wyświetlić, 125 do połączyć.
Odpowiedź
Nie mam doświadczenia ani z bsq, ani z idl, ale ponieważ gdal obsługuje bsq , możesz spróbować użyć gdal_translate, aby przekonwertować plik do formatu geograficznego. Wydaje się, że IDL obsługuje odczytywanie plików tif.