En numerosas ocasiones llegan preguntas a través de los canales de Geoinnova sobre la posibilidad de tratar imágenes de satélite en QGIS. Si bien QGIS es un programa GIS que puede trabajar con datos ráster, no está diseñado inicialmente para ello. Pero, los complementos pueden ayudarnos a mejorar las funcionalidades de QGIS, y eso es exactamente lo que hace el plugin del que vamos a hablar. Se trata de Semi-Automatic Classification Plugin, desarrollado por Luca Congedo.
Se trata de un plugin que nos va a permitir desde hacer la descarga de la imagen de un gran número de plataformas satelitales, hasta correcciones atmosféricas, cálculo de índices y clasificación supervisada de los diversos elementos de la superficie.
Comencemos.
Primeros pasos con Semi-Automatic Classification Plugin
Lo primero que debemos hacer es preparar todas las herramientas y materiales que vamos a utilizar para tratar las imágenes satelitales. Empezamos instalando este complemento, el Semi-Automatic Classification Plugin, dentro del programa QGIS. Posteriormente descargaremos las imágenes que queremos tratar.
Instalación del plugin y requisitos
La instalación del plugin es muy sencilla, tan solo tendremos que acudir al menú Complementos, y seleccionar la opción “Añadir y administrar complementos”.
Una vez allí, podremos buscar el plugin y descargarlo.

Tal y como indica la descripción del plugin, necesitaremos cumplir unos requisitos. Tendremos que tener instalado GDAL, OGR y las librerías de python Numpy, SciPy y Matplotlib. En el caso de GDAL y OGR no hay problema, ya que QGIS los instala por defecto, pero en el caso de las librerías de python enumeradas, puede que no las tengamos instaladas y habrá que instalarlas.
Una vez instalado, nos aparecerán dos barras de herramientas desde las que podremos acceder a las funcionalidades del plugin, y un panel (o dock), que en nuestra opinión es la mejor forma de acceder a las diferentes opciones del programa o desde el menú que se añade en la barra de menús de QGIS.


Es interesante apuntar, que desde el panel podemos acceder al manual del usuario. Aquí se explica de forma sencilla, pero muy detallada, el uso del plugin.
Descarga de imágenes
Desde la opción Descargas, podremos acceder a datos de numerosos satélites. Dependiendo de qué imágenes queramos descargar, tendremos que rellenar los datos de usuario y contraseña de las diferentes plataformas en las que deberemos estar previamente registrados.

En nuestro caso, hemos descargado una imagen Landsat 8, así que tenemos que rellenar los datos de la primera o la segunda opción. Una vez rellenados, procedemos a la búsqueda de nuestra imagen y a su descarga desde la pestaña “Search”.

Para buscar la imagen, será imprescindible señalar la zona de la cual queremos obtener una imagen, y la fecha. Para marcar la extensión de búsqueda, tendremos que hacer clic en el botón con el símbolo “+”, minimizar la ventana y hacer clic con el botón izquierdo en la esquina superior izquierda. Luego cerraremos la extensión de búsqueda haciendo clic en con el botón derecho en la esquina inferior derecha que marcará la caja de extensión de búsqueda. Si lo hacemos bien, se dibujará un cuadro como el siguiente.

Una vez tenemos la zona y la fecha, solo nos queda pulsar en el botón “Encontrar” y nos mostrará un listado con todas las imágenes disponibles.

Pre-procesar las imágenes satelitales
Algo muy interesante de este plugin es que podemos descargar las imágenes y pre-procesarlas directamente. Es decir, podemos aplicar la corrección para eliminar el efecto de la atmósfera (el que hace que las imágenes se vean borrosas) por el método DOS1.
Tan sólo tendremos que dejar marcada la opción “Pre-procesar imágenes” y obtendremos imágenes con valores de reflectancia. Si dejamos también marcada la opción “Cargar bandas en QGIS” al terminar de descargar las imágenes las abrirá en QGIS. Eso sí, lo hará una por una y no podremos combinar las bandas, de momento…
Hacemos clic en el botón “Run” y esperamos a que se descargue la imagen. Cuando comience el proceso de descarga verás esta barra en la parte superior del lienzo de QGIS.

Una vez termina, las imágenes se muestran así en QGIS.

Como habrás podido observar, de momento no resulta muy operativo si lo que queremos es hacer un análisis previo de la imagen. Seguramente se te ocurrirá que puedes usar alguna herramienta de QGIS para juntar las bandas y poder combinarlas según tus necesidades. No es necesario, lo haremos sin salir del SCP plugin.
Para hacer una combinación de bandas, tan sólo deberás seleccionar la opción “Juego de bandas” en el menú o en el dock de SCP. Verás que por defecto ya tienes un “Band set” con las bandas del visible y el infrarrojo.

