Google Earth Engine y cómo acceder a sus algoritmos desde QGIS

Google Earth EngineGoogle Earth Engine (o simplemente Earth Engine), es una plataforma en la nube para realizar análisis científicos y visualización de datos geoespaciales. Google lo define como «¡La plataforma de procesamiento geoespacial basado en la nube más avanzada del mundo!«

La infraestructura técnica de Google Earth Engine impulsa iniciativas humanitarias, científicas y ambientales que Google se enorgullece de apoyar.

Google Earth Engine combina un catálogo con petabytes de imágenes de satélite y conjuntos de datos geoespaciales con capacidades de análisis a escala planetaria y lo pone a disposición de científicos, investigadores y desarrolladores con el fin de detectar cambios, mapear tendencias y cuantificar diferencias en la superficie de la Tierra.

Earth Engine aloja imágenes históricas terrestres desde hace más de cuarenta años. Las imágenes, recopiladas diariamente, se ponen a disposición del público para realizar minería de datos a escala global.

Earth Engine también proporciona una API y otras herramientas para permitir el análisis de grandes conjuntos de datos.

¿Qué ventajas tiene esta plataforma?

  1. Earth Engine nos permite cargar nuestros propios datos ráster y vectoriales (por ejemplo, archivos GeoTIFF o Shapefile) para realizar los análisis.
  2. Acceso a un catálogo de datos, que incluye todo el catálogo Landsat de EROS (Earth Resources Observation and Science) (USGS / NASA), numerosos conjuntos de datos MODIS, datos Sentinel 1, 2, 3 y 5P, datos NAIP (National Agriculture Imagery Program), datos de precipitación, datos de temperatura de la superficie del mar, datos climáticos de CHIRPS (Climate Hazards Group InfraRed Precipitation with Station data) y datos de elevación.
  3. Podemos mostrar los resultados de nuestros análisis en Google Maps o en cualquier otra plataforma de mapas, como ArcGIS o QGIS.
  4. Earth Engine es gratuito para investigación, educación y para usos sin ánimo de lucro. Para aplicaciones comerciales, se permite la evaluación de Earth Engine.

Algunos casos de uso

Cambio global de la cubierta forestal. La Universidad de Maryland usa Earth Engine para estudiar la extensión, pérdida y ganancia de la cobertura arbórea global. El estudio, publicado en Science, analizó casi toda la tierra global, excluyendo solo la Antártida y algunas islas árticas. Esta área comprende 128,8 millones de km2, lo que equivale a 143 billones de píxeles de datos Landsat a una resolución espacial de treinta metros.

Google Earth Engine

Global Forest Watch. Un sistema dinámico de monitoreo forestal en línea diseñado para permitir una mejor gestión y conservación. Global Forest Watch usa Earth Engine para medir y visualizar los cambios en los bosques del mundo.

¿En qué se diferencian Earth Engine de Google Earth?

  • Google Earth te permite viajar, explorar y aprender cosas sobre el mundo al interactuar con un globo virtual. Con Google Earth podemos ver imágenes de satélite, mapas, terrenos, edificios en 3D, etc.
  • Sin embargo, Earth Engine es una herramienta para analizar información geoespacial. Podemos analizar la cobertura de bosques y agua, el cambio de usos de la tierra, evaluar la salud de los campos agrícolas, etc

Aunque las dos herramientas comparten datos, solo algunas imágenes y datos de Google Earth están disponibles para analizar en Earth Engine.

Bien, ¿y cómo funciona?

El propósito de GEE es realizar el desarrollo de algoritmos altamente interactivos a escala global.

Para este fin se proporciona una API para JavaScript y Python (alojada en GitHub) para realizar las peticiones a los servidores de Earth Engine:

El editor de código

También existe un editor de código (acceso al editor web), es decir un IDE (un entorno de desarrollo integrado) disponible online para desarrollar aplicaciones de Earth Engine y la visualización de análisis espaciales complejos utilizando la API Javascript. Aquí tenemos los documentos del editor de código.

  • El panel central proporciona un editor de código JavaScript.
  • Encima del editor hay botones para guardar el script actual, ejecutarlo y borrar el mapa.
  • El botón Get Link genera una URL única para el script en la barra de direcciones.
  • El mapa en el panel inferior contiene las capas agregadas por el script.
  • En la parte superior hay un cuadro de búsqueda para conjuntos de datos y lugares.
  • El panel izquierdo contiene ejemplos de código, sus scripts guardados, una referencia de API de búsqueda y un administrador de activos para datos privados.
  • El panel derecho tiene un inspector para consultar el mapa, una consola de salida y un administrador para tareas de larga duración.
  • La ayuda del botón de ayuda en la esquina superior derecha contiene enlaces a esta Guía y otros recursos para obtener ayuda.

¿Qué análisis podemos hacer?

Podemos dividir los diferentes algoritmos en categorías:

  • Machine Learning: realizar clasificación supervisada y no supervisada, modelos de TensorFlow, etc
  • Imágenes: Resumen de imagen, visualización, información y metadatos, operaciones matemáticas, cálculo de gradientes, transformaciones espectrales, etc
  • Colecciones de imágenes: información y metadatos, filtrado, mosaicado, visualización, etc
  • Geometrías, objetos geográficos y colecciones de objetos geográficos: operaciones geométricas, filtros, interpolaciones de vectorial a raster, etc.
  • Reducciones: estadísticas de la región de una imagen, conversión vectorial a raster y viceversa, regresión lineal, etc
  • Uniones: uniones simples, uniones espaciales, uniones internas, etc.
  • Gráficos: histogramas, series de tiempo en regiones de imágenes, gráficos de series de tiempo, etc.
  • Matrices: transformación de matrices.
  • Algoritmos especializados: algoritmos Landsat y Sentinel-1.
  • Gestión de activos: importación de archivos raster, importación de tablas de datos, exportación de datos

