Rellenado de los gaps provocados por la falla del Scan Line

Anuncio
Facultad de Matemática y Computación
Universidad de La Habana
Rellenado de los gaps provocados por la falla
del Scan Line Corrector en las imágenes
Landsat 7 ETM+
Trabajo de Diploma presentado como requisito para obtener el título de
Licenciado en Ciencias de la Computación.
Autora: Neisy Rodríguez Ramos
Tutores: Lic. Ina Bell-lloch García
Lic. Soltan Galano Duverger
La Habana, Junio de 2009.
Resumen
El uso de plataformas satelitales se ha convertido en una herramienta
imprescindible para dar seguimiento a fenómenos de la vida en la Tierra. El
satélite Landsat 7 toma imágenes de Cuba cada 16 días, y desde Octubre del
2008 se encuentran disponibles de manera gratuita. Cuando uno de sus
sensores dejó de funcionar, las imágenes comenzaron a presentar franjas de
datos inválidos (gaps). En este trabajo se implementa la metodología Phase 2
Gap-Fill Algorithm para corregir los valores perdidos en las escenas del Landsat
7, lo cual tiene un impacto directo en los estudios cartográficos y el
seguimiento de fenómenos medioambientales en el país. Los resultados del
procesamiento de las imágenes por el método implementado son comparados
con los obtenidos por otros sistemas empleados en el país.
Abstract
The use of satellite platforms have become an essential tool to follow
phenomenon related to the life in Earth. The Landsat 7 satellite takes images of
Cuba every 16 days, which are free to download since October 2008. When one
of Landsat’s sensors failed in 2003, invalid data strips (gaps) appeared in the
images. The Phase 2 Gap-Fill Algorithm is implemented to correct lost data in
the Landsat 7 scenes. It has a direct impact on cartographic studies and to
follow environmental phenomenon in Cuba.The result of the images processed
by the implemented method is compared with those obtained by using
traditional systems applied in our country.
2
Agradecimientos
Quisiera agradecer a todas aquellas personas que han contribuido de una forma u otra
a la realización de este trabajo. Primero que todo a mi hermano Tito, mi guía y ejemplo
durante toda mi vida, sobre todo en los estudios. A mi mamá, que tanto se ha
sacrificado y esforzado durante mi carrera, estimulándome e impulsándome en cada
momento para seguir adelante, sin perder la confianza en mí. A mi papá, tíos y
abuelos, por la preocupación y el apoyo. Al profe Yoel por los consejos y su dedicación
incondicional. A los profes que fueron más allá y pasaron a ser buenos amigos, Lily,
Eve, Pablo, mi flaco Erich. A Dionne y Abelito, por estar sobre todo en los tiempos
difíciles. A mis compañeros de grupo que contribuyeron a armonizar los estudios en
un ambiente tan lindo. A Tamayo por las explicaciones y por compartir sus
conocimientos pacientemente. A Gustavo y familia, por el cariño. A la gente de la beca,
por los momentos de alegría a pesar de las dificultades que pasamos juntos. A mis
tutores, Ina, Soltan, Estrada y Gustavito, por el apoyo y el esfuerzo para lograr la
culminación de este proyecto. A todos los profesores que han contribuido en mi
formación profesional, a lo largo de mi carrera estudiantil. En fin, a todos ellos, y los
que se me quedan por mencionar, muchas gracias.
3
Contenido
Introducción .................................................................................................................................. 6
Objeto de estudio...................................................................................................................... 7
Problema científico ................................................................................................................... 7
Objetivo del trabajo .................................................................................................................. 7
Justificación de la investigación ................................................................................................ 7
Tareas ........................................................................................................................................ 8
Estructuración del trabajo ......................................................................................................... 8
Capítulo 1 Imágenes del satélite Landsat 7 .................................................................................. 9
1.1 Descripción .......................................................................................................................... 9
1.2 Formatos TIFF y GeoTIFF ................................................................................................... 11
1.2.1 Formato TIFF (Tagged Image File Format) ................................................................. 11
1.2.1.1 Organización del fichero ..................................................................................... 11
1.2.1.2 Estructura de la cabecera .................................................................................... 11
1.2.1.3 Estructura del IFD ................................................................................................ 12
Estructura de las entradas........................................................................................... 12
1.2.2 Formato GeoTIFF ........................................................................................................ 13
1.2.2.1 Los metadatos del GeoTIFF (llaves) ..................................................................... 14
Estructura del GeoKeyDirectory .................................................................................. 14
1.3 Formato de las imágenes del Landsat 7 ............................................................................ 14
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos.................. 16
2.1 Análisis de las metodologías conocidas para la eliminación de los gaps .......................... 18
2.2 Metodología implementada ............................................................................................. 20
2.2.1 Justificación teórica .................................................................................................... 20
2.2.1.1 Ajuste de histograma .......................................................................................... 20
2.2.1.2 Modelo de regresión lineal ................................................................................. 22
2.2.2 Metodología ............................................................................................................... 24
Capítulo 3 Implementación ......................................................................................................... 29
3.1 Tecnologías aplicadas ........................................................................................................ 29
3.1.1 .NET Framework ......................................................................................................... 29
3.1.2 El lenguaje de programación C# ................................................................................. 30
3.1.3 WinHex ....................................................................................................................... 30
3.1.4 ENVI (Environment for Visualizing Image) ................................................................. 30
3.2 Rellenando los gaps .......................................................................................................... 30
4
3.2.1 Manejador del formato GeoTIFF ................................................................................ 30
La clase TiffManager ................................................................................................. 31
3.2.2 La clase Scene .......................................................................................................... 31
Buscando las fronteras de la imagen real ....................................................................... 32
3.2.3 Recursos empleados para el procesamiento eficiente de las imágenes.................... 33
3.2.4 La clase ImageProcessor ..................................................................................... 34
La “filosofía de los cuatro cuadrantes” ........................................................................... 34
Miembros de la clase ...................................................................................................... 35
3.3 Aplicación .......................................................................................................................... 37
3.3.1 Opciones del menú..................................................................................................... 38
Capítulo 4 Resultados.................................................................................................................. 41
Conclusiones ............................................................................................................................... 43
Recomendaciones ....................................................................................................................... 44
Bibliografía .................................................................................................................................. 45
Anexos ......................................................................................................................................... 47
Anexo 1 Descripción de las entradas contenidas en el IFD de las imágenes del Landsat 7 (19)
................................................................................................................................................. 47
Anexo 2 Otros preprocesamientos que se pueden realizar para obtener un resultado más
efectivo. ................................................................................................................................... 48
Anexo 3 Diagrama de bloques del Proceso de Macheo de Histogramas................................ 49
5
Introducción
Introducción
La posibilidad de obtener imágenes desde el espacio con sensores montados en
plataformas aéreas y satelitales, constituye una herramienta de vital importancia, pues
permite actualizar con rapidez y precisión, el seguimiento de distintos fenómenos en la
Tierra.
Uno de los archivos de imágenes más completos e importantes para el estudio de la
superficie de la Tierra (1), lo constituye el captado por los satélites de mediana
resolución Landsat, el cual data de más de 35 años, resultado de un programa
diseñado a fines de los años 60 por la Agencia Espacial Norteamericana, dedicado a la
observación de los recursos terrestres.
Recientemente ha sido habilitado en el sitio http://glovis.usgs.gov por el Servicio
Geológico de los Estados Unidos (USGS1), el acceso electrónico de manera gratuita, a
cualquier imagen de esta compilación, con escenas globales que fechan desde 1972
hasta la actualidad, con una frecuencia de muestreo entre 16 y 18 días, las cuales han
sido tomadas con los sensores Escáner Multiespectral (MSS) a bordo de los satélites
Landsat 1, 2, 3, 4 (todos desactivados); Mapeador Temático (TM) a bordo de los
Landsat 4 y 52; y el Mapeador Temático Ensanchado (ETM+) a bordo del Landsat 7.
Este último ha provisto de información casi ininterrumpida desde su lanzamiento en
Julio de 1999, pero en la actualidad presenta un problema a causa de una falla en el
instrumento que corrige las líneas escaneadas, conocido como Scan Line Corrector
(SLC-off), el cual se encuentra apagado desde Mayo de 2003 (2), dando como resultado
que todas las escenas de Landsat 7 adquiridas desde el 14 de Julio de ese año hayan
sido colectadas conteniendo franjas de datos inválidos (gaps3).
No existe otro satélite que ofrezca imágenes de Cuba, con similares características y
de manera gratuita. Sin embargo, la utilidad de las mismas está reducida
enormemente debido al problema del SLC-off.
Hasta la fecha, se emplean métodos y softwares para intentar corregir las imágenes
dañadas, pero estos son poco efectivos.
Por otra parte, el precio de cada una de las imágenes corregidas por instituciones
foráneas es de aproximadamente 300 USD y, para cubrir toda Cuba, se necesitan 16
escenas (Figura 1). Se estima que se requieran tres juegos al año como promedio, uno
para cada temporada (lluvia y seca) y otro “extra” para evaluar, por ejemplo, alguna
afectación producida por huracanes o incendios, con lo cual habría que destinar
1
Todas las siglas de este trabajo están referidas a los términos en inglés.
Este último se encuentra activo aunque brinda muy pocas prestaciones.
3
Aunque existen varios tipos de gaps, en este documento se emplea este término para hacer referencia a los datos
inválidos producidos por el SLC-off
2
6
Introducción
alrededor de 14.000 USD anuales a esta actividad, descontando el costo de producción
bajo condiciones nacionales.
Figura 1 Escenas que cubren el territorio nacional.
Todo lo anterior presupone la necesidad de implementar un procedimiento para
restaurar con datos cercanos a la realidad, los valores que se han perdido como
consecuencia del mal funcionamiento del SLC.
Objeto de estudio
Las imágenes satelitales tomadas por el Landsat 7.
Problema científico
Las imágenes satelitales tomadas por el Landsat 7 presentan gaps que dificultan su
análisis para la actualización cartográfica y el seguimiento de fenómenos
medioambientales que ocurren en el país. Los métodos utilizados hasta la fecha para la
corrección de las imágenes son poco efectivos.
Objetivo del trabajo
Corregir mediante la implementación del proceso de macheo de histogramas sugerido
en el Phase 2 Gap-Fill Algorithm, los valores radiométricos perdidos en las imágenes
Landsat 7 SLC-off, para viabilizar las tareas de actualización de cartografía y posibilitar
el seguimiento a distintos fenómenos medioambientales del país.
Justificación de la investigación
La implementación de un algoritmo capaz de corregir las imágenes del Landsat 7
tendría un impacto directo sobre los estudios cartográficos y medioambientales del
país. Desde el punto de vista económico significaría un ahorro estimado en 14.000 USD
anuales.
7
Introducción
Tareas
Las principales tareas desarrolladas para dar cumplimiento al objetivo planteado en
este trabajo son las siguientes:
 Estudio de las imágenes satelitales y el formato GeoTIFF.
 Estudio de las metodologías actuales para la corrección de los gaps y selección
