4.1. Tutorial 1

El siguiente es un tutorial básico sobre la clasificación de la cobertura del suelo utilizando Semi-Automatic Classification Plugin (SCP). Se asume que tienes un conocimiento básico sobre QGIS.

4.1.1. Tutorial 1: Tu Primera Clasificación de la Cobertura del Suelo

Este es un tutorial básico sobre el uso de SCP para la clasificación de una imagen multiespectral. Es recomendable que leas la Breve Introducción a la Teledetección antes de este tutorial.

El propósito de la clasificación es identificar las siguientes clases de cobertura del suelo:

  1. Agua;
  2. Construcciones;
  3. Vegetación;
  4. Suelo desnudo.

El area de estudio de este tutorial es Greenbelt (Maryland, USA) que es el sitio del Centro de Vuelo Espacial Goddard de la NASA (la institución que liderará el desarrollo del futuro segmento de vuelo Landsat 9).

Mira el vídeo de este tutorial.

http://www.youtube.com/watch?v=fUZgYxgDjsk

4.1.1.1. Descargar los Datos

Vamos a descargar una Satélites Landsat imagen (datos disponibles de el Servicio Geológico de EE. UU.) y usa las siguientes bandas:

  1. Azul;

  2. Verde;

  3. Rojo;

  4. Infrarrojo Cercano;

  5. Infrarrojo de Onda Corta 1;

  6. Infrarrojo de Onda Corta 2.

    Consejo: En caso de que tenga una conexión lenta, puede descargar un subconjuto de imagenes desde este archivo https://docs.google.com/uc?id=18CXceeQrjxQoM5Z80kvlvdTI4SmVBDZn (de 5MB, datos disponibles de el Servicio Geologico de los EE.UU.), descomprima el archivo descargado, y pasar a Convertir datos a Reflectancia de Superficie.

Inicie QGIS y el SCP. Abra la pestaña Descargar productos haciendo clic en el botón download en el Home, o en el SCP menú,

Estamos buscando una imagen especifica adquirida el 16 de abril de 2017 porque está libre de nubes. En Parámetros de búsqueda ingrese las coordenadas del punto:

  • UL: -77 / 39

  • LR: -76.9 / 38.9

    CONSEJO: En general es posible definir las coordenadas del area haciendo clic en el botón pointer, luego haga clic izquierdo en el mapa para el punto UL y haga clic derecho en el mapa para el punto LR.

Seleccionar: guilabel:L8 OLI/TIRS desde la: guilabel:Products input_list y establecer:

  • Date from: 2017-04-16
  • to: 2017-04-16
_images/tutorial_1_1_01.jpg

Buscar productos

Ahora da click en el boton Buscar search_images y luego de unos segundos la imagen se mostrará en el Lista de productos. Da click al elemento en la tabla para mostrar una miniatura de la imagen la cual es útil para verificar la calidad de la imagen y la cobertura de nubes.

_images/tutorial_1_1_02.jpg

Buscar resultados

Ahora da click en el boton image_preview para cargar una muestra de la imagen en el mapa.

_images/tutorial_1_1_03.jpg

Vista previa de la imagen

También podemos seleccionar las bandas a descargar de acuerdo a lo que queramos. En particular, selecciona el boton Opciones de Descarga y selecciona solo las bandas de la imagen Landsat (Las que usaremos en este tutorial): 2, 3, 4, 5, 6, 7, y los datos auxiliares.

_images/tutorial_1_1_04.jpg

Opciones de Descarga

A los efectos de este tutorial, desmarque la opción checkbox :guilabel: Preprocesar imágenes (por lo general, debe dejar esto marcado) porque vamos a preprocesar la imagen en Convertir datos a Reflectancia de Superficie. Para comenzar la descarga de la imagen, haga clic en el botón: guilabel:RUN run y seleccione un directorio donde se guardaran las bandas. La descarga podría durar unos minutos según la velocidad de su conexión a Internet. El progreso de la descarga se muestra en una barra.

