Esiste un modo per aprire il formato di file BSQ in IDL ?
Commenti
- idl? si prega di espandere
- Non sono sicuro che questo sia daiuto. ' avremo bisogno di maggiori informazioni per fornire una risposta migliore.
- Aggiunti collegamenti per BSQ e IDL. Lunico diagramma decente per BSQ che ho trovato era nellhelp di Esri, ' non sto suggerendo che il software Esri sia necessario però.
risposta
Stai usando IDL con ENVI o da solo?
Se stai usando IDL con ENVI (di gran lunga il più semplice se hai ENVI) allora i comandi di lettura dei file ENVI standard funzioneranno. Ad esempio:
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
Se non hai ENVI allora è un po più difficile. Puoi leggere i dati BSQ utilizzando i comandi di lettura di file binari IDL standard (vedi http://www.msi.umn.edu/software/idl/tutorial/idl-rwd.html#Reading%20Binary%20Data ma dovrai farlo conoscere le dimensioni dellimmagine (campioni, linee e bande) per poterla suddividere in modo sensato. Queste informazioni sono spesso memorizzate in un file .hdr, che ENVI legge automaticamente quando si utilizza il metodo sopra.
Risposta
IDL legge la struttura del formato di file binario Band Sequential (BSQ) come [Colonna, Riga, Banda]
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.
Quindi, come notato da @robintw, devi conoscere le dimensioni e la sorgente / sensore della tua immagine. Oltre alla codifica BSQ, devi conoscere quattro cose per leggere i dati in un Matrice interattiva IDL. È necessario il conteggio delle colonne, il conteggio delle righe, il conteggio delle bande e il tipo di dati. Ovviamente per qualsiasi lavoro geospaziale al di fuori di IDL è necessario conoscere la dimensione nominale dei pixel e le coordinate di almeno 3 punti di controllo per la registrazione dellimmagine E ulteriori dettagli a pag opola un file ESRI Grid World.
Per decodificare i tuoi dati BSQ, le scelte del tipo di dati binari IDL sono
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
Quindi con le informazioni minime a portata di mano: per “aprire” i dati si crea una nuova Procedura 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
Commenti
- @Yudine, dovrebbe esserci un allegato o alcuni dettagli?
- @ Stuart, questi sono i dettagli del file Descrizione ENVI = {File Resize Result, x resize factor: 1.000000, y resize factor: 1.000000. [Thu Jan 13 18:15:18 2011]} campioni = 338 righe = 308 bande = 125 offset intestazione = 0 tipo di file = tipo di dati ENVI standard = 2 interleave = tipo di sensore bsq = ordine byte sconosciuto = 0 x inizio = 459 y start = 1735 Numero di bande = 125
- @Yudine, sembra che tu abbia tutto ciò di cui hai bisogno per leggere limmagine in un array IDL. 338 esempi – > colonne, 308 righe – > righe, 125 bande. Tipo di dati 2 intero (probabilmente 0-255). E lordine dei byte è 0, cioè Little Endian quindi letto direttamente su un PC Windows (dovrebbe trasformare (Swap_If_Big_Endian) se a 1. Quindi crea un nuovo Pro nella GUI IDLDE e segui lo pseudo codice. Una lettura di Michael Todd ' La nota precedente con il collegamento a un esercizio di classe su UIdaho dovrebbe aiutarti con la sintassi del codice. Quindi il tuo unico problema sarà decidere quali bande nellarray visualizzare, 125 a combinare.
Risposta
Non ho esperienza con bsq o idl, ma poiché gdal supporta bsq , potresti provare a utilizzare gdal_translate per convertire il tuo file in un geotiff. IDL sembra supportare la lettura di file tif.