Archivos ráster BIL, BIP y BSQ

Banda intercalada por línea (BIL), banda intercalada por píxel (BIP) y banda secuencial (BSQ) son tres métodos comunes de organización de datos de imagen por imágenes multibanda. BIL, BIP y BSQ no son formatos de imagen pero son esquemas para almacenar los valores de píxel reales de una imagen en un archivo. Estos archivos admiten la visualización de imágenes simples y multibanda, y manejan datos de imagen blanco y negro, escala de grises, pseudocolor, color verdadero y multiespectral.

Los archivos BIL, BIP y BSQ son archivos binarios y deben tener un archivo de encabezado ASCII asociado para que ArcGIS los interprete correctamente. Este archivo de encabezado contiene datos secundarios sobre la imagen como el número de filas y columnas en la imagen, si hay un mapa de color, y la latitud y longitud.

NotaNota:

Se supone que los datos utilizan los enteros sin signo, a menos que se utilice la palabra clave "pixeltype" y su valor sea "signedint".

Los datos de banda intercalada por línea almacenan información de píxel banda por banda para cada línea o fila de la imagen. Por ejemplo, dada una imagen de tres bandas, las tres bandas de datos se escriben para la fila 1, las tres bandas de datos se escriben para la fila 2, y así sucesivamente, hasta que se alcance la cantidad total de filas en la imagen. El siguiente diagrama ilustra datos BIL para un dataset de tres bandas:

Banda intercalada por línea

Consulte un ejemplo de un archivo BIL

Los datos de banda intercalada por píxel son similares a los datos BIL, excepto que los datos para cada píxel se escriben banda por banda. Por ejemplo, con la misma imagen de tres bandas, los datos para las bandas 1, 2 y 3 se escriben para el primer píxel en la columna 1, los datos para las bandas 1, 2 y 3 se escriben para el primer píxel en la columna 2, y así sucesivamente.

Banda intercalada por píxel

Consulte un ejemplo de un archivo BIP

El formato secuencial de banda almacena información para la imagen una banda a la vez. En otras palabras, los datos de todos los píxeles para la banda 1 se almacenan primero, después los datos de todos los píxeles para la banda 2, y así sucesivamente.

Secuencial de banda

Consulte un ejemplo de un archivo BSQ

Archivos de descripción de la imagen

Hay tres archivos de descripción que se pueden proporcionar con archivos BIL, BIP o BSQ: un archivo de encabezado (.hdr) que describe el diseño de los datos de píxel de la imagen y se debe proporcionar, un archivo de color (.clr) que describe el mapa de color de la imagen y un archivo de estadísticas (.stx) que describe las estadísticas de imagen para cada banda de la imagen. Los archivos de texto ASCII se pueden generar en un editor de texto con la información que conoce sobre la imagen.

El archivo de encabezado

El archivo de encabezado describe los datos de imagen. Debe generar un archivo de encabezado para cada imagen, y debe tener el mismo nombre de archivo con una extensión .hdr, por ejemplo:

<image>.hdr

El archivo de encabezado contiene un conjunto de entradas; cada una de ellas describe un atributo particular de la imagen. Por ejemplo, una entrada puede describir la cantidad de filas o columnas en la imagen. El formato de cada entrada es

<keyword> <value>

en el que <palabra clave> indica el atributo particular que se configura y <valor> es el valor en el que se configura el atributo. Las entradas en el encabezado pueden estar en cualquier orden, pero cada una debe estar en una línea separada del archivo. Cualquier línea en el archivo que no comience con una palabra clave se trata como un comentario y se ignora.

La siguiente lista identifica las palabras clave válidas y describe el atributo particular de la imagen que definen. Varias de las palabras clave tienen valores predeterminados. Donde el valor predeterminado representa correctamente los datos de imagen, puede omitir la palabra clave del archivo de encabezado.