«CONSEJO»: La opción checkbox :guilabel: «Solo si la vista previa en capas» permite descargar solo imágenes en la tabla de resultados que se cargan como vistas previas en el mapa. Si esta opción no está marcada, todos los productos de la lista se descargaran.

Despues de la descarga, todas las bandas se cargan automaticamente en el mapa.

_images/tutorial_1_1_05.jpg

Download of Landsat bands

4.1.1.2. Recortar los Datos

Para limitar el area de estudio ( y reducir el tiempo de procesamiento) podemos recortar la imagen.

Primero, necesitamos definir un :guilabel Conjunto de bandas que contienen las bandas que se van a recortar. Abra la pestaña Conjunto de bandas haciendo clic en el boton SCP menú or the SCP dock.

Clic en el boton reload para actualizar el listado de capas, y seleccione las bandas: 2,3,4,5,6, y 7; luedgo haga clic plus para agregar los raster a el :guilabel:`Band set 1.

_images/tutorial_1_clip_1.jpg

Band set for clipping

En: ref: pre_processing_tab abra la pestaña: ref:` clip_multiple_rasters_tab`. Vamos a recortar el: guilabel: Band set 1 que contiene bandas Landsat.

Haga clic en el botón | pointer | y seleccione un área como la siguiente imagen (clic izquierdo en el mapa para el punto UL y clic derecho en el mapa para el punto LR), o ingrese los siguientes valores:

  • UL: 330015 / 4324995
  • LR: 349995 / 4309995
_images/tutorial_1_clip_2.jpg

Recortar área

Clic en el botón RUN run y seleccione un directorio donde se guardaran las bandas recortadas. Se crearán nuevos archivos con el prefijo de nombre de archivo definido en Output name prefix. Cuando se completa el proceso, los rásters recortados se cargan y se muestran.

_images/tutorial_1_clip_3.jpg

Bandas recortadas

4.1.1.3. Convertir datos a Reflectancia de Superficie

Convertir a reflectancia (see Radiancia y Reflectancia) se puede realizar automaticamente. El archivo de metadatos (un archivo .txt cuyo nombre contiene `` MTL “”) descargado con las imágenes contiene la información requerida para la conversión. Leer Conversión de la imagen a Reflectancia para obtener información sobre el Reflectancia en el Techo de la Atmósfera (TOA) and Reflectancia de la Superficie.

Para convertir las bandas a reflectancia, abra: ref: pre_processing_tab haciendo clic en el botón | preprocessing | en el: ref: SCP_menu o el: ref:` SCP_dock`, y seleccione la pestaña: ref: landsat_tab.

haga clic en el botón Directorio que contiene bandas Landsat open_dir y seleccione el directorio de bandas Landsat recortadas. La lista de bandas se carga automáticamente en la tabla. Metadatos.

Haga clic en el botón Seleccionar archivo MTL open_file y seleccione el archivo de metadatos LC08_L1TP_015033_20170416_20170501_01_T1_MTL.txt del directorio de imágenes descargadas de Landsat. La información de los metadatos se agrega a la tabla:ref:landsat_metadata.

Para calcular: ref: Surface_conversion vamos a aplicar: ref:` DOS1 corrección`; por lo tanto, habilite la opción | casilla de verificación | : guilabel: Aplicar la corrección atmosférica DOS1.

** CONSEJO **: en general, se recomienda realizar la corrección atmosférica de DOS1 para toda la imagen (antes de recortar la imagen) para mejorar el cálculo de los parámetros basados en la imagen.

para el proposito de este tutorial, desmarque la opción | casilla de verificación | Crear conjunto de bandas y usar herramientas de conjuntos de bandas porque vamos a definir esto en el siguiente paso Defina el conjunto de bandas y cree el archivo de entrada de entrenamiento..

Para comenzar el proceso de conversión, haga clic en el botón: guilabel: RUN | ejecutar | y seleccione el directorio donde se guardan las bandas convertidas.

_images/tutorial_1_conversion_1.jpg

Conversión de Landsat 8 a reflectancia

Después de unos minutos, las bandas convertidas se cargan y se muestran (el nombre del archivo comienza con `` RT_``). Si | casilla de verificación | : guilabel: Reproducir sonido cuando haya terminado está marcado en: ref: configuración de` clasificación_proceso`, se reproduce un sonido cuando finaliza el proceso.

Podemos eliminar todas las bandas cargadas en capas, en QGIS, excepto aquellas cuyo nombre comience con `` RT_``.

_images/tutorial_1_conversion_2.jpg

Landsat 8 bandas convertidas`

