Logotipo de Zephyrnet

Análisis de datos geoespaciales con Geemap – KDnuggets

Fecha:

Análisis de datos geoespaciales con Geemap
Ilustración del autor
 

El análisis de datos geoespaciales es un campo dirigido a tratar, visualizar y analizar un tipo especial de datos, llamados datos geoespaciales. En comparación con los datos normales, tenemos datos tabulares con una columna adicional, la información de ubicación, como la latitud y la longitud. 

Hay dos tipos principales de datos: datos vectoriales y datos ráster. Cuando se trata de datos vectoriales, todavía tiene un conjunto de datos tabulares, mientras que los datos ráster son más similares a imágenes, como imágenes de satélite y fotografías aéreas. 

En este artículo, me centraré en los datos ráster proporcionados por Google Earth Engine, una plataforma de computación en la nube que proporciona un enorme catálogo de datos de imágenes satelitales. Este tipo de datos se puede dominar fácilmente desde su Jupyter Notebook utilizando un paquete de Python que salva vidas, llamado Geemap. ¡Empecemos!

¿Qué es el motor de Google Earth?

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Página de inicio de Google Earth Engine.
 

Antes de comenzar con la biblioteca Python, debemos comprender el potencial de Google Earth Engine. Esta plataforma basada en la nube, impulsada por la plataforma Google Cloud, aloja conjuntos de datos geoespaciales públicos y gratuitos para fines académicos, sin fines de lucro y comerciales.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Descripción general del catálogo de datos de Earth Engine. 
 

Lo bueno de esta plataforma es que proporciona un catálogo de varios petabytes de datos rasterizados y vectoriales, almacenados en los servidores de Earth Engine. Puede obtener una descripción general rápida desde este liga. Además, proporciona API para facilitar el análisis de conjuntos de datos ráster. 

¿Qué es Geemap?

Análisis de datos geoespaciales con Geemap
Ilustración del autor. Biblioteca Geemap.
 

Geemap es una biblioteca de Python que permite analizar y visualizar grandes cantidades de datos geoespaciales desde Google Earth Engine. 

Antes de este paquete, ya era posible realizar solicitudes computacionales a través de las API de JavaScript y Python, pero las API de Python tenían funcionalidades limitadas y carecían de documentación. 

Para llenar este vacío, se creó Geemap para permitir a los usuarios acceder a los recursos de Google Earth Engine con unas pocas líneas de código. Geemap se basa en API de EarthEngine, ipyfolleto y folio.

Para instalar la biblioteca, sólo necesitas el siguiente comando:

pip install geemap

 

Le recomiendo que experimente con este increíble paquete en Google Colab para comprender todo su potencial. Echa un vistazo a este libro gratis escrito por el profesor Dr. Qiusheng Wu para comenzar con Geemap y Google Earth Engine.

¿Cómo acceder a Earth Engine?

Primero, necesitamos importar dos bibliotecas de Python, que se usarán en el tutorial:

import ee
import geemap

 

Además de geemap, hemos importado la biblioteca cliente Earth Engine Python, llamada ee. 

Esta biblioteca de Python se puede utilizar para la autenticación en Earth Engine, pero puede ser más rápida usando directamente la biblioteca Geemap:

m = geemap.Map()
m

 

Debe hacer clic en la URL devuelta por esta línea de código, lo que generará el código de autorización. Primero, seleccione el proyecto en la nube y luego haga clic en el botón “GENERAR TOKEN”.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Autenticador de portátiles.
 

Después, te pedirá que elijas la cuenta. Recomiendo tener la misma cuenta de Google Colab si la estás usando.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Elige una cuenta.
 

Luego, haga clic en la casilla de verificación junto a Seleccionar todo y presione el botón "Continuar". En pocas palabras, este paso permite que Notebook Client acceda a la cuenta de Earth Engine.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Permita que Notebook Client acceda a su cuenta de Earth Engine.
 

Después de esta acción, se genera el código de autenticación y puedes pegarlo en la celda del cuaderno.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Copie el código de autenticación.
 

Una vez ingresado el código de verificación, finalmente podrás crear y visualizar este mapa interactivo:

m = geemap.Map()
m

 

Análisis de datos geoespaciales con Geemap
 

Por ahora, solo está observando el mapa base encima de ipyleaflet, un paquete de Python que permite la visualización de mapas interactivos dentro de Jupyter Notebook. 

Crear mapas interactivos