del algoritmo adecuado para resolver el problema.
 Diseño e implementación de una herramienta que permita corregir las
imágenes dañadas.
 Evaluación de la efectividad del resultado respecto a los métodos utilizados
actualmente para corregir las imágenes.
Estructuración del trabajo
Este trabajo está estructurado en Introducción, cuatro capítulos, Conclusiones y
Recomendaciones.
En la Introducción se da una visión panorámica sobre los antecedentes del uso de las
imágenes del Landsat 7 en Cuba y de la aparición de los gaps para luego caer en el
diseño de la investigación.
En el Capítulo 1 Imágenes del satélite Landsat 7, se exponen las características de las
imágenes objeto de estudio de este trabajo, y se profundiza en la estructura de los
formatos TIFF y GeoTIFF.
En el Capítulo 2 Los gaps producidos por el SLC-off, y las metodologías para
corregirlos, se explican el origen de los gaps en las imágenes del satélite y la
metodología empleada para corregir estos defectos.
En el Capítulo 3 Implementación se detalla cómo se implementó la metodología
propuesta para rellenar los gaps para el procesamiento digital de las imágenes, cuyos
Resultados se muestran en el Capítulo 4.
Luego aparecen las Conclusiones y las Recomendaciones del trabajo, seguidos de la
Bibliografía referenciada y consultada y los Anexos.
8
Capítulo 1 Imágenes del satélite Landsat 7
Capítulo 1 Imágenes del satélite Landsat 7
1.1 Descripción
Las imágenes tomadas por el satélite Landsat 7 presentan ocho bandas en escala de
grises, las cuales cubren un rango espectral que va desde el espectro visible hasta el
infrarrojo cercano y el infrarrojo térmico. En la Figura 2, se muestra una imagen de la
banda 3 (rojo visible) correspondiente a la escena 15-45. La banda Pancromática es la
mayor novedad de este satélite, su resolución espacial de 15 m registrado con las
demás bandas, permite que las imágenes generadas sean trabajadas para obtener
ampliaciones de hasta 1:25.000. La banda 6, con ganancia baja y ganancia alta, permite
varias opciones de análisis y aplicaciones, tales como la medición relativa de
temperatura radiante o un cálculo de temperatura absoluta (3).
En la Tabla 1 se muestra el registro de las bandas espectrales que capta este satélite.
Tabla 1 Registro de las bandas espectrales para el sensor ETM+
Bandas
Longitud del espectro
Resolución espacial
Descripción
1
0.45 – 0.52 µm
30 m
Azul visible
2
0.52 – 0.60 µm
30 m
Verde visible
3
0.63 – 0.69 µm
30 m
Rojo visible
4
0.76 – 0.90 µm
30 m
Infrarrojo cercano
5
1.55 – 1.75 µm
30 m
Infrarrojo
6
10.40 – 12.50 µm
60 m
Infrarrojo térmico
7
2.08 – 2.35 µm
30 m
Infrarrojo
8
0.52 – 0.90 µm
15 m
Pancromático
La cobertura de cada una de las escenas es de 183x170 km2 aproximadamente, lo cual
sumado a la resolución espacial de las mismas, provoca que las imágenes tengan un
tamaño considerablemente grande.
Producto del movimiento de rotación de la Tierra, o del ángulo desde el cual el satélite
toma las imágenes, puede suceder que las escenas no tengan una misma resolución, o
que estén ligeramente desfasadas, lo que provoca que las imágenes correspondientes
a una escena, no necesariamente sean del mismo tamaño, ni abarquen la misma área
exactamente.
El formato de estas imágenes es el GeoTIFF, cuya estructura se explicará más adelante.
9
Capítulo 1 Imágenes del satélite Landsat 7
Figura 2 Imagen de la banda 3 correspondiente a la escena 15-45, tomada por el Landsat 7 el 01/03/2009.
En dependencia del análisis que se quiera realizar se combinan varias bandas,
producto de lo cual se obtienen las imágenes policromáticas como la mostrada en la
Figura 3. Entre los análisis más comunes se encuentran los del comportamiento de la
vegetación, de los suelos o el nivel de humedad, por citar algunos ejemplos.
Figura 3 Imágen policromática obtenida al combinar varias bandas.
10
Capítulo 1 Imágenes del satélite Landsat 7
1.2 Formatos TIFF y GeoTIFF
1.2.1 Formato TIFF (Tagged Image File Format)
Este formato desarrollado por Aldus Corporation en el año 1987, fue especificado
originalmente como un estándar para guardar imágenes en blanco y negro creadas por
escáner y aplicaciones de publicación.
El principio del formato TIFF consiste en definir etiquetas que describen las
características de la imagen. Está diseñado para ser extensible, y permite almacenar
más de una imagen en un mismo fichero.
TIFF ha ganado su reputación por su potencia y flexibilidad, pero es considerado tan
complicado y misterioso como bueno. Este formato es uno de los más completos en su
definición y el más especificado en documentaciones técnicas oficiales. Son tantas sus
variantes que su manejo puede llegar a ser muy complejo, pero si sólo se contemplan
las más habituales se simplifica enormemente.
1.2.1.1 Organización del fichero
Todo fichero TIFF está organizado en tres secciones: la cabecera del fichero, el
directorio de imágenes del fichero (IFD) y los datos del bitmap. Un fichero que
contenga varias imágenes tendrá un directorio y un bitmap por cada imagen
contenida. Aunque la cabecera va siempre al comienzo, las otras dos partes pueden ir
dispuestas de varias maneras. En la Figura 4 se ilustran tres posibles distribuciones de
los datos de un fichero TIFF. (4)
Figura 4 Posibles distribuciones de los datos de un fichero TIFF
1.2.1.2 Estructura de la cabecera


Bytes 0-1: Especifican el orden de los bytes utilizado en el fichero. Puede ser
uno de los siguientes valores: 4949h (II) ó 4D4Dh (MM)4.
Bytes 2-3: Teóricamente indican el número de la versión TIFF.
4
En el orden II (Intel), el orden de los bytes es del menos significativo al más significativo, ya sea con valores de 16 o
de 32 bits. El orden MM (Motorola) es al contrario, del más significativo al menos significativo.
11
Capítulo 1 Imágenes del satélite Landsat 7

Bytes 4-7: Contienen el desplazamiento en bytes, desde el inicio del fichero,
para acceder al primer directorio de imagen. Su único requisito, respecto a su
ubicación es que esté en una dirección par.
1.2.1.3 Estructura del IFD
Una vez localizado el IFD se pasa a interpretarlo. Consiste en un contador de dos bytes,
indicador del número de entradas o campos que contiene el directorio. A continuación
están las entradas; cada una consta de 12 bytes y al final de estas aparece un puntero
al siguiente directorio de cuatro bytes; si no hay mas directorios debe estar en cero.
Cada directorio de imagen define una imagen completa, y esto es lo que permite
realizar ficheros TIFF multi-imagen.
Estructura de las entradas