4.1.1.4. Defina el conjunto de bandas y cree el archivo de entrada de entrenamiento.

Ahora necesitamos definir: guilabel: Band set que es la imagen de entrada para: guilabel:` SCP`. Abra la pestaña: ref: band_set_tab haciendo clic en el botón | bandset_tool | en: ref: SCP_menu o en: ref:` SCP_dock`.

En: guilabel: Definición del conjunto de bandas haga clic en el botón | reset | para borrar todas las bandas de: guilabel: conjunto de bandas activas creado durante los pasos anteriores.

Haga clic en el botón | reload | para actualizar la lista de capas, y seleccione todas las bandas convertidas; luego haga clic en |plus | para agregar los rásters seleccionados al: guilabel: Conjunto de bandas.

In the table Band set definition order the band names in ascending order (click order_by_name to sort bands by name automatically). Finally, select Landsat 8 OLI from the list Quick wavelength settings, in order to set automatically the Center wavelength of each band and the Wavelength unit (required for spectral signature calculation).

_images/tutorial_1_band_set_1.jpg

Definición de un conjunto de bandas

Podemos mostrar una Composición de Color de las bandas: Infrarrojo Cercano, Rojo, y Verde: en la Barra de Trabajo, haz clic sobre el listado RGB= y selecciona el elemento 4-3-2 (correspondiente al numero de banda en Conjunto de bandas). Puedes ver que los colores de la imagen cambian en el mapa según las bandas seleccionadas, y la vegetación resalta en rojo (si la opción 3-2-1 fue seleccionada, se muestran los colores naturales).

TIP : If a Conjunto de bandas is defined, a temporary virtual raster (named Virtual Band Set 1) is created automatically, which allows for the display of Composición de Color. In order to speed up the visualization, you can show only the virtual raster and hide all the layers in the QGIS Layers.
_images/tutorial_1_band_set_2.jpg

Composición de color RGB=4-3-2

Ahora necesitamos crear un Training input para recoger Áreas de entrenamiento (ROIs) y por tanto calcular una Firma Espectral (que será utilizada en la clasificación).

In the SCP dock select the tab Training input and click the button new_file to create the Training input (define a name such as training.scp). The path of the file is displayed and a vector is added to QGIS layers with the same name as the Training input (in order to prevent data loss, you should not edit this layer using QGIS functions).

_images/tutorial_1_training_input_1.jpg

Definición de la Entrada de Entrenamiento en SCP

4.1.1.5. Crear las ROIs

We are going to create ROIs defining the Clases y Macroclases. Each ROI is identified by a Class ID (i.e. C ID), and each ROI is assigned to a land cover class through a Macroclass ID (i.e. MC ID).

Macroclasses are composed of several materials having different spectral signatures; in order to achieve good classification results we should separate spectral signatures of different materials, even if belonging to the same macroclass. Thus, we are going to create several ROIs for each macroclass (setting the same MC ID, but assigning a different C ID to every ROI).

Vamos a utilizar los ID de macroclases definidos en la siguiente tabla

Macroclases
Nombre de la Macroclase Macroclase ID
Agua 1
Construcciones 2
Vegetación 3
Suelo desnudo (vegetación baja) 4

Las ROIs pueden ser creadas, dibujando a mano un polígono o con un Algoritmo de Región Incremental automático.