Anteriormente, hemos visto cómo autenticar y visualizar un mapa interactivo usando una sola línea de código. Ahora podemos personalizar el mapa predeterminado especificando la latitud y longitud del centroide, el nivel de zoom y la altura. He elegido las coordenadas de Roma para que el centro se centre en el mapa de Europa. 

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

 

Análisis de datos geoespaciales con Geemap

 

Si queremos cambiar el mapa base, hay dos formas posibles. La primera forma consiste en escribir y ejecutar la siguiente línea de código:

m.add_basemap("ROADMAP")
m

 

Análisis de datos geoespaciales con Geemap
 

Alternativamente, puede cambiar manualmente el mapa base haciendo clic en el icono de llave inglesa situado a la derecha. 

 

Análisis de datos geoespaciales con Geemap
 

Además, vemos la lista de mapas base proporcionada por Geemap:

basemaps = geemap.basemaps.keys()
for bm in basemaps:
   print(bm)

 

Esta es la salida:

OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...

 

Como puedes notar, existe una larga serie de mapas base, la mayoría de ellos disponibles gracias a OpenStreetMap, ESRI y USGS.

Tipos de datos del motor terrestre

Antes de mostrar todo el potencial de Geemap, es importante conocer dos tipos de datos principales en Earth Engine. Échale un vistazo al Documentación de Google Earth Engine para más información.

 

Análisis de datos geoespaciales con Geemap
Ilustración del autor. Ejemplo de tipos de datos vectoriales: Geometría, Característica y FeatureCollection.
 

Cuando manejamos datos vectoriales, utilizamos principalmente tres tipos de datos:

  • Geometría almacena las coordenadas necesarias para dibujar los datos vectoriales en un mapa. Earth Engine admite tres tipos principales de geometrías: punto, cadena de líneas y polígono.
  • Feature Es esencialmente una fila que combina geometría y atributos no geográficos. Es muy similar a la clase GeoSeries de GeoPandas.
  • Colección de características es una estructura de datos tabular que contiene un conjunto de características. FeatureCollection y GeoDataFrame son casi idénticos conceptualmente.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Ejemplo de tipo de datos de imagen. Muestra el modelo australiano de elevación digital suavizado (DEM-S)
 

En el mundo de los datos ráster, nos centramos en Imagen objetos. Las Imágenes de Google Earth Engine están compuestas por una o más marcas, donde cada banda tiene un nombre específico, mínimo y máximo estimado y descripción.

Si tenemos una colección o serie temporal de imágenes, Colección de imágenes es más apropiado como tipo de datos.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Copernicus CORINE Cobertura terrestre.
 

Visualizamos las imágenes de satélite que muestran el mapa de cobertura terrestre de Europa. Este conjunto de datos proporciona los cambios entre 1986 y 2018.

Primero cargamos la imagen usando ee.Image y, luego, seleccionamos la banda “landcover”. Finalmente, visualicemos la imagen agregando el conjunto de datos cargado al mapa como una capa usando Map.addLayer. 

Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor.
 

Del mismo modo, podemos hacer lo mismo para cargar y visualizar las imágenes de satélite que muestran el mapa de cobertura terrestre de Europa. Este conjunto de datos proporciona los cambios entre 1986 y 2018.

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor. Imágenes de alta resolución sin conexión de concentraciones de metano.

 

Para visualizar una ImageCollection de Earth Engine, las líneas de código son similares, excepto ee.ImageCollection. 

Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
 'min': 1750,
 'max': 1900,
 'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}

Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map

 

Análisis de datos geoespaciales con Geemap
Captura de pantalla del autor.
 

¡Genial! En este mapa, observamos cómo se distribuye en el mundo el metano, uno de los contribuyentes más importantes al efecto invernadero. 

Consideraciones Finales:

Esta fue una guía introductoria que puede ayudarlo a trabajar con datos de Google Earth Engine usando Python. Geemap es la biblioteca de Python más completa para visualizar y analizar este tipo de datos. 

Si desea profundizar en este paquete, puede consultar los recursos que sugerí a continuación. 

El código se puede encontrar esta página. Espero que hayas encontrado útil el artículo. ¡Que tenga un lindo día!

Recursos utiles:

 
 

eugenia anello Actualmente es investigador en el Departamento de Ingeniería de la Información de la Universidad de Padua, Italia. Su proyecto de investigación se centra en el Aprendizaje Continuo combinado con la Detección de Anomalías.

punto_img

Información más reciente

punto_img