Bytes 0-1: Especifica el código.
Bytes 2-3: Especifica el tipo. En laTabla 2 se muestran los tipos admitidos.
Bytes 4-7: Longitud, especificada en unidades del tipo de datos de la entrada,
no en bytes totales.
Bytes 8-11: Desplazamiento en bytes para acceder a los datos de la entrada.
Debe ser un número par. Si el tamaño de los datos es menor o igual a 4 bytes,
entonces no es almacenado el desplazamiento para acceder a los datos, sino
los datos mismos, y si son menores de 4 bytes, son ajustados a la izquierda.
Para conocer el tamaño de los datos, se deben consultar el tipo y la longitud.
Tabla 2 Tipos de datos válidos
Tipo Nombre Tamaño
1 byte
Descripción
1
BYTE
Entero sin signo de 8 bits
2
ASCII
3
SHORT
2 bytes
Entero sin signo de 16 bits
4
LONG
4 bytes
Entero sin signo de 32 bits
5
RATIONAL
8 bytes
Dos LONG representando a una fracción
Cadena de códigos ASCII acabada en 0
Las entradas están ordenadas crecientemente dentro del fichero en función de su
código.
En la Figura 5 se ilustra la organización lógica de un fichero TIFF, descrita a lo largo de
este epígrafe.
12
Capítulo 1 Imágenes del satélite Landsat 7
Figura 5 Organización lógica de un fichero TIFF
1.2.2 Formato GeoTIFF
El formato GeoTIFF fue diseñado en el Laboratorio de Propulsión a Reacción (Jet
Propulsion Laboratory) de la NASA (National Aeronautics Space Administration) por el
Dr. Niles Ritter.
La especificación GeoTIFF define un conjunto de etiquetas TIFF provistas para describir
toda la información cartográfica originada desde sistemas satelitales de imágenes, de
escaneos de fotografías aéreas; de escaneos de mapas; de modelos de elevación
digital o como resultado de análisis geográfico. Esta información adicional incluye el
tipo de proyección5, sistema de coordenadas, elipsoide, datum y todo lo necesario
para que la imagen pueda ser automáticamente posicionada en un sistema de
referencia espacial. Su objetivo es permitir una vía de atar una imagen raster a un
modelo espacial o una proyección de mapa conocido y describir estas proyecciones.
GeoTIFF no pretende convertirse en un reemplazo de estándares de intercambio de
datos geográficos ya existentes, tales como los estándares USGS, o el estándar de
metadatos FGDC (Federal Geographic Data Committee). Por el contrario, promueve el
aumento de un formato de datos raster ya existente y popular para soportar
información georreferenciada y geocodificada.
5
Estas proyecciones incluyen UTM, US State Plane and Nacional Grids, así como tipos de proyecciones derivadas
tales como Transverse Mecator, Lambert Conformal Conic, etc.
13
Capítulo 1 Imágenes del satélite Landsat 7
El formato GeoTIFF es completamente compatible con TIFF 6.0, por lo que un
programa informático incapaz de leer e interpretar esa información, podrá aún así
abrir el archivo de imagen GeoTIFF y visualizarlo como si de un archivo TIFF normal se
tratara. (5)
1.2.2.1 Los metadatos del GeoTIFF (llaves)
La cantidad y tipos de parámetros que podrían ser requeridos para describir las
proyecciones más populares, implicaría desde docenas hasta cientos de etiquetas, lo
que agotaría las habilitadas por el formato TIFF.
Para solucionar este problema, GeoTIFF utiliza una aproximación a través de llaves
(geotags) para codificar información, las cuales están diseñadas en una forma análoga
a las etiquetas TIFF estándar, en su estructura y disposición. A medida que surjan
nuevas necesidades, otras llaves pueden definirse dentro de la estructura, sin requerir
la asignación de nuevas etiquetas.
Estas llaves se encuentran en un GeoKeyDirectory (GKD), el cual se referencia en el IFD,
en una etiqueta conocida como GeoKeyDirectoryTag, cuyo código es 87AFh.
Estructura del GeoKeyDirectory
Este directorio tiene una cabecera, a continuación de la cual se encuentra el conjunto
de entradas (KeyEntry), con una estructura análoga al formato de las entradas del IFD.
Estructura de la cabecera




Bytes 0-1: KeyDirectoryVersion. Indica la versión de la implementación de las
llaves y es usado para asegurar que es una implementación válida.
Bytes 2-3: KeyRevision. Indica qué revisión del conjunto de llaves es usado.
Bytes 4-5: MinorRevision. Indica qué conjunto de códigos de llaves es usado.
Bytes 6-7: NumberOfKeys. Indica la cantidad de llaves.
1.3 Formato de las imágenes del Landsat 7
Después de estudiar la estructura de los formatos TIFF y GeoTIFF, se procedió a leer e
interpretar los ficheros de las imágenes del Landsat 7, utilizando la herramienta
WinHex, y se arribó a las siguientes conclusiones:



El orden de los bytes utilizado en el fichero es el II, o sea, el orden de los bytes
es del menos significativo al más significativo.
El fichero tiene un único IFD, lo que implica una única imagen.
El IFD identificado, tiene 18 entradas. A continuación se muestran los nombres
de las mismas con sus respectivos identificadores, y en el Anexo 1 se describe
cada una de ellas.
14
Capítulo 1 Imágenes del satélite Landsat 7


















NewSubfileType (FEh)
ImageWidth (100h)
ImageLength (101h)
BitsPerSample (102h)
Compression (103h)
PhotometricInterpretation (106h)
StripOffsets (111h)
Orientation (112h)
SamplesPerPixel (115h)
RowsPerStrip (116h)
StripByteCounts (117h)
XResolution (11Ah)
YResolution (11Bh)
PlanarConfiguration (11Ch)
ModelPixelScaleTag (830Eh)
ModelTiepointTag (8482h)
GeoKeyDirectoryTag (87AFh)
GeoAsciiParamsTag (87B1h)
De todas estas, las últimas cuatro son las que describen la información
geográfica. El resto, son etiquetas clásicas del formato TIFF.
15
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
Capítulo 2 Los gaps producidos por el SCL-off, y las
metodologías para corregirlos
El Landsat 7 fue lanzado el 15 de Abril de 1999. En Mayo de 2003, el sensor ETM+
comenzó a presentar fallas en el SLC, por lo cual este se encuentra apagado, y las
escenas adquiridas desde el 14 de Julio de ese año, presentan líneas de datos inválidos
(gaps), como se muestra en la Figura 6.
Figura 6 Fragmento de imagen con gaps producidos por el SLC-off.
El SLC es la parte del sensor ETM+ que compensa el movimiento hacia adelante del
satélite durante la adquisición de las imágenes. Sin el SLC, el área escaneada por el
sensor delinea un patrón de zigzag como se describe en la Figura 7, causando que parte
de los datos registrados estén duplicados y, la parte correspondiente al terreno bajo el
satélite, no sea registrada en absoluto, quedando las regiones duplicadas y las no
registradas de la imagen con el valor 0. Esto significa que dichas imágenes contienen
datos reales intercalados con franjas negras (el equivalente al valor 0 en todos los
canales).
Figura 7 Camino del escáner ETM+ con y sin el SLC, tomada del sitio de la USGS Landsat Project´s SLC-off
16
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
Los gaps provocan aproximadamente, la pérdida de un 22% de la información de cada
imagen. Están dispuestos en franjas inclinadas hacia la izquierda unos 8 o respecto a la
orientación horizontal debido a la rotación de la imagen, y aparecen en intervalos de
33 píxeles. Estas franjas tienen hasta 15 píxeles en el borde de la imagen, y van
disminuyendo gradualmente camino al centro hasta desaparecer. Según el USGS, esta
zona libre de gaps, tiene una extensión de 22km de ancho aproximadamente. Una
anchura de 15 píxeles combinado con una distancia de 33 píxeles significa que al borde
de la escena, el 45% de los datos se pierden.6 (6)
En los bordes de las franjas de gaps, pueden existir píxeles que no sean registrados
como gaps en todas las bandas, por el ETM+. La amplitud de las lagunas en los datos,
varía para las diferentes bandas espectrales. Debido a esto, al combinar las bandas
algunos gaps pueden quedar con un color distinto de negro, como se muestra en la
Figura 8. 7
Figura 8 Fragmento de una imagen, resultado de la combinación de las bandas 3, 2, 1.
En una escena, no es posible determinar la posición en la que aparecerán las rayas. Por
tanto, no se puede estimar de manera confiable cuántas imágenes serán necesarias
para un rellenado completo de las mismas. (6)
En la secuencia de escenas tomadas a una misma localización geográfica, las franjas de
datos inválidos se van desplazando, hasta coincidir nuevamente en un ciclo de 4
tomas. Es esta característica la que permite sentar las bases para diseñar y proponer
metodologías para eliminar los gaps en las imágenes del Landsat 7, aprovechando los
valores de los píxeles válidos que se corresponden geográficamente a los mismos en
otras escenas.
6
Esto se agrava por el hecho de que el resto de los píxeles pueden estar sujetos a la cobertura de nubes.
Este aspecto puede ser importante a la hora de determinar si se van a eliminar los gaps de las imágenes banda a
banda o no.
7
17
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
2.1 Análisis de las metodologías conocidas para la eliminación de
los gaps
La existencia de vacíos de datos (data gaps) es un fenómeno típico en las imágenes
remotas y, su ocurrencia y dinámica, pueden responder a motivos naturales muy
comunes como cobertura de nubes y sombras, o instrumentales como son el Rayado
Linear (Line Striping), relativamente común en Landsat 5 TM, y el SLC_off existente en
todas las imágenes Landsat 7 ETM+ posteriores al 31 de Mayo del 2003, dificultad que
se mantendrá, al menos, hasta el 2011 (7)& (8). Esto provoca que, en la búsqueda de
viabilizar el trabajo de los especialistas, se imponga la necesidad de corregirlas.
Para ello, existen diversas técnicas (9) & (10), en función de las cuales se han diseñado
distintas metodologías, que pueden ser separadas en tres grandes grupos (7):