Amplíe el mapa sobre el área oscura en la esquina superior derecha de la imagen, que es un cuerpo de agua. Para crear manualmente un ROI dentro del área oscura, haga clic en el botón | manual_ROI | en el: ref: working_toolbar. Haga clic izquierdo en el mapa para definir los vértices de ROI y haga clic derecho para definir el último vértice que cierra el polígono.Entrada de Entrenamiento. Se muestra un polígono naranja semitransparente sobre la imagen, que es un polígono temporal (es decir, no se guarda en: guilabel: Entrada de Entrenamiento).

CONSEJO : Puedes dibujar polígonos temporales (los anteriores serán eliminados) hasta que el polígono cubra adecuadamente la zona.
_images/tutorial_1_rois_1.jpg

Una ROI temporal creada manualmente

Si la forma del polígono temporal es buena, podemos grabarlo en la Entrada de Entrenamiento.

Open the Training input to define the Clases y Macroclases . In the ROI Signature list set MC ID = 1 and MC Info = Water; also set C ID = 1 and C Info = Lake. Now click save_roi to save the ROI in the Training input.

Después de unos segundos, el ROI aparece en la lista: ref: ROI_list y se calcula la firma espectral (porque | casilla de verificación |: guilabel:` Firma` fue marcado).

_images/tutorial_1_rois_2.jpg

La ROI grabada en la Entrada de Entrenamiento

As you can see, the C ID in ROI Signature list is automatically increased by 1. Saved ROI is displayed as a dark polygon in the map and the temporary ROI is removed. Also, in the ROI Signature list you can notice that the Type is B, meaning that the ROI spectral signature was calculated and saved in the Training input.

También puede ver en la pestaña: ref: macroclasses_tab que la primera macroclase se ha agregado a la tabla: guilabel:` Macroclasses`.

_images/tutorial_1_rois_3.jpg

Macroclases

Ahora vamos a crear un segundo ROI para la clase desarrollada utilizando el Algoritmo de Región Incremental. Zoom en la región inferior de la imagen. En: ref: working_toolbar establece el valor: guilabel:` Dist` en 0.08. Haga clic en el botón | roi_single | en: ref: working_toolbar y haga clic sobre el área morada del mapa. Después de un tiempo, el polígono naranja semitransparente se muestra sobre la imagen.

Consejo: El valor Dist debe definirse según el rango de valores de los píxeles. En general, al incrementar este valor, se crearán ROIs más grandes.
_images/tutorial_1_rois_5.jpg

Una ROI temporal creada con el algoritmo automático de región incremental

In the ROI Signature list set MC ID = 2 and MC Info = Built-up ; also set C ID = 2 (it should be already set) and C Info = Buildings.

_images/tutorial_1_rois_6.jpg

La ROI grabada en la Entrada de Entrenamiento

Again, the C ID in ROI Signature list is automatically increased by 1.

Después de hacer clic en el botón | roi_single | en: ref: working_toolbar deberías notar que el cursor en el mapa muestra un valor que cambia sobre la imagen. Este es el valor NDVI del píxel debajo del cursor (NDVI se muestra porque la función | casilla de verificación |: guilabel: Display está seleccionada: ref:` training_input`). El valor NDVI puede ser útil para identificar píxeles espectralmente puros, de hecho, la vegetación tiene valores NDVI más altos que el suelo.

Por ejemplo, mueve el ratón sobre un área de vegetación y haz clic para crear una ROI cuando veas un valor máximo local. De esta manera, la ROI creada y su firma espectral será por lo tanto representativa de vegetación saludable.

_images/tutorial_1_rois_7.jpg

NDVI value of vegetation pixel displayed in the map. Color composite RGB = 4-3-2

Create a ROI for the class Vegetation (red pixels in color composite RGB=4-3-2) and a ROI for the class Bare soil (low vegetation) (green pixels in color composite RGB=4-3-2) following the same steps described previously. The following images show a few examples of these classes identified in the map.

_images/tutorial_1_3_7.jpg

Vegetation. Color composite RGB = 4-3-2

_images/tutorial_1_3_8.jpg