nrows:la cantidad de filas en la imagen. Las filas son paralelas al eje x del sistema de coordenadas del mapa. No hay valor predeterminado.

ncols:la cantidad de columnas en la imagen. Las columnas son paralelas al eje y del sistema de coordenadas del mapa. No hay valor predeterminado.

nbands:la cantidad de bandas espectrales en la imagen. El valor predeterminado es 1.

nbits:la cantidad de bits por píxel por banda. Los valores aceptables son 1, 4, 8, 16 y 32. El valor predeterminado es 8 bits por píxel por banda. Para una imagen de color verdadero con tres bandas (R,G,B) almacenada con 8 bits para cada píxel en cada banda, nbits es igual a 8 y nbands es igual a 3 para un total de 24 bits por píxel. Para una imagen con nbits igual a 1, nbands también debe ser igual a 1.

pixeltype:esta palabra clave se utiliza para denotar que su tipo de píxel es un entero con signo. Se supone que los datos utilizan los enteros sin signo, a menos que se utilice la palabra clave "pixeltype" y su valor sea "signedint".

byteorder:el orden de bytes en el que se almacenan los valores de píxel de la imagen. El orden de bytes es importante para las imágenes de 16 bits con 2 bytes por píxel. Los valores aceptables son:

  • I—Orden de bytes Intel® (Silicon Graphics®, DEC Alpha™, PC), también conocido como little endian
  • M—Orden de bytes Motorola® (Sun™, HP® y otros), también conocido como big endian

El orden de bytes predeterminado es el mismo que el del equipo host que ejecuta el software.

layout:la organización de las bandas en el archivo de imagen. Los valores aceptables son:

  • bil: Banda intercalada por línea. Esta es la opción predeterminada.
  • bip: Banda intercalada por píxel.
  • bsq: Secuencial de banda.

skipbytes:la cantidad de bytes de datos en el archivo de imagen a omitir para alcanzar el inicio de los datos de imagen. Esta palabra clave le permite omitir cualquier información del encabezado de imagen existente en el archivo. El valor predeterminado es 0 bytes.

ulxmap:la coordenada del mapa del eje x del centro del píxel superior izquierdo. Si especifica este parámetro, establezca también ulymap; de lo contrario, se utiliza un valor predeterminado.

ulymap:la coordenada del mapa del eje y del centro del píxel superior izquierdo. Si se especifica este parámetro, también se debe establecer ulxmap; de lo contrario, se utiliza un valor predeterminado.

xdim:la dimensión x de un píxel en las unidades de mapa. Si se especifica este parámetro, también se deben establecer ydim, ulxmap y ulymap; de lo contrario, se utiliza un valor predeterminado.

ydim:la dimensión y de un píxel en unidades de mapa. Si se especifica este parámetro, también se deben establecer xdim, ulxmap y ulymap; de lo contrario, se utiliza un valor predeterminado.

La siguiente figura muestra los valores predeterminados para ulxmap, ulymap, xdim e ydim. El centro del píxel superior izquierdo tiene coordenadas de mapa (ulxmap, ulymap) = (0, (nrows - 1)), con el centro del píxel inferior izquierdo en (0, 0). En esta figura, el valor de la coordenada para ulxmap y ulymap es (0, 3). Las dimensiones x e y del píxel se establecen en el valor predeterminado xdim = 1 e ydim = 1.

En la figura se muestran los valores predeterminados para ulxmap, ulymap, xdim e ydim.

bandrowbytes:la cantidad de bytes por banda por fila. Debe ser un entero. Esta palabra clave se utiliza solamente con archivos BIL cuando hay bits extra al final de cada banda dentro de una fila que se debe omitir. Bandrowbytes se puede considerar como un índice del punto de inicio de la próxima banda de datos. Comenzar al inicio de cualquier banda en una fila, mover bandrowbytes a lo largo de esa fila lleva al comienzo de la próxima banda.