Basados en múltiples imágenes: los gaps de una imagen primaria, son
reconstruidos usando otras imágenes, que contienen información válida en la zona
correspondiente.
En este grupo se encuentran, las técnicas de Ajustes Lineales Locales del
Histograma (Local Linear Histogram Match, LLHM (6)) y las de Ajuste de
Histograma para la imagen completa (Histogram Specification), que funcionan con
datos seleccionados manual o automáticamente para toda o parte de las imágenes,
y favorecen el ajuste radiométrico; las basadas en la Calibración Lineal Empírica
(Empirical Line Calibration) que funcionan sobre la regresión lineal de puntos
seleccionados por sus características de terreno y su respuesta espectral; y la
basada en la Transformación de las Componentes Principales (PCT) que convierte
los datos de la imagen que se utilizará para rellenar, a las características de la
imagen primaria que presenta los vacíos.
El problema de estas técnicas surge cuando existen diferencias importantes entre
los datos de las distintas imágenes, debido a cambios en el terreno, atmosféricos o
de la radiación solar, entre otros.

Basados en una sola imagen: funcionan utilizando las correlaciones entre los
píxeles de la imagen, obtenidas por técnicas geoestadísticas de interpolación,
donde las áreas vacías son reconstruidas usando datos válidos de la propia imagen.
En este grupo se encuentran técnicas sencillas como el reemplazo de los píxeles
vacíos por sus vecinos, tales como Vecino más cercano, Máxima Verosimilitud,
Mahalanobis (11) y otras más complejas como el Krigging ordinario.
Estas técnicas tienen como principal problema que los píxeles son totalmente
creados vía interpolación y sus resultados son variables en cuanto a confiabilidad.
18
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos

Híbridos: Este tercer grupo aprovecha las sinergias existentes entre los dos
anteriores.
Incluye técnicas como, la del relleno de las áreas vacías que usan datos válidos de
la propia imagen, aplicando un proceso de interpolación basado en la información
de los bordes, con otra imagen, como el caso del CoKrigging; o usando un enfoque
de segmentación que utiliza la información obtenida de otras imágenes para
establecer una rutina de interpolación dentro de los límites definidos para cada
segmento.
La utilidad de estas técnicas se ha demostrado en trabajos a escalas regionales,
pero no se recomienda para trabajos de mayores resoluciones.
Del análisis de las metodologías, la revisión bibliográfica existente sobre el tema donde
se muestran ejemplos de métodos que se aplican (12) & (13), y el uso de algunos de
ellos por un grupo de especialistas en Procesamiento Digital de Imágenes de
Teledetección sobre la escena 15-458, se llegó a la conclusión de que el grupo de
métodos basados en ajustes radiométricos, era más confiable que el basado en
interpolaciones de los datos de una misma imagen y que dentro de ellos, el Phase 2
Gap-Fill Algorithm (14), propuesto y utilizado por el USGS, basado en un Ajuste Lineal
Local del Histograma, era el más conveniente, y brindaba los mejores resultados en la
corrección (relleno) de las imágenes del Landsat 7 con el problema SLC-off, así como
para el relleno en las mismas, de los vacíos provocados por nubes y sus sombras, al
obtenerse resultados prácticamente sin errores y sin huellas en las áreas corregidas.
Debe observarse que hasta donde se conoce, el algoritmo mencionado anteriormente,
no está implementado en ningún software, descontando por supuesto el desarrollado
por el USGS.
Se señala (6) que para el procedimiento escogido, el problema radica en que no
retiene la relación entre los píxeles de la imagen, ya que el ajuste utilizando una
pequeña ventana siempre causa que los píxeles de la imagen de relleno se ajusten a
los de la imagen rellenada, incluso cuando no sea conveniente9, pues los métodos
basados en una pequeña ventana, son una mezcla de ajuste radiométrico con
interpolación, lo cual no es recomendable cuando se desea preservar cuanto sea
posible, el estado real de las imágenes, evaluado de mayor importancia que el
resultado con un buen aspecto.
Se consideró que cuando se deseen imágenes que tengan el menor grado de
interpolación posible, mantengan la resolución original y sean, no fotografías casi
instantáneas de cambios de ciclo corto, sino que muestren el estado general de un
8
Cubre la Península de Zapata y el Centro-Occidente de Cienfuegos. Es considerada una de las más complejas en el
país por su diversidad y cambios frecuentes debidos a la humedad del terreno.
9 Como por ejemplo, si hubieran cambios en el uso del terreno, en la fenología de la vegetación o en las condiciones
de humedad, etc.
19
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
territorio en un período anual, de temporadas (seca o lluvia, verano o invierno), etc.,
y que además puedan ser procesadas y comparadas por métodos automáticos o
semiautomáticos, el alegado problema pasa a ser irrelevante y se convierte en ventaja,
en especial el “buen aspecto” que implica la desaparición total o casi total de las
huellas de los rellenos, cuestión que en los restantes métodos basados en varias
imágenes se mantiene en algún grado e impide o distorsiona las clasificaciones.
2.2 Metodología implementada
2.2.1 Justificación teórica
Las imágenes correspondientes a una misma escena tomadas en distintos espacios de
tiempo, comúnmente muestran diferencias en el grado de brillantez, es decir,
presentan variaciones en sus histogramas de frecuencia de niveles de gris, lo cual
puede ser causado por el de vapor de agua distribuido en la atmósfera, por efectos
como neblinas fundidas con objetos sobre el terreno, o elevaciones del terreno, entre
otros.
En la búsqueda de lograr un correcto rellenado de los gaps, se diseñó una metodología
que ajusta las imágenes radiométricamente10, para tener en cuenta los aspectos
planteados.
2.2.1.1 Ajuste de histograma
Sean y dos niveles de gris continuos (considérense variables aleatorias), y sean
y
sus funciones de densidad continuas correspondientes. y denotan
los niveles de gris de las imágenes de entrada y salida respectivamente. Se puede
estimar
de la imagen de entrada dada, mientras que
es la función de
densidad de probabilidad especificada que se desea para la imagen de salida.
Sea una variable aleatoria con la propiedad
donde es una variable falsa (dummy) de integración. Se reconoce esta expresión
como una versión continua de ecualización de histogramas11.
Supongamos que se define una variable aleatoria con la propiedad
10
Ajuste radiométrico: Consiste en el macheo de dos imágenes, analizando los niveles de intensidad, de manera que
se ajustan los valores radiométricos de una imagen con respecto a otra.
11
ecualización de histogramas: Consiste en determinar una función de trasformación que busca producir una
imagen de salida con un histograma uniforme.
20
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
donde
es una variable dummy de integración.
Igualando
y
asumiendo que
, se obtiene que satisface la condición
existe y que satisface las condiciones
i.
es monótona decreciente en el intervalo
normalizado al intervalo
ii.
para todo
, niveles de gris
La ecuación
a través de
muestra que una imagen con una función de densidad
de probabilidad especificada puede ser obtenida de una imagen de entrada siguiendo
el siguiente procedimiento:
1.
2.
3.
4.
Obtener la función de transformación
usando
Usar
para obtener la función de transformación
Obtener la función de transformación inversa
Obtener la imagen de salida aplicando
a todos los píxeles en la imagen de
entrada.
El resultado de este procedimiento será una imagen cuyos niveles de gris ( ) tienen la
función de densidad de probabilidad especificada
.
Afortunadamente el problema de la ecualización de histogramas se puede simplificar
en el caso discreto (15). La formulación discreta de
está dada por
donde es el número total de píxeles de la imagen, es la cantidad de píxeles con
nivel de gris , y es el número discreto de niveles de gris. Similarmente la
transformación discreta de
se obtuvo del histograma
y
tiene la forma
12
Finalmente, la versión discreta de la ecuación
12
La variable
es dada por
fue adicionada para ganar claridad en la discusión que sigue.
21
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
o, según
, por
Las ecuaciones
hasta la
son las bases para el macheo de histogramas de
imágenes digitales.
es una mapeo de los niveles de gris de la imagen original a los
correspondientes .
calcula una función de transformación del histograma
. Dos de las funciones de transformación más conocidas son la Gaussiana y la
lineal.
2.2.1.2 Modelo de regresión lineal
Como el problema será tratado entre dos imágenes, solamente serán consideradas dos
variables en el modelo lineal, por lo cual, este vendría dado por la ecuación de una
recta incluyendo el error que se pueda cometer:
donde:
y
y
son los parámetros de la ecuación de regresión lineal (coeficientes),
son las variables (valores de intensidad de las imágenes),
es el término de perturbación (o error) estocástica.
En el modelo que nos ocupa,
indica el intercepto con el eje , y es la pendiente
de la recta, que expresa en cuánto varía al producirse un incremento unitario en . A
esta última se le denomina “Coeficiente de Regresión”.
Antes de continuar, debe ser aclarado que el término de perturbación estocástica es
una variable aleatoria no observable, que toma valores positivos ó negativos, y que se
puede considerar una variable que sustituye a todas las que puedan afectar a , pero
por una ó varias razones de medición u obtención de datos, no se puede incluir en el
modelo.
El proceso de estimar los parámetros de la ecuación a partir de los valores disponibles,
recibe el nombre de “Ajuste de Curva”. Con el propósito de minimizar los errores de
estimación, se emplea el Método de los Mínimos Cuadrados Ordinario (MMCO).
Se denomina error de estimación (o residual) a la diferencia entre los valores reales
( ) y sus estimados ( ), y se denota como
, por lo que se puede definir la
ecuación de regresión a partir del criterio de que la suma de los residuos
resulte lo más pequeña como sea posible.
22
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
Adoptando el método de los mínimos cuadrados:
se obtendrían entonces los únicos estimadores
y
de
y
, que producen el
valor más pequeño posible de
, mediante un sencillo cálculo diferencial. Para ello
se hallan la primera y segunda derivada parcial respecto a
y
y se igualan a 0.
Este proceso de diferenciación produce el siguiente sistema de ecuaciones normales:
Para ganar claridad en la obtención de los estimadores
método matricial.
y
, se trabajará con el
Sea la ecuación de regresión estimada, la siguiente ecuación matricial:
donde:
Aplicándole el método de los mínimos cuadrados antes mencionado para poder
estimar las , se obtienen las siguientes ecuaciones normales:
Por tanto es de interés saber a qué son iguales
23
y
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
donde la inversa de
es:
Finalmente:
2.2.2 Metodología
Para rellenar los gaps provocados por el problema del SLC-off en una imagen, es
necesario procesar cada una de las ocho bandas en escala de grises que la componen,
de forma independiente. El algoritmo seleccionado en este trabajo, recibe como
entrada dos escenas correspondientes a una misma banda de las imágenes a corregir,
primaria y secundaria (o de relleno), y devuelve una escena cuyos datos válidos serán
los mismos de la escena primaria unidos a los gaps que se hayan podido rellenar. Para
ello, se empleó la siguiente metodología:
I.
II.
Preparar las escenas de trabajo utilizando el programa de procesamiento de
imágenes ENVI, para pasarlas como una entrada correcta al algoritmo
seleccionado.
Implementar un algoritmo de relleno utilizando el proceso de macheo de
histogramas propuesto en el Phase 2 Gap-Fill Algorithm.
I. Para que el algoritmo sea efectivo, las escenas de entrada deben cumplir dos
condiciones fundamentales13.
i. Deben tener el mismo tamaño en cuanto a filas y columnas, y corresponderse a
la misma localización geográfica.
ii. Deben estar libres de nubes y sus sombras.
Producto del movimiento de rotación de la Tierra, o del ángulo desde el cual el satélite
toma las imágenes, puede suceder que las escenas no tengan una misma resolución, o
13
Otros preprocesamientos que se sugieren para obtener un mejor resultado son los mencionados en el Anexo 2.
24
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
que estén ligeramente desfasadas. Por tal motivo, es necesario hallar una zona que sea
cubierta por todas. Esto se logra con el ENVI, y una vez detectada, se recorta
manualmente cada escena de trabajo.
Por otra parte, las nubes, debido a la alta intensidad de luz que tienen, pueden
interferir de manera desfavorable en el proceso de corrección. Para eliminarlas, se
detectan manualmente junto a sus sombras, y se sustituyen los valores que ocupan,
por el valor 0 en escala de grises, para posteriormente tratarlas como al resto de los
gaps.
II. Denotemos por , al conjunto de escenas obtenidas en I. Se seleccionan del mismo,
dos escenas, una primaria y una de relleno (tratando de que sean las más adecuadas
en cuanto a calidad, y que tengan un nivel de luminosidad similar). Estas serán la
entrada del algoritmo implementado, en el cual, se siguen los pasos expuestos a
continuación:
1) Buscar las fronteras de la imagen real en la escena primaria, para analizar
solamente aquellos puntos que son gaps.
2) Buscar las fronteras de la imagen real en la escena de relleno.
3) Dividir la imagen en cuatro cuadrantes, y para cada uno de ellos hacer(Ver en el
Anexo 3 el diagrama de bloques):
A. Por cada píxel inválido contenido en la imagen real de la escena
primaria (hallado desde el centro hacia los bordes laterales14), si el píxel
correspondiente en la escena de relleno es válido:
a) Buscar una ventana que se vaya extendiendo por los vecinos que lo
rodean, hasta llegar a la mínima cantidad requerida de píxeles
comunes, 144 por sugerencia de USGS (14). (Ver Figura 9).
b) Calcular los coeficientes de la función de regresión lineal entre los
píxeles comunes.
c) Ajustar los coeficientes a un rango razonable.
d) Calcular la función con el valor del píxel válido.
e) Asignar el valor calculado al píxel inválido en la escena primaria.
4) Si aún quedan píxeles inválidos en la imagen real de la escena primaria:
a) Tomar de otra escena de relleno.
b) Volver al paso 2.
5) Fin.
14
Refiriéndose a la escena primaria.
25
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
Figura 9 En las ventanas de ejemplos, los píxeles negros son gaps y los blancos son datos válidos. Como las
imágenes están georreferenciadas, la localización del píxel (x,y) es la misma sobre el terreno de ambas escenas, y
los píxeles comunes son aquellos que son válidos en las dos. La ventana de píxeles comunes va creciendo
alrededor del gap tratando de mantener la forma cuadrada, hasta alcanzar el número mínimo de píxeles
comunes requeridos.
Solución Conceptual de A
Esta parte de la metodología no modifica el Phase 2 Gap-Fill Algorithm, propuesto por
la USGS (Anexo 3).
a. Se buscan los píxeles comunes como se ilustra en la Figura 9, denotando por
y
, a los conjuntos de valores hallados para las escenas primaria
y de relleno respectivamente.
b. Construir la función de regresión lineal asociada al problema
y calcular los coeficientes por el Método de los Mínimos Cuadrados Ordinario:
Haciendo
y
, se obtiene
26
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
c. Para prevenir datos fuera del dominio (outliers), que tienen un efecto fuerte sobre
la transformación, se fija el máximo valor del
, (
), para acotar los
valores permisibles de la forma:
Si no se cumple esta condición, entonces recalcular el
media y la desviación estándar:
y el
usando la
donde:

la media de los píxeles comunes hallados en la imagen primaria
,

la desviación estándar de los píxeles comunes hallados en la imagen
primaria
,

la media de los píxeles comunes hallados en la imagen de relleno
,

y la desviación estándar de los píxeles comunes hallados en la imagen de
relleno
.
Luego chequear nuevamente la condición
cumplirse hacer:
27
para los valores obtenidos, de no
Capítulo 2 Los gaps producidos por el SCL-off, y las metodologías para corregirlos
d. Calcular
donde
es el color del píxel de relleno.
e. Finalmente hacer
28
Capítulo 3 Implementación
Capítulo 3 Implementación
3.1 Tecnologías aplicadas
El desarrollo de una herramienta que posibilitara poder cumplir con el objetivo
propuesto en este trabajo, requirió el estudio y aplicación de las tecnologías expuestas
brevemente a continuación.
3.1.1 .NET Framework
La aparición de .NET Framework o Plataforma .NET, fue una revolución en el mundo
del desarrollo de aplicaciones computacionales. Creada por Microsoft, el diseño de
esta plataforma tuvo en cuenta la variedad de lenguajes que usan los desarrolladores
de software y la creciente necesidad de interacción entre bibliotecas desarrolladas en
distintos lenguajes. Por esta razón surge el Common Language Specification (CLS) que
es un conjunto de especificaciones para los compiladores que deseen sumarse a la
plataforma, y tiene como condición primaria generar código Microsoft Intermediate
Language (MSIL). En la Plataforma .NET es posible programar en cualquier lenguaje
siempre que el compilador utilizado cumpla con el CLS.
La Plataforma .NET como infraestructura sobre la que se reúne todo un conjunto de
lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones,
ofrece un entorno de ejecución altamente distribuido, que permite crear aplicaciones
robustas y escalables.
Sobre la plataforma se ejecutan las aplicaciones en lugar de hacerlo directamente
sobre el sistema operativo. Contiene elementos como el Common Language Runtime
(CLR), ASP.NET, Web Service, Windows Forms y bibliotecas de clases y utilitarios.
El CLR es el motor donde se ejecutarán las aplicaciones, y es el encargado de convertir
el código MSIL en lenguaje de máquina. De esta forma, indistintamente de la
herramienta de desarrollo utilizada y del lenguaje elegido, el código generado es
siempre el mismo. Este código es transparente al desarrollo de la aplicación pues es
generado automáticamente por el compilador.
Sin embargo, el código generado en MSIL no es código máquina y por tanto no puede
ejecutarse directamente. Se necesita un segundo paso en el que una herramienta
denominada compilador JIT (Just-In-Time) genera el código máquina real que se
ejecuta en la plataforma que tenga la computadora. La compilación JIT la realiza el CLR
a medida que se invocan los métodos en el programa y, el código ejecutable obtenido,
se almacena en la memoria caché de la computadora, siendo recompilado sólo cuando
se produce algún cambio en el código fuente.
29
Capítulo 3 Implementación
La Plataforma .NET provee bibliotecas muy útiles que brindan clases, interfaces y
herramientas que proporcionan acceso a la funcionalidad del sistema. Estas bibliotecas
propician la interoperabilidad entre lenguajes de programación integrados a la
plataforma, puesto que permiten usar una misma vía de comunicación con el CLR.
La biblioteca de clases constituye una colección orientada a objetos de tipos
reutilizables que se pueden emplear para desarrollar aplicaciones que abarcan, desde
las tradicionales herramientas de interfaz gráfica de usuario (GUI) o de línea de
comandos, hasta las aplicaciones basadas en las innovaciones más recientes
proporcionadas por ASP.NET, como los formularios Web Forms y los servicios Web
XML (16).
3.1.2 El lenguaje de programación C#
C# es un lenguaje de propósito general diseñado por Microsoft para la Plataforma
.NET. Su sintaxis y estructuración es muy parecida a la de los lenguajes C++ y Java,
tomando las mejores bondades de los mismos. Como principales características se
encuentran su sencillez, modernidad, amplio soporte a la orientación a objetos,
orientación a componentes, gestión automática de memoria, seguridad de tipos,
instrucciones seguras, sistema de tipos unificado, extensibilidad de tipos básicos,
extensibilidad de operadores y extensibilidad de modificadores entre otras (17).
3.1.3 WinHex
WinHex es un editor hexadecimal universal muy útil para el procesamiento de datos a
bajo nivel, capaz de cargar y leer ficheros grandes (18).
3.1.4 ENVI (Environment for Visualizing Image)
Es un moderno sistema de procesamiento de imágenes diseñado para proporcionar
análisis multiespectral de los datos obtenidos por teledetección desde aviones y
satélites. Proporciona un entorno potente, novedoso y de fácil uso para presentar y
analizar imágenes de cualquier tamaño y tipo de datos en un amplio rango de
formatos.
3.2 Rellenando los gaps
3.2.1 Manejador del formato GeoTIFF
Para poder garantizar que al tratar las imágenes, estas mantuvieran el formato
GeoTIFF y siguieran georreferenciadas, era necesario modificar solamente la parte del
fichero en la cual estuvieran los datos de la imagen en sí, o sea, los bytes que
representaran los píxeles de la misma.
30
Capítulo 3 Implementación
Luego, una vez conocida la estructura de los ficheros con dicho formato, se imponía la
necesidad de un manejador que permitiera interpretar la información contenida en los
mismos. Para ello se implementó una clase denominada TiffManager, cuyas
funcionalidades se explican a continuación.
La clase TiffManager
Esta clase recibe la localización del fichero a interpretar, y lee el mismo acorde a las
especificaciones del formato explicadas anteriormente. Se puede decir que desglosa el
fichero en tres bloques esenciales de información:



Header: Secuencia de bytes previa a los datos de la imagen.
Bitmap: Secuencia de bytes que representan los datos de la imagen.
Footer: Secuencia de bytes posterior a los datos de la imagen.
Esto permite hacer copia de un fichero sin que los metadatos y la estructura interna
del mismo varíen, simplemente, construyendo otro fichero con el mismo Header, otro
Bitmap con las mismas propiedades y diferentes valores en los datos y, el mismo
Footer. Por supuesto, estos bloques dispuestos en el mismo orden en que se
encuentran en el fichero fuente.
Además, se implementaron las clases:


IFD_Entry: Representa una entrada de un IFD, por lo cual tiene como
campos: código, tipo, tamaño y datos que le corresponden.
Entry_Type: Representa el tipo de entrada de un IFD, y tiene como campos
un tipo, y la cantidad de bytes necesarios para representarlo, lo cual facilita
saber en dependencia del tipo, si los últimos cuatro bytes correspondientes a
una entrada constituyen los datos que la representan, o el offset a los mismos.
Estas clases permiten poder almacenar en el manejador los metadatos de forma
fácilmente legible, los cuales pueden ser muy útiles en tareas futuras, en caso de
necesitar interpretar la información geográfica de la imagen, por citar un ejemplo.
3.2.2 La clase Scene
Se diseñó la clase Scene para poder representar las imágenes satelitales con los datos
que le proporciona un manejador. Además de los elementos expuestos en la
explicación de la clase TiffManager (Header, Footer y Bitmap), una escena tiene
otros campos como: el offset al Footer, la dirección del camino donde se localiza y el
nombre, los cuales serán necesarios a la hora de salvar la imagen correspondiente a la
escena.
31
Capítulo 3 Implementación
También tendrá un arreglo de tamaño 257, donde las primeras 256 posiciones
almacenarán la frecuencia del color con valor i-ésimo en la escala de grises en la
imagen real (histograma), y en la última estará guardado el máximo valor alcanzado,
para poder escalar en dependencia del mismo, la gráfica que ilustre dicho histograma.
Por otra parte, en cada imagen se buscan las fronteras de la imagen real, para
determinar la región en que se enmarca y, evitar procesar píxeles que no pertenezcan
al interior de la misma, los cuales, representan un por ciento significativo. Luego, una
escena además, tendrá dos listas que almacenarán en la posición i-ésima, la (el
índice correspondiente a la columna) del píxel que se encuentra en las fronteras
izquierda y derecha de la fila i-ésima, respectivamente.
Buscando las fronteras de la imagen real
Dado que para que las imágenes satelitales constituyan una entrada válida para el
algoritmo de relleno seleccionado, son recortadas de manera que se corresponden en
localización geográfica y tamaño, las fronteras de la imagen real en las mismas pueden
describir diferentes formas.
Las regiones de una imagen recortada se ilustran en la Figura 10. La parte gris
representa la imagen real; la parte negra, los píxeles que no serán analizados; y los
puntos amarillos representan los vértices del polígono que circunscribe a la imagen
real.
Figura 10 Representación de las regiones de una imagen satelital.
La metodología que se siguió para hallar las fronteras fue la siguiente:
1. Avanzando desde las esquinas y hacia el interior de la imagen, se buscan los
vértices del polígono (máximo ocho).
32
Capítulo 3 Implementación
2. Se calculan las pendientes de las rectas que constituyen las fronteras y con ello
se denotan las ecuaciones de las mismas.
3.
, se calculan las correspondientes a
las fronteras izquierda y derecha de la imagen real.
Una vez determinadas las fronteras, se procedió a rellenar los gaps.
3.2.3 Recursos empleados para el procesamiento eficiente de las
imágenes
Para trabajar eficientemente con procesamiento de imágenes, se recomienda cargar
en memoria un bloque de información, y acceder directamente a la misma, a través
de un puntero que se vaya moviendo y leyendo los bytes guardados, lo cual agiliza
enormemente el proceso. Para poder hacer esto en C#, se debe especificar en las
propiedades del proyecto que se permite trabajar en código inseguro (unsafe) y,
usando los ensamblados System.Drawing y System.Drawing.Imaging, se
facilitan funcionalidades de las clases Bitmap y BitmapData, las cuales se exponen a
continuación.
LockBits y UnLockBits: Son funciones públicas de la clase Bitmap para bloquear y
desbloquear un área especificada en la memoria respectivamente. Los parámetros
que recibe la función LockBits son, un objeto de tipo Rectangle que especifica el
área que será bloqueada, y dos enteros que especifican el nivel de acceso y el formato
de la imagen. Estos dos últimos, a través de los enumeradores ImageLockMode y
PixelFormat, los cuales se expondrán seguidamente. LockBits devuelve un objeto
de la clase BitmapData, que posteriormente recibirá UnLockBits como parámetro.
ImageLockMode: Los posibles valores son:




ReadOnly: Especifica que la imagen fue bloqueada solamente para leer.
ReadWrite: Especifica que la imagen fue bloqueada para leer o escribir.
WriteOnly: Especifica que la imagen fue bloqueada solamente para escribir.
UserInputBuffer: Especifica que el buffer usado para leer o escribir los
datos de la imagen es reservado por el usuario.
PixelFormat: Define el número de bits asociado a un píxel. En este caso, las
imágenes tienen 8 bits por píxel (8bpp).
BitmapData: Esta clase especifica los atributos de una imagen de mapa de bits.


Scan0: Obtiene o establece la dirección de los datos del primer píxel en el
mapa de bits. También corresponde a la primera línea de exploración del mapa
de bits.
Stride: Obtiene o establece el ancho de paso (también denominado ancho
de exploración) del objeto Bitmap.
33
Capítulo 3 Implementación



Width: Obtiene o establece el ancho en píxeles del objeto Bitmap. También
corresponde al número de píxeles de una línea de exploración.
Height: Obtiene o establece el alto en píxeles del objeto Bitmap. A veces se
denomina número de líneas de exploración.
PixelFormat: Obtiene o establece el formato de la información de píxeles en
el objeto Bitmap que este objeto BitmapData devuelve.
A continuación, se ilustra un ejemplo de cómo aplicar lo explicado anteriormente para
ganar rapidez al trabajar con las imágenes.
Código 1 Ejemplo de lectura/escritura de un bitmap eficientemente, cargándolo en memoria.
3.2.4 La clase ImageProcessor
Esta clase fue diseñada para procesar las imágenes, así que más bien es utilitaria, por
lo cual, todos sus miembros son estáticos, y de esta manera no hay necesidad de
instanciarla.
La “filosofía de los cuatro cuadrantes”
Previamente a aplicar el algoritmo para rellenar los gaps, dada la disposición de las
franjas de gaps en las imágenes y, aprovechando el hecho de que en el centro no hay
presencia de los mismos, se decidió dividir la imagen en cuatro fragmentos: superior
izquierdo, superior derecho, inferior izquierdo e inferior derecho. Luego, se aplicó el
algoritmo de relleno seleccionado a cada uno, de manera que los datos se analizaron
desde el centro y hacia las esquinas.
Todo esto, con el objetivo de aportar la mayor cantidad de datos válidos originales (o
sea, que inicialmente no eran gaps) a la función de regresión lineal, a la hora de
calcular el valor del color de relleno.
34
Capítulo 3 Implementación
Miembros de la clase
A continuación se exponen los miembros de la clase ImageProcessor entre los que se
encuentra implementado, finalmente, el algoritmo de relleno seleccionado para
cumplir el objetivo de este proyecto.
Gap_Fill:
En esta función (Ver Código 2) se bloquean los bitmaps correspondientes a
las imágenes primaria y secundaria, y se llama al método que rellena los gaps para
cada cuadrante. Es válido destacar que, aunque se trabajó por cuadrante, se tuvieron
que bloquear en memoria las imágenes procesadas completas, para no restringir la
búsqueda de los píxeles comunes a un solo cuadrante, y tratar siempre de buscar la
ventanita que los contenga, con el gap analizado lo más centrado posible. Los
parámetros que recibe son los siguientes:
 Bitmap prime_Bmp, fill_Bmp: Especifican los bitmaps correspondientes a las