Bare soil (low vegetation). Color composite RGB = 4-3-2

4.1.1.6. Assess the Spectral Signatures

Las firmas espectrales son usadas por Algoritmos de clasificación para etiquetar los píxeles de la imagen. Diferentes materiales pueden tener firmas espectrales similares (especialmente considerando imágenes multiespectrales), tales como construcción y suelo desnudo. Si las firmas espectrales usadas para la clasificación son demasiado similares, los píxeles podrían ser clasificados erróneamente debido a que el algoritmo no puede discriminar correctamente esas firmas. Por lo tanto, es útil evaluar la ref:spectral_distance_definition para encontrar firmas similares que deban ser eliminadas. Por supuesto, el concepto de distancia varía de acuerdo al algoritmo seleccionado para la clasificación.

One can simply assess spectral signature similarity by displaying a signature plot. In order to display the signature plot, in the ROI Signature list highlight two or more spectral signatures (with click in the table), then click the button sign_plot. The Gráfico de Firmas Espectrales is displayed in a new window. Move and zoom inside the Gráfico to see if signatures are similar (i.e. very close). Double click the color in the Lista de Firmas to change the line color in the plot.

Podemos ver en la siguiente figura la firma espectral de diferentes materiales

_images/tutorial_1_sig_1.jpg

Gráfico de firmas espectrales

In the plot we can see the line of each signature (with the color defined in the ROI Signature list), and the spectral range (minimum and maximum) of each band (i.e. the semi-transparent area colored like the signature line). The larger is the semi-transparent area of a signature, the higher is the standard deviation, and therefore the heterogeneity of pixels that composed that signature. Spectral similarity between spectral signatures is highlighted in orange in the Lista de Firmas.

Adicionalmente, podemos calcular las distancias espectrales de las firmas (para más información ver ref:spectral_distance_definition). Selecciona dos o más firmas espectrales haciendo clic en la tabla Lista de Firmas, luego pulsa el botón calculate_spectral_distances; las distancias serán calculadas para cada par de firmas. Ahora abre la pestaña Distancias espectrales. Podemos notar que la similaridad entre firmas varía de acuerdo al algoritmo considerado.

_images/tutorial_1_sig_2.jpg

Distancias espectrales

For instance, two signatures can be very similar for Mapeo del Angulo Espectral (very low Angulo Espectral), but quite distant for the Máxima Probabilidad (Jeffries-Matusita Distance value near 2). The similarity of signatures is affected by the similarity of materials (in relation to the number of spectral bands available); also, the way we create ROIs influences the signatures.

Spectral signature values, standard deviation and other details such as the number of ROI pixels are displayed in the Detalles de firmas.

_images/tutorial_1_sig_3.jpg

Valores de firma espectral

We need to create several ROIs (i.e. spectral signatures) for each macroclass (repeating the steps in Crear las ROIs), assigning a unique C ID to each spectral signature, and assess the spectral distance thereof in order to avoid the overlap of spectral signatures belonging to different macroclasses.

In the list RGB= of the Barra de Trabajo type 3-4-6 (you can also use the tool Lista RGB). Using this color composite, urban areas are purple and vegetation is green. You can notice that this color composite RGB = 3-4-6 highlights roads more than natural color (RGB = 3-2-1).

_images/tutorial_1_rois_4.jpg

Color composite RGB = 3-4-6

Los siguientes ejemplos muestran algunas composiciones de color RGB para imágenes Landsat.

CONSEJO : Cambiar frecuentemente la Composición de Color para identificar claramente los materiales en la superficie; usa la rueda del ratón en la lista RGB= de la Barra de Trabajo para cambiar la composición de color rápidamente. También usa los botones cumulative_stretch y std_dev_stretch para mejorar la visualización de la Input image (i.e. estiramiento del histograma).
_images/tutorial_1_3_9.jpg

ROI Construido: edificaciones grandes

_images/tutorial_1_3_10.jpg

ROI Construido: Carretera

_images/tutorial_1_3_11.jpg

Built-up ROI: buildings, narrow roads

