Blog del Máster
en Tecnologías de la Información Geográfica y Ciencia de Datos
Espaciales

GEE

Observación de la Tierra con Google Earth Engine

Google Earth Engine (GEE) es una plataforma desarrollada por Google, orientada al análisis científico para la observación de la Tierra. Almacena multitud de catálogos de imágenes, incluyendo series históricas que se remontan a más de cuarenta años y que se ponen a disposición del público a través de un conjunto de APIs.

En este post realizaremos una introducción a GEE a través de un caso de estudio que nos permitirá analizar la sequía en la que se encuentra Catalunya actualmente.

Acceso a Google Earth Engine

Para acceder a la plataforma GEE deberéis disponer de una cuenta de usuario de Google. Con esta cuenta, os podréis registrar a la plataforma accediendo a la página inicial de GEE y haciendo clic en el apartado Sign Up.

La interfaz gráfica de GEE

El editor de GEE consta de diferentes espacios, pensados para facilitar el desarrollo de los scripts y la visualización de los resultados obtenidos. De todos ellos, podemos destacar:

a. Editor de código JavaScript. En esta ventana es donde podréis crear vuestros scripts. Justo sobre el editor de código hay disponibles los botones para ejecutar (Run), guardar (Save) y reiniciar (Reset) los scripts, así como generar un enlace de acceso a ellos (link).

b. Mapa para visualizar los datos geoespaciales. En este mapa podréis visualizar los datos e imágenes del catálogo de GEE, así como el resultado de vuestros análisis. Incorpora las herramientas de dibujo para la creación de diferentes geometrías: puntos, líneas, polígonos y rectángulos.

c. Documentación de la API. Contiene toda la documentación de la API JavaScript de GEE. Tener un rápido acceso a toda la documentación resulta muy útil mientras se van desarrollando los scripts.

d. Administración de Scripts. En esta ventana encontraréis algunos scripts de ejemplo que os pueden resultar de inspiración. También encontraréis los scripts que hayáis decidido guardar, y los que otros usuarios hayan compartido con vosotros.

e. Consola de salida. A través de la consola podréis visualizar también el resultado de la ejecución de los scripts. Se mostrarán aquí los errores producidos durante la ejecución del código, resultando muy útil para subsanarlos.

Interfaz gráfica GEE
Interfaz de Google Earth Engine

Búsqueda de imágenes

Utilizaremos el catálogo de imágenes Landsat 8 para calcular el índice NDWI (Normalized Difference Water Index). Tal y como vimos en el post Visualizar y descargar imágenes de satélite a través de EO Browser, este índice nos permitirá identificar la presencia de agua.

Analizaremos la escasez de agua que afecta Catalunya centrándonos en la disminución de recursos hídricos del embalse de Rialb.

Utilizando el método Geometry.Polygon definiremos la región de trabajo. Podéis copiar el siguiente código en el editor de GEE:

var region = ee.Geometry.Polygon(
  [[[1.1721990479813416,41.9214907279217],
    [1.2971685304032166,41.9214907279217],
    [1.2971685304032166,42.04348044540681],
    [1.1721990479813416,42.04348044540681],
    [1.1721990479813416,41.9214907279217]]],
  null, false
);

A continuación utilizaremos el siguiente código para realizar la importación de la colección de imágenes Landsat 8 y aplicarle diferentes filtros. Estos filtros nos permitirán:

  • buscar las imágenes correspondientes a la región definida
  • determinar el período de búsqueda
  • indicar el % de nubes de la imagen. Aquellas imágenes con un % de nubes superior al indicado serán descartadas.

// Importar la colección LANDSAT 8 y aplicar filtros 
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
  .filterBounds(region)
  .filterDate('2020-01-01', '2023-01-01')
  .filterMetadata('CLOUD_COVER', 'less_than', 10);

Cálculo del índice NDWI

GEE ofrece diferentes posibilidades para llevar a cabo el cálculo de índices como el NDWI. En esta ocasión, aplicaremos una función sobre la colección de imágenes en la que, utilizando el método normalizedDifference, se generará el índice NDWI para cada una de las capas que forman parte de ella:

// Aplicar una función sobre la colección para generar las capas NDWI
var withNDWI = l8.map(function(image) {
  var ndwi = image.normalizedDifference(['B3', 'B5']).rename('NDWI');
  return image.addBands(ndwi);
});

Visualización dinámica de los datos

Llegados a este punto, únicamente nos queda definir los parámetros para aplicar una paleta de color a las capas con los valores correspondientes al índice NDWI, así como los correspondientes a la generación del GIF.

Utilizando la instrucción print() y el método Thumbnail, visualizaremos el GIF animado en la consola de GEE.

// Definimos los parámetros para la visualización RGB
var ndwiParams = {
  min: -1,
  max: 1,
  palette: ['ff3f06',  '08ff26', '0066ff', '0033cc'],
};

// Aplicamos la paleta de color a las capas NDWI
var ndwiVis = withNDWI.select('NDWI').map(function(img) {
  return img.visualize(ndwiParams);
});

// Parámetros para la visualización del GIF
var gifParams = {
  'region': region,
  'dimensions': 300,
  'crs': 'EPSG:3857',
  'framesPerSecond': 5
};

// Mostrar el GIF en la consola
print(ui.Thumbnail(ndwiVis, gifParams));

El resultado es el que se muestra a continuación:

Análisis de la evolución del índice NDWI y observación de la Tierra con GEE
Evolución del NDWI (enero 2020 – enero 2023) en el embalse de Rialb

Conclusión

El amplio catálogo de imágenes de satélite con el que cuenta Google Earth Engine, junto a su API, hacen de esta una herramienta muy interesante para llevar a cabo todo tipo de proyectos relativos a la observación de la Tierra.

En este post hemos visto únicamente un pequeño ejemplo de su potencial, aplicado a un ámbito muy concreto, por lo que os animamos a descubrir nuevos casos a través de los ejemplos de la documentación oficial, u otros recursos como el libro gratuito Cómo usar Google Earth Engine y no fallar en el intento.

Josep Sitjar
Geógrafo y máster en medio ambiente, análisis y gestión del territorio. Desarrollador de aplicaciones web. Trabajo en el Servicio de SIG y Teledetección (SIGTE) de la Universitat de Girona participando en numerosos proyectos técnicos vinculados al mundo de los SIG y al desarrollo de aplicaciones web map. En UNIGIS soy tutor de los módulos SIG y Teledetección y Programación de Aplicaciones Web Map II.


Suscríbete a nuestra newsletter