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:
- Agua;
- Construcciones;
- Vegetación;
- 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:
Azul;
Verde;
Rojo;
Infrarrojo Cercano;
Infrarrojo de Onda Corta 1;
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 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
Seleccionar: guilabel:L8 OLI/TIRS desde la: guilabel:Products y establecer:
- Date from: 2017-04-16
- to: 2017-04-16
Ahora da click en el boton Buscar 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.
Ahora da click en el boton para cargar una muestra de la imagen en el mapa.
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.
A los efectos de este tutorial, desmarque la opción :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 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.
Despues de la descarga, todas las bandas se cargan automaticamente en el mapa.
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 para actualizar el listado de capas, y seleccione las bandas: 2,3,4,5,6, y 7; luedgo haga clic para agregar los raster a el :guilabel:`Band set 1.
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
Clic en el botón 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.
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 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 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.
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_``.
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 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).
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 (namedVirtual 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.
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 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).
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.
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 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).
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`.
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.
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
.
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.
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.
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 . 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
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 ; 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.
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.
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
).
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 y para mejorar la visualización de la Input image (i.e. estiramiento del histograma).
Es importante mencionar que puedes mostrar u ocultar las ROIs temporalies pulsando el botón 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.
Also, we need to set the color for macroclasses in table Macroclasses.
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 C ID and in Algorithm select the Maximum Likelihood.
In Clasificación preliminar set Size = 300; click the button 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.
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 MC ID and click the button in Clasificación preliminar.
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 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 MC ID. In the Classification output click the button and define the path of the classification output, which is a raster file (.tif). If Play sound when finished is checked in Procesos para la Clasificación settings, a sound is played when the process is finished.
¡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.
Podemos mejorar la clasificación usando algunas de las herramientas que serán descritas en otros tutoriales.