Acceso a los algoritmos de Google Earth Engine desde QGIS

Qiusheng Wu ha creado un repositorio en github con una colección de más de 290 ejemplos de Python para el plugin de Google Earth Engine para QGIS.

Qiusheng Wu ha desarrollado estos ejemplos de Python al convertir todos los ejemplos de JavaScript (excepto los que aún no son compatibles con el complemento) de la documentación de la API de Google Earth Engine. Además, incluye algunos ejemplos adaptados de los ejemplos del desarrollador Gena y de los ejemplos de la API de Earth Engine.

Para utilizar los ejemplos en QGIS debemos seguir los siguientes pasos:

Paso 1. En primer lugar debemos darnos de alta en Google Earth Engine.

Paso 2. Instalamos el complemento de Google Earth Engine para QGIS.

Para ello debemos ir al menú superior de QGIS y hacer clic sobre Complementos > Administrar e instalar complementos… En la caja de búsqueda teclearemos «Google Earth Engine», seleccionamos el plugin y acto seguido lo instalamos.

Paso 3. Automáticamente saltará una ventana para autenticarnos en Google Earth Engine con nuestra cuenta de Google.

Paso 4.  Descargamos haciendo clic aquí el repositorio de ejemplos.

Paso 5. Una vez instalado y autenticados, podemos acceder al complemento desde la consola de python para escribir y ejecutar los scripts.

Podemos abrir los scripts desde la consola de Python haciendo clic en el botón abrir script, los scripts se encuentran en los directorios:

  • \qgis-earthengine-examples-master\qgis-earthengine-examples-master\GetStarted
  • \qgis-earthengine-examples-master\qgis-earthengine-examples-master\Image
  • \qgis-earthengine-examples-master\qgis-earthengine-examples-master\Algorithms

Paso 6. Para probar si el complemento está instalado y que nos hemos autenticado correctamente, escribimos lo siguiente en la consola QGIS Python:

import ee
print (ee.String ('¡Hola Mundo desde EE!'). getInfo ())

El resultado debería ser:

Hola mundo desde EE!

Un script más avanzado puede ser algo así:

Add Sentinel-2 image

Paso 7. Hacemos clic en el botón Ejecutar secuencia de comandos en el Editor de Python para ejecutar la secuencia de comandos.

Importando el plugin

Como podemos ver en el demo anterior, para la mayoría de los scripts de Earth Engine se deben incluir las siguientes dos sentencias:

import ee 
from ee_plugin import Map

Después de eso, las funciones Map.* se pueden usar de manera similar al Editor de Código EE oficial https://developers.google.com/earth-engine/playground

Añadiendo capas

image = ee.Image('USGS/SRTMGL1_003').unitScale(0, 5000) 
Map.addLayer(image, {'palette': ['blue', 'red'], 'min': 0, 'max': 1000}, 'dem', True)

El código anterior le pedirá a Earth Engine una imagen y la agregará como una capa de teselas XYZ al canvas de QGIS.

Debemos tener en cuenta que los proyectos de QGIS que contienen las capas de Earth Engine se pueden guardar, en este caso, el código requerido para conectarse a Earth Engine se almacena en un proyecto de QGIS y se utiliza para reinicializar estas capas cuando se carga nuevamente el proyecto. Actualmente, esto solo funciona tenemos el plugin instalado en el QGIS en el que se cargan estas capas.

Demo:

En este directorio de ejemplos podemos ver qué tipo de funcionalidad se admite a fecha de hoy.

Bonus: Acceso a los algoritmos de Google Earth Engine desde R

rgee es un paquete de R sirve como un puente entre Google Google Earth Engine (GEE) y el ecosistema espacial R.

Se ha desarrollado rgee en función de cómo funciona TensorFlow en R.

Si quieres aprender a trabajar con imágenes de satélite y Google Earth Engine, inscríbete en nuestro curso online de Introducción a Google Earth Engine.

9 comentarios en «Google Earth Engine y cómo acceder a sus algoritmos desde QGIS»

  1. Como esta tenga usted buen dia, queria realizar una consulta, al momento de ingresar me sale una solicitud de autorizacion de el complemento de google earth engine, me pide en lazar una cuenta,pero cuando lo registro me sale, como no valido, luego ingreso para desintalar el complemento, y instalar el ultimo actualizado pero me dice que no puedo porque no estoy autorizado, ¿A que se debe?

  2. Saludos.
    Tengo en mi trabajo instalado QGIS 3.4 Madeira y he querido instalar el plugin, pero no aparece en la lista de plugins disponibles.
    ¿Sabes si lo descontinuaron?
    ¿Existe otra opción de conectar los servicios de GEE a QGIS?

    Gracias.

    • Buenas Alfredo, el plugin está activo, pero es un plugin experimental, por lo que en las opciones de configuración de la ventana Complementos deberás marcar la casilla «Mostrar también los complementos experimentales» para que aparezca en el listado de plugins. Saludos!

  3. Hola Aurelio.
    A estos podras agregarlo las lineas de codigo para descargar data desde EE pero con python, por que en la red solo existe para Java Script. Te agradezco por tu atencion

  4. Gracias por los Tutoriales, son muy didacticos. he intentado bajar la Aplicacion y no me funciona, hay error de incompativilidad con W 7

  5. Hola. Gracias por el artículo. Tengo una duda. Es posible usar la tecnología Google Earth Enginer en 3D (como si fuera Google Earth Pro) e incluirla como base de un proyecto de almacenamiento y procesamiento de datos (una plataforma digital)?

Los comentarios están cerrados.