imágenes primaria y secundaria respectivamente.
 List<int> prime_left_Border, prime_right_Border: Lista de las que
delimitan las fronteras izquierda y derecha de la imagen real en la imagen
primaria respectivamente.
que
 List<int> fill_left_Border, fill_right_Border: Lista de las
delimitan las fronteras izquierda y derecha de la imagen real en la imagen de
relleno respectivamente.
Código 2 Función Gap_Fill
Quarter_Gap_Fill:
Método donde se aplica el algoritmo de relleno seleccionado (Ver
Código 3). Los parámetros que recibe son, además de las fronteras de las imágenes
primaria y secundaria, los siguientes:
35
Capítulo 3 Implementación




Bitmap_Data prime_Data, fill_Data:
especifican los atributos de los
imágenes primaria y secundaria
bitmaps correspondientes a las
respectivamente.
Point pi, pf: Son los dos puntos que determinan el rectángulo
correspondiente al cuadrante analizado desde el centro pi, hasta la esquina pf.
int ptr_Remain: Especifica si en una misma fila el puntero se mueve hacia
adelante o hacia atrás (sus valores posibles son 1 ó -1 respectivamente).
int y_Remain: Especifica si en una misma columna el puntero sube o baja (sus
valores posibles son -1 ó 1 respectivamente)
Nótese como la evaluación de las condiciones para proceder en los ciclos depende
de estos dos últimos parámetros, los cuales son necesarios sobre todo, para
identificar aquellos casos en que la movida del puntero sea hacia atrás en una fila,
o hacia arriba en una columna.
Código 3 Método Quarter_Gap_ Fill, donde se rellenan los gaps, según el proceso de macheo de histogramas
propuesto en el Phase 2 Gap-Fill Algorithm.
Find_NxN:
Función para buscar la ventana de píxeles comunes alrededor del gap que
se está analizando mediante un llamado al método Grow. Devuelve un objeto de tipo
NxN que será explicado más adelante.
36
Capítulo 3 Implementación
Grow:
Método para expandir la ventana de píxeles comunes, tratando de mantener la
forma cuadrada, pero no forzando a ello. Esto lo logra determinando los puntos que
delimitan las filas y columnas a expandir (como se ilustra en el Código 4), los cuales
pasa como parámetro a las funciones Grow_Col y Grow_Row, encargadas de chequear
en la búsqueda de los mismos.
Código 4 Ejemplo de la forma en que se determinan los índices que delimitan las columnas
o filas a expandir.
y Grow_Row: Son los métodos donde se leen desde un punto inicial hasta
uno final pasados por parámetro, una columna o una fila respectivamente, en
búsqueda de píxeles comunes.
Grow_Col
Gain: Función que devuelve un objeto de tipo Co_Vector, con los valores del gain y el
bias requeridos para calcular la función de regresión lineal. Recordemos que estos son
los coeficientes de la ecuación de regresión empleada para calcular el valor del color
de relleno (
). Es en esta función que se calculan y ajustan de
ser necesario, los valores del gain y el bias.
Inside_Real:
Función booleana que determina si un punto está contenido en la
imagen real.
Funciones Window_Mean y Standard_Deviation: Devuelven la media y la desviación
estándar de un conjunto de valores respectivamente.
Además se implementaron las clases a las cuales se hizo referencia anteriormente:

NxN: Representa la ventana de píxeles comunes, contiene dos listas que

almacenan los valores de los datos que les corresponden a estos, en las
imágenes primaria y de relleno respectivamente.
Co_Vector: Representa un vector con los valores de los coeficientes de la
función de regresión que serán empleados, almacenados en los campos gain y
bias.
3.3 Aplicación
Se diseñó una aplicación sencilla (Figura 11) y bastante intuitiva con el objetivo de que
resulte cómoda y práctica a la vez para los usuarios, que permite realizar los
37
Capítulo 3 Implementación
procedimientos correspondientes de corrección de las imágenes. Para su utilización,
se requiere el Sistema Operativo Windows con el .NET Framework 2.0 o superior.
Figura 11 Forma principal de la aplicación implementada
Cada vez que se abre o crea una imagen, se le asocia una escena (Scene) que la
representa. Para poder visualizarla dentro de la aplicación, se diseñó la Forma
View_Form, como se muestra a continuación en la Figura 12.
Figura 12 Ejemplo de la aplicación con dos imágenes cargadas
3.3.1 Opciones del menú


File/Open: Muestra un diálogo que permite seleccionar las imágenes a abrir, las
cuales se visualizan automáticamente.
File/Save: Crea un fichero con extensión .tif, cuyos datos son rellenados con los
Header, Bitmap y Footer correspondientes a la imagen activa.
38
Capítulo 3 Implementación

File/Properties: Muestra las propiedades de la imagen activa.
Para ello se diseñó la Forma Properties, ilustrada en la Figura 13.
Figura 13 Ejemplo de la visualización de las propiedades de una imagen


