Configurar Google Earth Engine en Google Cloud para Colab

Análisis Geoespacial

Introducción

Google Earth Engine (GEE) es una plataforma increíblemente poderosa para el análisis de datos geoespaciales a escala planetaria. Cuando combinamos GEE con Google Colab, obtenemos un entorno de programación flexible y accesible.

En este tutorial te guiaré paso a paso para configurar GEE en Google Cloud y utilizarlo en Google Colab.

Prerrequisitos

  • Cuenta de Google (con GEE habilitado)
  • Proyecto en Google Cloud Console
  • Conocimientos básicos de Python

Configuración paso a paso

1Configurar Google Cloud Project

1.1 Crear o seleccionar un proyecto

  • Ve a Google Cloud Console
  • Si no tienes un proyecto, crea uno nuevo:
    • Haz clic en el selector de proyectos
    • → "Nuevo proyecto"
    • Asigna un nombre y haz clic en "Crear"

1.2 Habilitar las APIs necesarias

En la consola de Google Cloud:

  • Ve a "APIs y Servicios" → "Biblioteca"
  • Busca y habilita estas APIs:
    • Google Earth Engine API
    • Compute Engine API (opcional, para procesamiento adicional)

2Configurar la autenticación

2.1 Crear una cuenta de servicio

  • En Cloud Console, ve a "IAM y administración" → "Cuentas de servicio"
  • Haz clic en "Crear cuenta de servicio"
  • Completa los detalles:
    • Nombre: gee-colab-service
    • ID: Se autogenerará
    • Descripción: "Cuenta de servicio para GEE en Colab"

2.2 Asignar roles

A la cuenta de servicio asígnale estos roles:

  • Earth Engine User
  • Storage Object Viewer (opcional, para acceder a Cloud Storage)

2.3 Generar clave JSON

  • En la lista de cuentas de servicio, haz clic en la que acabas de crear
  • Ve a la pestaña "Claves"
  • Haz clic en "Agregar clave" → "Crear nueva clave"
  • Selecciona formato JSON y haz clic en "Crear"
  • Guarda el archivo JSON de forma segura - lo necesitarás más tarde

3Configurar Google Colab

3.1 Instalar e inicializar Earth Engine

Crea un nuevo notebook en Colab y ejecuta:

# Instalar el cliente de Earth Engine !pip install earthengine-api # Importar librerías import ee import json from google.colab import files

3.2 Subir las credenciales

# Subir el archivo JSON de la cuenta de servicio print("Por favor, sube el archivo JSON de tu cuenta de servicio:") uploaded = files.upload() # Obtener el nombre del archivo for key in uploaded.keys(): service_account_key = key # Leer las credenciales with open(service_account_key) as f: credentials = json.load(f)

3.3 Autenticar e inicializar

# Autenticar usando la cuenta de servicio service_account = credentials['client_email'] credentials = ee.ServiceAccountCredentials(service_account, service_account_key) ee.Initialize(credentials) # Verificar que funciona try: print("✅ Earth Engine inicializado correctamente") print("Cuenta de servicio:", service_account) # Probar con un dataset simple dem = ee.Image('USGS/SRTMGL1_003') print("📊 Elevación máxima mundial:", dem.reduceRegion( reducer=ee.Reducer.max(), geometry=ee.Geometry.Point([0, 0]), scale=1000 ).getInfo()) except Exception as e: print("❌ Error:", str(e))

4Ejemplo de uso práctico

Aquí tienes un ejemplo completo para visualizar datos:

import folium import matplotlib.pyplot as plt def add_ee_layer(self, ee_image_object, vis_params, name): """Función para mostrar imágenes de EE en folium""" map_id_dict = ee.Image(ee_image_object).getMapId(vis_params) folium.raster_layers.TileLayer( tiles=map_id_dict['tile_fetcher'].url_format, attr='Google Earth Engine', name=name, overlay=True, control=True ).add_to(self) # Añadir método al mapa folium.Map.add_ee_layer = add_ee_layer # Crear mapa centrado en una ubicación my_map = folium.Map(location=[40.0, -100.0], zoom_start=4) # Cargar imagen de Landsat landsat = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_044034_20140318') vis_params = { 'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 3000, 'gamma': 1.4 } # Añadir capa al mapa my_map.add_ee_layer(landsat, vis_params, 'Landsat 8') # Mostrar mapa my_map

Solución de problemas comunes

🔴 Error: "User does not have permission"

  • Verifica que la cuenta de servicio tenga el rol Earth Engine User
  • Confirma que la API de Earth Engine esté habilitada

🔴 Error: "Credentials have been revoked"

  • Genera un nuevo archivo JSON de credenciales
  • Vuelve a autenticar en Colab

🔴 Error: "Computation timed out"

  • Reduce la escala o el área de interés
  • Usa ee.data.setDefaultTimeout() para aumentar el tiempo de espera

Mejores prácticas

Seguridad

  • Nunca commits el archivo JSON de credenciales
  • Usa variables de entorno en proyectos serios

Rendimiento

  • Filtra datos por fecha y región cuando sea posible
  • Usa scale apropiado para tu análisis

Organización

  • Mantén un registro de tus proyectos en GEE
  • Nombra claramente tus assets y tareas

¿Te sirvió este tutorial? ¡Déjame tus comentarios y comparte tus proyectos con la comunidad!

© 2025 - Blog de Tecnología Geoespacial