Ahora solamente tendrás que seleccionar la opción “Crear ráster de juego de bandas” si lo quieres guardar permanentemente y hacer clic sobre el botón “Run”. El proceso tardará unos segundos y ya podremos cargar nuestra imagen multibanda en QGIS para hacer las combinaciones de color que queramos.

En nuestro caso hemos optado por una imagen en color natural con las bandas azul, verde y roja .
Calculando índices con Semi-Automatic Classification Plugin
El cálculo de índices utilizando imágenes de satélite es algo básico y que todo aquel que quiera dedicarse a la teledetección debe conocer. Una vez tenemos nuestra imagen lista en la pantalla de de QGIS, podemos empezar a calcular índices de diversa índole, así que vamos a ello. Antes haremos un zoom para que los cálculos cuesten menos tiempo.

Como podrás esperar, si has visto algo de teledetección, comenzaremos por hacer un NDVI (Normalized Difference Vegetation Index) que nos servirá para analizar el vigor de las plantas. Hacer esto con el Semi-Automatic Classification Plugin es extremadamente fácil, ya que solamente tenemos que buscar la calculadora que incluye (el botón que aparece abajo del todo). Luego seleccionar en el desplegable “Cálculo de índice” el índice NDVI que ya viene preconfigurado.

Algo importante a señalar es que es mejor seleccionar la opción “Igual que”, ya que de otro modo puede saltar un error de Python. Si usamos esta opción no da ningún problema. Tan solo nos queda apretar el botón “RUN” y seleccionar la carpeta donde queramos guardarlo. No nos pedirá nombre, ya que lo guarda directamente como “NDVI.tif”
Una vez calculado, podemos aplicar un estilo diferente para darle colores y que nuestro ojo vea mejor las diferencias.

Por otra parte, hay veces que seguro necesitamos calcular otro índice menos utilizado y tendremos que construir nosotros el algoritmo seleccionando las bandas que queramos. Por ejemplo, si queremos calcular el NDMI (Normalized Difference Moisture Index), un índice que sirve para ayudarnos a discriminar si un campo está trabajado o no.
La fórmula es la siguiente: NDMI = (NIR – swir1)/(NIR + swir1)
Para introducir los datos, haremos uso de los botones que hay en la parte derecha, desde ahí podremos introducir paréntesis, divisiones, multiplicaciones…

Para agregar las bandas, tan sólo tenemos que ir al listado y hacer doble clic.

Una vez introduzcamos la fórmula y pulsemos en el botón para calcular, nos pedirá que le demos, en este caso sí, un nombre.

Como habrás podido observar, es muy fácil calcular índices utilizando este plugin. Ahora tan solo debes practicar y añadir tus propias fórmulas.
Clasificaciones supervisadas sin salir de QGIS con el plugin Semi-automatic Classification
A continuación haremos un pequeño ejemplo de clasificación supervisada con el Semi-automatic Classification Plugin. Esta es una disciplina muy utilizada para generar mapas temáticos de manera rápida a partir de imágenes de satélite. Esto es posible gracias a las diferentes longitudes de onda que registran los sensores instalados a bordo de los satélites.
Tipos de clasificación con Semi-Automatic Classification Plugin
Existen diferentes tipos de clasificación, que pueden ser no supervisada y supervisada por el usuario. En el primer caso, se ejecutan algoritmos que analizan las firmas espectrales de las diferentes cubiertas, y sin intervención del usuario, divide según esas firmas espectrales en diferentes tipos de cubierta.
En el segundo caso, el usuario “entrena” el algoritmo determinando zonas con píxeles de una misma respuesta espectral, que pertenecerá a un determinado tipo de cubierta. Como podréis imaginar, la clasificación supervisada es mucho más precisa que la automática.
Para hacer nuestra clasificación supervisada, partiremos de la imagen que utilizamos anteriormente. En este caso haremos un zoom a una zona en la que, por ejemplo, tengamos masas de agua y algunos cultivos. Después, recortaremos la imagen original y la cargaremos en el SCP plugin. No vamos a hacer una clasificación detallada, puesto que nos llevaría mucho tiempo y no es el objetivo. Simplemente sentaremos las bases de cómo llevar a cabo una clasificación, e intentaremos hacerlo lo más sencillo posible.
Lo primero que vamos a hacer, una vez recortada la imagen y cargada en QGIS a través del plugin (esto es importante, ya que de lo contrario no nos dejará clasificar), es situarnos en la pestaña “Training input” del plugin SCP, que es desde donde gestionaremos nuestra clasificación.