_images/tutorial_1_3_13.jpg

ROI Vegetación: bosque caducifolio

_images/tutorial_1_3_12.jpg

Vegetation ROI: riparian vegetation

Es importante mencionar que puedes mostrar u ocultar las ROIs temporalies pulsando el botón radiobutton ROI en Barra de Trabajo.

TIP : Instala el plugin QuickMapServices in QGIS, y añade un mapa (e.g. OpenStreetMap) para facilitar la identificación de ROIs usando datos de alta resolución.

4.1.1.7. Crear Vista Previa de la Clasificación

El proceso de clasificación está basado en la recolección de ROIs (y por lo tanto de firmas espectrales). Es útil crear una Clasificación preliminar para evaluar los resultados (influenciados por las firmas espectrales) antes de la clasificación final. En caso que los resultados no sean buenos, podemos colectar más ROIs para obtener una mejor clasificación de la cobertura del suelo.

Antes de ejecutar una clasificación (o una vista previa), define el color de las clases de cobertura del suelo que serán mostradas en el ráster de clasificación. En ROI Signature list, haz doble clic en el color (en la columna Color) de cada ROI para seleccionar un color representativo de cada clase.

_images/tutorial_1_preview_1.jpg

Definición de los colores de las clases

Also, we need to set the color for macroclasses in table Macroclasses.

_images/tutorial_1_preview_2.jpg

Definition of macroclass colors

Now we need to select the classification algorithm. In this tutorial we are going to use the Máxima Probabilidad.

Open the Classification to set the use of classes or macroclasses. Check Use checkbox C ID and in Algorithm select the Maximum Likelihood.

_images/tutorial_1_preview_3.jpg

Setting the algorithm and using C ID

In Clasificación preliminar set Size = 300; click the button preview and then left click a point of the image in the map. The classification process should be rapid, and the result is a classified square centered in clicked point.

_images/tutorial_1_preview_4.jpg

Classification preview displayed over the image using C ID

Previews are temporary rasters (deleted after QGIS is closed) placed in a group named Class_temp_group in the QGIS panel Layers. Now in Classification check Use checkbox MC ID and click the button preview_redo in Clasificación preliminar.

_images/tutorial_1_preview_5.jpg

Classification preview displayed over the image using MC ID

We can see that now there are only 4 colors representing the macroclasses.

TIP : When loading a previously saved QGIS project, a message could ask to handle missing layers, which are temporary layers that SCP creates during each session and are deleted afterwards; you can click Cancel and ignore these layers; also, you can delete these temporary layers clicking the button remove_temp in Barra de Trabajo.

En general, es bueno realizar una vista previa de la clasificación cada vez que se añade un ROI (o una firma espectral) a la ROI Signature list. Por lo tanto, las fases Crear las ROIs y Crear Vista Previa de la Clasificación deben ser procesos iterativos y concurrentes.

4.1.1.8. Crear el resultado de la clasificación

Asumiendo que el resultado de la clasificación fuese bueno (i.e. píxeles asignados correctamente a su clase definida en la ROI Signature list), podemos realizar la clasificación de coberturas para toda la imagen.

In Classification check Use checkbox MC ID. In the Classification output click the button run and define the path of the classification output, which is a raster file (.tif). If checkbox Play sound when finished is checked in Procesos para la Clasificación settings, a sound is played when the process is finished.

_images/tutorial_1_class_1.jpg

Resultado de clasificación de cobertura del suelo

¡Bien echo! Acabas de terminar tu primera clasificación de cobertura del suelo.

Sin embargo, puedes ver que hay varios errores de clasificación, debido a que el numero de ROIs (Firmas espectrales) son insuficientes.

_images/tutorial_1_class_2.jpg

Ejemplo de error: Cuerpos de agua clasificados como construcciones

_images/tutorial_1_class_3.jpg

Ejemplo de error: Construcciones clasificadas como vegetación

Podemos mejorar la clasificación usando algunas de las herramientas que serán descritas en otros tutoriales.