En la figura de abajo se ilustra una fila de datos para una imagen de tres bandas. Bandrowbytes es la suma de la cantidad de bytes que se utilizan para almacenar los datos de imagen y los bits extra que se deben omitir para alcanzar la próxima banda.

bandrowbytes = image data + extra bits
bandrowbytes

Para establecer bandrowbytes, debe conocer el diseño de los datos de imagen o, más específicamente, cuántos bytes se utilizan para almacenar valores de píxel para cada banda en una fila. Si no se especifican bandrowbytes, se calcula un valor predeterminado con la siguiente ecuación:

bandrowbytes = the smallest integer(ncols x nbits) / 8

El valor predeterminado maneja casos donde no hay bits de acompañamiento extra al final de cada banda en una fila y donde el número de bytes por banda por fila es el número entero más pequeño de bytes que almacenará en forma adecuada los datos para la banda; por ejemplo, si los datos requieren 2.5 bytes, 3 bytes es el número entero más pequeño de bytes que podría almacenar los datos. En estos dos casos, no se deben establecer bandrowbytes. Sin embargo, si el número de bytes por banda por fila es mayor que el predeterminado, establezca bandrowbytes según corresponda.

Los siguientes dos ejemplos muestran el comportamiento predeterminado de bandrowbytes. El primer ejemplo describe el caso para el que no hay bits de acompañamiento al final de una banda en una fila, y el segundo describe el caso para el que hay.

  • Si no hay bits de acompañamiento extra al final de una banda, bandrowbytes es igual al número de bytes que se utiliza para almacenar los datos de imagen.
    bandrowbytes = image data
    bandrowbytes
    Por ejemplo, dada una imagen de 6 por 6 con tres bandas y 8 bits (1 byte) por píxel, los datos de imagen requieren 6 bytes por banda por fila.
    bytes per band per row = ncols x nbits = 6 x 8 = 48 bits or 6 bytes
    Por defecto, bandrowbytes se establece en 6 bytes, como se muestra mediante la siguiente ecuación:
    bandrowbytes = (ncols x nbits) / 8 = (6 x 8) / 8 = 48 / 8 bandrowbytes = 6 bytes
    Debido a que la cantidad de bytes por banda por fila es igual a bandrowbytes, el valor predeterminado es la configuración adecuada. Por lo tanto, bandrowbytes no se debe especificar explícitamente.
  • Si hay bits de acompañamiento al final de una banda en una fila, bandrowbytes no es igual al número de bytes de los datos por banda por fila.

    Supongamos que tiene una imagen de tres bandas de 5 filas y 5 columnas con 4 bits por píxel. Por defecto, bandrowbytes se establece en el número entero más pequeño de bytes que mantendrán adecuadamente los datos. En este caso, el valor predeterminado es 3. Se calcula de la siguiente manera:

    bandrowbytes = (ncols x nbits) / 8 = (5 x 4) / 8 = 20 / 8 = 2.5 = 3 (when rounded up to the nearest integer)
    Sin embargo, los datos de imagen sólo requieren 2.5 bytes, que se calculan al multiplicar ncols por nbits. Por lo tanto, el número de bytes a omitir es .5 bytes (4 bits), o la diferencia entre 3 bytes (bandrowbytes) y 2.5 bytes (bytes de los datos de imagen). En la figura de abajo se muestra una banda de datos para una fila de la imagen.
    bandrowbytes

totalrowbytes:la cantidad total de bytes por banda por fila. Utilice totalrowbytes cuando haya bits de acompañamiento extra al final de cada fila.

totalrowbytes

Para un archivo BIL, el valor predeterminado para totalrowbytes se calcula con la siguiente ecuación:

totalrowbytes = nbands x bandrowbytes

El valor predeterminado asume que no hay bits de acompañamiento extra al final de cada fila. Si hay, establezca totalrowbytes según corresponda. Por ejemplo, dada una imagen de tres bandas con bandrowbytes igual a 3, totalrowbytes es igual a 9 por defecto. Si hay un byte de acompañamiento extra de datos al final de la fila, establezca totalrowbytes en 10.