Áreas de entrenamiento
Como indicábamos anteriormente, la clasificación supervisada necesitará de unos inputs para que el algoritmo pueda diferenciar cada clase de cobertura de suelo que queramos identificar. Estos inputs se llaman ROIs (Regions Of Interest), que son polígonos que dibujaremos en los que seleccionaremos píxeles que pertenezcan a una misma clase.
En primer lugar, tendremos que crear un archivo donde se guardarán los ROIs que vayamos creando. Para ello tenemos que usar el botón con el punto amarillo. Si ya tenemos uno creado, tendremos que abrirlo utilizando el botón verde.

Para empezara dibujar áreas de entrenamiento, deberemos tener activada la barra de herramientas “SCP Working Toolbar”.

Usaremos una combinación de colores 3-2-1, color natural, pero podemos ir cambiando de combinación (en el siguiente ejemplo verás la imagen en falso color infrarrojo). Incluso podrás crear combinaciones que no están en la lista, para diferenciar los diferentes elementos que estemos clasificando de la mejor manera posible.

Una vez seleccionada la combinación de bandas, podemos empezar a crear nuestras regiones de interés. Utilizaremos las siguientes herramientas:

Simplemente tendremos que elegir el botón que aparece como un polígono y empezar a crear los diferentes polígonos que englobarán los píxeles que tengan un determinado tipo de cobertura. También podemos optar por usar el botón con el símbolo “+”, que al hacer clic sobre un píxel, seleccionará los píxeles contiguos que sean similares al que hemos seleccionado, creando ROIs automáticamente.
Empezaremos por seleccionar los píxeles de agua.

Como podrás observar, las tonalidades del agua son diferentes aunque se trata de la misma masa de agua. Por tanto tendremos que entrenar al clasificador para que considere las distintas tonalidades como agua.
Selección de clases y macroclases
El plugin, nos permite diferenciar entre clases, y macroclases. Este es un punto importante, ya que deberemos diferenciar entre ellas. Una macroclase englobará varias clases, por ejemplo, un embalse, un río, una laguna, serán diferentes clases que pertenecerán a la macroclase “Masas de agua”.
Antes de tomar el punto, deberemos indicar la clase y macroclase a la que pertenece el ROI que tomemos. Lo verás claramente en el siguiente ejemplo.
- MC ID – 1: Identificador de macroclase.
- MC Info – Masas de agua: Información cualitativa de la macroclase.
- C ID – 1: Identificador de la clase.
- C Info – Embalse: Información cualitativa de la clase.

Los primeros ROIs que tomaremos van a ser de la macroclase “Masas de agua” y de la clase “Embalse”. Una vez dibujado nuestro ROI, tendremos que guardarlo haciendo clic en el botón de abajo a la derecha.

De este modo, ya tendremos nuestro primer ROI.

Ahora tomaremos algunos más de las diferentes zonas del embalse en las que el tono de color del agua es diferente.
Una vez hemos tomado diferentes ROIs, podemos asegurarnos de que pertenecen a la misma cobertura analizando su firma espectral. Tan solo tendremos que seleccionar los ROIs y hacer clic sobre el botón:

De esta forma veremos la firma espectral media de los píxeles que hemos seleccionado en cada ROI. Podemos ver que pertenecen a la misma clase de embalse, pero con algunas variaciones, bien sea por la profundidad del agua, por los sedimentos, etc.

Ahora seguimos tomando ROIs de las demás coberturas que queremos clasificar, correspondientes a cultivos. Te será más fácil distinguir cultivos con una combinación en falso color infrarrojo. En nuestro caso intentaremos diferenciar entre sembrado o no sembrado, aunque al final utilizaremos las macroclases para clasificar.
Clasificación supervisada
Una vez tenemos los suficientes ROIs, podemos proceder a la clasificación. Para ello tendremos que situarnos en la pestaña “Clasificación” y marcar si queremos que clasifique según macroclases o clases. Luego elegir el algoritmo que deseemos y pulsar sobre el botón “RUN”. Si todo va bien obtendremos una clasificación en la que diferenciaremos, en nuestro caso, las macroclases de cultivos y masas de agua. Como podrás comprobar, también ha clasificado de manera correcta dos balsas artificiales próximas al embalse.

En el artículo hemos hecho una clasificación muy sencilla. Te animamos a que pruebes a hacer clasificaciones más detalladas con el Semi-Automatic Classification Plugin y nos digas cómo te ha ido.
Les funciona el Semi-Automatic Classification Plugin en MAC Chip M1????
a mi no me corre me marca error… es septiembre 2021.
Hola, me sale igual que a Guillermo e hice el paso de reenstalar y tampoco funcionó.
No me sale la opción Clasificación en el SCP Rock, solo me sale ROI options, Training input y Home. A que se debe o qué debo hacer para que me aparezca?
Hola Guillermo;
La mejor opción si no te aparece algún elemento es probar a reinstalar el plugin. No obstante, estos días está dando problemas la instalación de SCP desde el repositorio de complementos de QGIS, así que quizás sea mejor esperar unos días hasta que lo arreglen.
Un saludo.