¿Hay alguna forma de abrir el formato de archivo BSQ en IDL ?
Comentarios
- idl? expanda
- No estoy seguro de que esto ayude. ' necesitaremos más información para proporcionar una mejor respuesta.
- Se agregaron enlaces para BSQ e IDL. El único diagrama decente para BSQ que pude encontrar fue en la ayuda de Esri. Sin embargo, ' no sugiero que se necesite el software de Esri.
Respuesta
¿Está usando IDL con ENVI, o solo?
Si está usando IDL con ENVI (con mucho, el más fácil si tiene ENVI), entonces los comandos estándar de lectura de archivos ENVI funcionarán. Por ejemplo:
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
Si no tiene ENVI, entonces es un poco más difícil. Puede leer los datos de BSQ utilizando comandos de lectura de archivos binarios IDL estándar (consulte http://www.msi.umn.edu/software/idl/tutorial/idl-rwd.html#Reading%20Binary%20Data , pero deberá Conozca las dimensiones de la imagen (muestras, líneas y bandas) para poder dividirla de manera sensata. Esta información a menudo se almacena en un archivo .hdr, que ENVI lee automáticamente cuando usa el método anterior.
Respuesta
IDL lee la estructura de formato de archivo binario Band Sequential (BSQ) como [Column, Row, Band]
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.
Entonces, como lo señaló @robintw, debe conocer las dimensiones y la fuente / sensor de su imagen. Además de la codificación BSQ, debe saber cuatro cosas para leer los datos en un Matriz interactiva IDL. Necesita el recuento de columnas, el recuento de filas, el recuento de bandas y el tipo de datos. Por supuesto, para cualquier trabajo geoespacial fuera de IDL, necesitaría conocer el tamaño de píxel nominal y las coordenadas de al menos 3 puntos de control para el registro de imágenes. . Y detalles adicionales ap opular un archivo ESRI Grid World.
Para decodificar sus datos BSQ, las opciones de tipo de datos binarios IDL son
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
Entonces, con la información mínima a mano: para «abrir» los datos, cree un nuevo procedimiento 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
Comentarios
- @Yudine, ¿debería haber un adjunto o algunos detalles?
- @ Stuart, estos son los detalles del archivo ENVI description = {Resultado de cambio de tamaño de archivo, factor de cambio de tamaño x: 1.000000, factor de cambio de tamaño y: 1.000000. [Jue 13 de enero 18:15:18 2011]} muestras = 338 líneas = 308 bandas = 125 desplazamiento de encabezado = 0 tipo de archivo = ENVI Tipo de datos estándar = 2 intercalación = tipo de sensor bsq = orden de bytes desconocido = 0 x inicio = 459 y start = 1735 Número de bandas = 125
- @Yudine, parece que tiene todo lo que necesita para leer la imagen en una matriz IDL. 338 muestras – > columnas, 308 líneas – > filas, 125 bandas. Número entero de tipo de datos 2 (probablemente 0-255). Y el orden de bytes es 0, es decir, Little Endian se lee directamente en una PC con Windows (tendría que transformar (Swap_If_Big_Endian) si es 1. Así que cree un nuevo Pro en la GUI IDLDE y siga el pseudo código. Una lectura de Michael Todd ' La nota anterior con el enlace a un ejercicio de clase en UIdaho debería ayudarlo con la sintaxis del código. Entonces su único problema será decidir qué bandas en la matriz mostrar, 125 a combine.
Respuesta
No tengo experiencia con bsq o idl, pero dado que gdal es compatible con bsq , puede intentar usar gdal_translate para convertir su archivo a geotiff. IDL parece admitir la lectura de archivos tif.