Para un archivo BIP, el valor predeterminado se calcula con una ecuación diferente:

totalrowbytes = (ncols x nbands x nbits) / 8

Totalrowbytes se redondea al número entero más cercano de bytes que puede almacenar en forma adecuada los datos de píxel para la fila. Por ejemplo, dada una imagen BIP de 5 (filas) por 5 (columnas) con 3 bandas y 4 bits por píxel, el valor predeterminado para totalrowbytes es:

totalrowbytes = (ncols x nbands x nbits) / 8 = (5 x 3 x 4) / 8 = 60 / 8 = 7.5 = 8 (when rounded up to the nearest integer)
bytes total de la fila para una imagen BIP

Esta figura ilustra la configuración predeterminada de totalrowbytes para una imagen BIP.

Si el valor predeterminado para totalrowbytes no representa correctamente el diseño de los datos, totalrowbytes se debe establecer en el número de bytes adecuado en cada fila.

bandgapbytes:la cantidad de bytes entre bandas en un formato de imagen BSQ. El valor predeterminado es 0.

El siguiente es un archivo de encabezado típico que se puede generar para una banda intercalada por imagen satelital de línea donde los datos de imagen están precedidos por un encabezado de 128 bytes.

Sample BIL header file Lines that don't begin with a keyword are treated as comments. nrows 1024  Comments can be placed here as well. ncols 1024 nbands 3 nbits 8 layout bil skipbytes 128

En la siguiente tabla se proporciona un resumen de las palabras clave que se pueden utilizar en el archivo .hdr:

Palabra clave

Valor aceptable

Por defecto

nrows

Cualquier entero > 0

Ninguno

ncols

Cualquier entero > 0

Ninguno

nbands

Cualquier entero > 0

1

nbits

1, 4, 8, 16, 32

8

pixeltype

SIGNEDINT

Entero sin signo

byteorder

I = Intel; M = Motorola

Igual que el equipo host

layout

bil, bip, bsq

bil

skipbytes

Cualquier entero ≥ 0

0

ulxmap

Cualquier número real

0

ulymap

Cualquier número real

nrows - 1

xdim

Cualquier número real

1

ydim

Cualquier número real

1

bandrowbytes

Cualquier entero > 0

Entero más pequeño ≥ (ncols x nbits) / 8

totalrowbytes

Cualquier entero > 0

Para bil: nbands x bandrowbytes; para bip: entero más pequeño ≥ (ncols x nbands x nbits) / 8

bandgapbytes

Cualquier entero ≥ 0

0

Resumen de las palabras clave que se pueden utilizar en un archivo de encabezado

El archivo de color

El archivo de color (.clr) es un archivo opcional que describe el mapa de color de la imagen para imágenes pseudocolor de banda única. Si este archivo no existe, la imagen se muestra como una imagen en escala de grises.

El archivo de color registra los colores que se asociarán con los valores de píxel en la imagen. Los colores se definen mediante el modelo de color RGB que describe los colores en la cantidad de rojo, verde y azul que contienen. El archivo consta de un conjunto de entradas, cada una en una línea separada, que describe el color que corresponde a un valor de píxel en la imagen.

Cada entrada tiene el formato:

<value> <red> <green> <blue>

en el que al <valor> se le otorga un valor de píxel y <rojo>, <verde> y <azul> son los componentes de color para el píxel. Ordene todas las entradas en orden ascendente por valor de píxel. Si el primer carácter que no está en blanco en la línea no es un número, la línea se considera un comentario y se ignora. Cualquier carácter que no está en blanco en una línea más allá del cuarto parámetro (azul) se ignora y se puede utilizar también como comentario.