File/Exit: Cierra la aplicación.
Options/Gap Fill: Muestra un diálogo en el cual se escogen las imágenes
primaria y de relleno, de todas las que se encuentran abiertas (Figura 14). Para
ello es necesario que existan al menos dos, de lo contrario, se mostrará un
mensaje de error para alertar al usuario.
Figura 14 Opción de rellenar los gaps
Una vez seleccionadas las imágenes, se hace un llamado a la función Gap_Fill
de la clase Image_Processor, y se visualiza la imagen rellenada, la cual será
una copia de la primaria, pero su Bitmap será el retornado por esta función. En
39
Capítulo 3 Implementación
la Figura 15 se muestra un ejemplo del resultado de rellenar un fragmento de la
escena 15-45.
Figura 15 Resultado de rellenar los gaps correspondientes a un fragmento de la escena 15-45
Para poder saber si aún existen gaps en esta imagen después de aplicar el
algoritmo de relleno, se puede ver la frecuencia del valor 0 en la gráfica de las
propiedades que representa el histograma correspondiente.
40
Capítulo 4 Resultados
Capítulo 4 Resultados
Los resultados obtenidos al utilizar el software desarrollado fueron efectivos y
satisfacen las expectativas de los especialistas que lo han evaluado.
Los píxeles con datos inválidos producto del SLC-off en las imágenes corregidas, fueron
rellenados con valores que se ajustan a los de los datos válidos de la misma, y para ello
fueron requeridas a lo sumo 5 imágenes. En la Figura 16 se puede observar una
comparación de los resultados alcanzados al procesar imágenes de la escena 15-45
tomadas en Enero del 2009. Nótese cómo en (b) se eliminan los puntos negros pero se
rellenan con valores que resaltan a la vista, dificultad que no está presente en (c).
Figura 16 Comparación de resultados: a) imagen con gaps, b) resultado de corregir los datos con el ENVI, c)
resultado obtenido con la aplicación desarrollada.
Para evaluar la factibilidad del uso del software se realizaron pruebas con la aplicación
para estudiar el tiempo de procesamiento. Estaba demostrado que el algoritmo
funcionaba, pero no se sabía cuánto iba a tardar procesar las imágenes completas o si
las computadoras de las cuales se dispone en Cuba serían capaces de soportarlo.
Se hicieron pruebas con parejas de imágenes de diferentes bandas, se midió el tiempo
de corrida y se calculó la velocidad de procesamiento en estas condiciones. Los
resultados se muestran en la Tabla 3. La máquina tenía las siguientes caracteríasticas:
Velocidad de reloj original: 2667 MHz; procesador Intel Celeron D 331 a 2666 MHz;
caché L1: 16 KB; caché L2: 256 KB; Memoria RAM: 1 GB DDR SDRAM PC3200 (200
MHz)
El tiempo de procesamiento de las imágenes osciló entre 5 y 12 minutos en
dependencia del tamaño, lo que se considera aceptable si se tiene en cuenta el ahorro
de tiempo, dinero y trabajo de especialistas.
41
Capítulo 4 Resultados
Tabla 3 Estudio de la velocidad de procesamiento de las imágenes.
BANDA TAMAÑO x2 (MB)
TIEMPO MINUTOS
RATIO T/T (MB/S)
3
64,22
7,45
0,14
5
64,22
6,1
0,18
4
64,22
5,29
0,20
3
64,22
7,55
0,14
4
64,22
5,3
0,20
1
101,50
10,35
0,16
2
101,50
11,2
0,15
3
101,50
11,28
0,15
4
101,50
11,05
0,15
5
101,50
11,2
0,15
7
101,50
11,15
0,15
Se estima el aporte económico tanto por la utilidad que brindan estas imágenes por su
valor de uso en la obtención de resultados (normalmente puede ser muy superior a las
de su costo directo), como por el gasto en que se incurriría para adquirirlas en el
mercado internacional. Por ejemplo, en este momento están en su fase inicial tres
proyectos de la Unidad Científico Técnica de GEOCUBA de Investigación y Consultoría,
con un valor total de 1 millón de pesos y 5000 CUC, para la elaboración de los mapas
de cobertura forestal y uso de suelos en el país a escalas 1:250.000 y 1:100.000, cuya
realización sólo será posible utilizando las imágenes corregidas con la aplicación
desarrollada.
El trabajo se considera una novedad tecnológica en Cuba.
42
Conclusiones
Conclusiones
Al estudiar el problema expuesto en este trabajo, muchas incógnitas fueron planteadas
ante la incertidumbre de si sería posible o no rellenar correctamente los datos
inválidos de las imágenes del Landsat 7 producidos por el SLC-off y, suponiendo que la
respuesta fuera positiva, si sería factible aplicarlo con el soporte tecnológico que existe
en el país.
Se implementó el proceso de macheo de histogramas del Phase II Gap-Fill Algorithm
para corregir los valores radiométricos perdidos en las escenas del Landsat 7 SLC-off.
Los resultados obtenidos se consideran cualitativamente superiores a los que
tradicionalmente se alcanzaban en el país utilizando la aplicación ENVI.
La inserción de la aplicación desarrollada en diferentes centros del país permitirá la
mejora de los estudios cartográficos y del seguimiento de fenómenos
medioambientales con un considerable ahorro de divisas. Hasta el momento la
aplicación del paquete de softwares ha sido utilizada con éxito en la fase inicial de tres
proyectos de la Unidad Científico Técnica de GEOCUBA y se espera que tenga más
aplicaciones en el futuro inmediato.
43
Recomendaciones
Recomendaciones
En este proyecto, sólo ha sido abordado el problema de los gaps de las escenas del
Landsat 7. Para dar continuidad al trabajo, se recomienda automatizar los procesos
previos de preparación de las imágenes para que cumplan los requerimientos del
algoritmo implementado: tener el mismo tamaño en cuanto a filas y columnas,
corresponderse a la misma localización geográfica, y estar libres de nubes y sus
sombras.
44
<Bibliografía
Bibliografía
1. NASA’s Global Orthorectified Landsat Data Set. Tucker, C. J., Grant, D. M. and Dykstra, J. D.
3, Photogrammetric Engineering & Remote Sensing, Vol. 70, pp. 313-322.
2. USGS. [Online] http://landsat.usgs.gov/products_slc_off_data_information.php.
3. [Online] http://www.gsfc.nasa.gov/IAS/handbook/handbook_toc.html.
4. Formatos Gráficos. López Pérez, Benjamín. España : s.n., 2007, pp. 52-59.
5. [Online] http://www.remotesensing.org/geotiff/spec/geotiffhome.html.
6. Development of an enhanced gap-filling algorithm for Landsat 7 SLC-off data. Menke,
Christian. Göttingen : s.n., Agosto 31, 2007.
7. M. Multi source image reconstruction: exploitation of EO-1/ALI in Landsat-7/ETM+ SLC-off
gap filling. Darvishi B., A., Erasmi, S. and Kappas, M. San José : s.n., 2008. Proceeding of
IS&SPIE's 20th AnnualSymposium, Electronic Imaging Science and technology.
8. Gaps-fill of SLC-off Landsat ETM+ satellite image using a geostatistical approach. Zhang, C.,
Li, W. and Travis, D. 22, 2007, International Journal of Remote Sensing , Vol. 28, pp. 51035122.
9. Evaluation of gap-filled landsat SLC-off imagery for wildland fire burn severity mapping.
Howard, S.M. and Lacasse, J. 2004, Photogrammetric Engineering and Remote Sensing, Vol.
70, pp. 877-880.
10. A multi–scale segmentation approach to filling gaps in Landsat ETM+ SLC–off images.
Maxwell, S.K., Schmidt, G.L. and Storey, J. C. 2007, International Journal of Remote Sensing,
pp. 1109-1111 .
11. Duda, Ricard O. and Hard, Peter A. Pattern classification . Segunda.
12. Masek, J. G. [Online] 2007. http://gls.umd.edu/documents/MDGLS_gapfill.pdf.
13. Curlis, C., Hansen, D. and Simpson, B. [Online] 2005.
http://gis.esri.com/library/userconf/proc07/papers/papers/pap_1854.pdf.
14. USGS. [Online] 2.0, Julio 10, 2004.
http://landsat.usgs.gov/documents/L7SLCGapFilledMethod.pdf.
15. González, Rafael. Digital Image Processing. pp. 92-97.
16. Microsoft Inc. [Online] Microsoft Developer Network Library for Visual Studio 2005..
http://msdn.microsoft.com.
45
<Bibliografía
17. [Online] http://www.devjoker.com.
18. [Online] http://www.x-ways.net/winhex/index-e.html.
19. [Online] http://www.awaresystems.be/imaging/tiff/tifftags/private.html.
20. Lillessand, Thomas M. and Kiefer, Ralph W. Remote Sensing and Image Interpretation. s.l. :
Jhon Wiley & Sons, Inc, 1987.
21. Salinero E., Chuvieco. Fundamentos de Teledetección Aeroespacial. Madrid : s.n., 1990.
22. Gyanesh, C. and Gregory L., S. Initial Data Characterization, Science Utility and Mission
Capability Evaluation of Candidate Landsat Mission Data Gap Sensors. 2007. p. 226, Technical
Report. Landsat Data Gap Study.
23. Storey, J., et al. [Online] 2005. Landsat 7 Scan Line Corrector-Off Gap-Filled Product
Development, 12 pp. http://landsat.usgs.gov/documents/L7SLCGapFilledMethod.pdf.
24. USGS. [Online]
http://landsat.usgs.gov/documents/burn_severity_mapping_slcoff_mckinley.pdf.
25. —. [Online]
http://landsat.usgs.gov/data_products/slc_off_data_products/slc_off_background.php.
26. Scaramuzza, Pat. SLC gap-filled products: Phase one methodology. United States Geological
Survey. 2004. Technical report. 5 pp.
27. Scientists from the USGS, NASA, and the Landsat 7 Science Team Compiled and
summarized by the staff of the U.S. Geological Survey, EROS Data Center. [Online] 2003.
Preliminary Assessment of the Value of Landsat 7 ETM+ Data following Scan Line Corrector
Malfunction. 86 pp. http://landsat.usgs.gov/documents/SLC_off_Scientific_Usability.pdf.
46
Anexos
Anexos
Anexo 1 Descripción de las entradas contenidas en el IFD de las
imágenes del Landsat 7 (19)
Código
FEh
Nombre
NewSubfileType
Tipo
LONG
100h
101h
102h
ImageWidth
ImageLenght
BitsPerSample
SHORT o LONG
SHORT o LONG
SHORT
103h
Compression
SHORT
106h
PhotometricInterpretation
SHORT
111h
StripOffsets
SHORT o LONG
112h
Orientation
SHORT
115h
116h
SamplesPerPixel
RowsPerStrip
SHORT
SHORT o LONG
117h
11Ah
StripByteCounts
XResolution
SHORT o LONG
RATIONAL
11Bh
YResolution
RATIONAL
11Ch
PlanarConfiguration
SHORT
830Eh
ModelPixelScaleTag
DOUBLE
8482h
ModelTiepointTag
DOUBLE
87AFh
87B1h
GeoKeyDirectoryTag
GeoAsciiParamsTag
SHORT
ASCII
15
ModelPixelScaleTag = (ScaleX, ScaleY, ScaleZ)
47
Descripción
Se trata de una indicación general de tipo de
dato
contenido
en
la
subimagen
correspondiente al actual IFD
Anchura de la imagen en píxeles
Altura de la imagen en píxeles
Define el número de bits por componente de
color
Indica el tipo de compresión utilizado en el
fichero
Define cómo deben ser interpretados los
valores de color de la imagen
Indica el offset de la franja del actual IFD. Este
es el campo que permite encontrar los datos
propiamente dichos de la imagen
Indica la orientación de la imagen respecto a
filas y columnas
Es el número de componentes por píxel
Indica la cantidad de filas almacenadas por
franja
Cantidad de bytes por franja
Es el número de píxeles por unidad de
resolución (campo ResolutionUnit) en la
dirección X
Es el número de píxeles por unidad de
resolución en la dirección Y
Indica cómo son almacenadas las componentes
de cada píxel
15
Define la transformación entre la imagen
raster y el modelo de coordenadas espaciales
Almacena el punto de enlace para la
georreferenciación
Referencia al GeoKeyDirectory
Se usa para almacenar todos los valores ASCII
de las GeoKeys, referenciadas en el
GeoKeyDirectoryTag
Anexos
Anexo 2 Otros preprocesamientos que se pueden realizar para
obtener un resultado más efectivo.
48
Anexos
Anexo 3 Diagrama de bloques del Proceso de Macheo de
Histogramas
49
Descargar