Los componentes rojo, verde y azul se describen con una escala con valores que van desde 0 a 255. A medida que aumenta el valor de color, también aumenta la intensidad del componente de color particular. El color predeterminado para un valor de píxel sin entrada es negro. Debajo se muestra un archivo de color de muestra para un mapa de suelos ráster con valores de píxel de 11, 16, 18, 19, 21, 98 y 99:

Color file for Soils map Entries are sorted in ascending order by pixel value.  11 255 0 0 (red)  16 255 165 0 (orange)  18 255 255 0 (yellow)  19 0 255 0 (green)  21 0 0 255 (blue)  98 0 255 255 (cyan)  99 160 32 240 (purple)

Los archivos de color se utilizan solamente con imágenes de banda única. Cualquier imagen de banda única con un archivo de color se interpreta como una imagen pseudocolor. Los archivos de color que acompañan imágenes multibanda se ignoran.

El archivo de estadísticas

El archivo de estadísticas (.stx) es un archivo opcional que describe estadísticas de imagen para cada banda espectral en una imagen de escala de grises o multibanda. El archivo consta de una serie de entradas, una para cada banda, que registra el valor de píxel mínimo, el valor de píxel máximo, el valor medio, la desviación estándar y dos parámetros de aumento de contraste lineal.

Cada entrada tiene el siguiente formato (todos los valores aparecen en la misma línea en el archivo para cada banda):

<band> <minimum> <maximum> {mean} {std_deviation} {linear_stretch_min} {linear_stretch_max}

en la que <banda> es el número de banda, <mínimo> es el valor de píxel mínimo en la banda, <máximo> es el valor de píxel máximo en la banda, {valor medio} es el valor medio de píxel, {std_deviation} es la desviación estándar, {linear_stretch_min} es el valor de píxel mínimo para un aumento de contraste lineal y {linear_stretch_max} es el valor de píxel máximo para un aumento de contraste lineal.

Los valores para cada parámetro se introducen en una línea. Cualquier entrada en la que el primer carácter que no está en blanco no es un número se trata como un comentario y se ignora. El número de banda y los valores de píxel mínimo y máximo son parámetros requeridos; el valor medio, la desviación estándar, el valor mínimo de extensión lineal y el valor máximo de extensión lineal son parámetros opcionales. Utilice un "#" para omitir los parámetros opcionales.

Los números de banda pueden ir desde 1 a nbands. Los parámetros linear_stretch_min y linear_stretch_max se utilizan para expandir el contraste de la imagen que se visualiza. Los valores de píxel menores que linear_stretch_min se muestran en negro, y los valores de píxel mayores que linear_stretch_max se muestran en blanco. Los valores de píxel que caen entre los parámetros de extensión lineal mínima y máxima se muestran sombreados en gris, y los valores de píxel más bajos se muestran sombreados en gris más oscuro.

Extensión lineal

Los valores de píxel que están entre los parámetros de extensión lineal se muestran con el número máximo de matices de gris disponibles en el dispositivo de visualización.

Si no se especifican linear_stretch_min y linear_stretch_max, se establece en forma predeterminada el valor medio menos dos desviaciones estándar para linear_stretch_min y el valor medio más dos desviaciones estándar para linear_stretch_max. Si no se proporciona la desviación estándar, los valores de píxel mínimo y máximo se utilizan como los parámetros de aumento de contraste.

Para las imágenes multibanda, cada banda se extiende antes de que se muestre la imagen compuesta. La presencia de un archivo de color (.clr) invalida el aumento de contraste lineal de una imagen en escala de grises de banda única y, en cambio, muestra la imagen como una imagen pseudocolor.

El siguiente es un archivo de estadísticas de muestra para una imagen satelital de cuatro bandas con 8 bits por píxel por banda:

Image statistics file 1 2 118 67 10 Band 2 has linear contrast stretch parameters: 2 23 251 112 23 80 90 3 68 91 73 4 Band 4 does not contain values for mean and standard deviation: 4 126 198 # # 135 167

Temas relacionados

9/11/2013