GeoTIFFs optimizados para Cloud (COG) en Earth Engine

Google Earth Engine te permite trabajar con datos ráster almacenados en tus propios buckets de Google Cloud Storage (GCS). Si usas GeoTIFFs optimizados para la nube (COGs), puedes acceder a tus datos y analizarlos directamente en Earth Engine sin tener que incorporarlos a los píxeles del almacén de recursos de Earth Engine.

Este enfoque centrado en la nube ofrece varios beneficios, en especial para administrar conjuntos de datos grandes o integrar Earth Engine en flujos de trabajo más amplios de Google Cloud o herramientas y plataformas externas.

¿Por qué usar Cloud Storage y COGs?

  • Flexibilidad e interoperabilidad: Conserva tus datos en buckets estándar de Cloud Storage, donde otras herramientas y servicios pueden acceder a ellos. Ya sea que subas los datos directamente o los exportes desde Earth Engine, Cloud Storage funciona como una fuente única de información para Earth Engine y los flujos de trabajo externos.
  • Control de datos y salida: Almacenar datos en Cloud Storage proporciona capacidades estándar de administración de almacenamiento de objetos. Esto te permite descargar, migrar, o compartir tus datos con las funciones de Cloud Storage, como Requester Pays o buckets públicos, y administrar el acceso con Cloud IAM estándar.
  • Ajuste de escala flexible: Evita los límites de almacenamiento de Earth Engine de almacenamiento. Cloud Storage proporciona un ajuste de escala de almacenamiento de autoservicio prácticamente ilimitado a escala de petabytes.
  • Sin espera de incorporación: El registro de un COG se completa rápidamente porque Earth Engine solo lee los metadatos (como la proyección y las dimensiones) del encabezado del archivo para la indexación y la validación. Los datos de píxeles reales permanecen en Cloud Storage y se leen a pedido durante el cómputo, lo que elimina la necesidad de una tarea de transferencia independiente.

Flujos de trabajo de COG en Earth Engine

Earth Engine admite flujos de trabajo bidireccionales con COGs en Cloud Storage: puedes leer COGs directamente desde GCS en Earth Engine y escribir resultados de procesamiento desde Earth Engine directamente en GCS como COGs.

Lectura de COGs desde Cloud Storage

Para incorporar COGs alojados en GCS a Earth Engine, tienes dos opciones:

  1. Carga directa (ee.Image.loadGeoTIFF): Carga una sola imagen directamente con su URI de GCS. Es la mejor opción para pruebas rápidas, análisis ad hoc o datos temporales:

    JavaScript

    var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');
    

    Python

    image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')
    

    Para ver ejemplos completos, consulta Imágenes de Cloud GeoTIFFs.

  2. Recursos registrados: Registra uno o más COGs como un recurso de Earth Engine con un manifiesto de carga (consulta la guía de registro de COG). Esta es la ruta recomendada para los flujos de trabajo de producción, en especial cuando se compilan colecciones de imágenes.

Función Carga directa (loadGeoTIFF) Recurso registrado (manifiesto)
Configuración Ninguno (solo URI de GCS) Manifiesto (cliente de Python, CLI o REST)
Rendimiento Estándar (lee el encabezado en la lectura) Optimizada (indexada en la creación)
Administración No se creó ningún recurso Se cuenta en la cuota de cantidad de recursos, no en el almacenamiento.
Caso práctico Prototipado, análisis ad hoc Flujos de trabajo de producción que necesitan lecturas rápidas

Escritura de COGs en Cloud Storage

Para guardar los resultados de procesamiento de Earth Engine como COGs en tu bucket de Cloud Storage, usa la Export.image.toCloudStorage función de exportación por lotes (consulta cómo exportar imágenes) y establece el parámetro cloudOptimized en true en formatOptions. Esto le indica a Earth Engine que compile la imagen y la escriba directamente en tu bucket de GCS como un COG totalmente compatible.

Ubicaciones de buckets de Cloud Storage compatibles

Para que Earth Engine acceda a tu bucket de Cloud Storage, el bucket debe estar ubicado en una de las siguientes regiones o multirregiones del centro de datos:

  • La multirregión us
  • Cualquier región birregional de EE.UU. que incluya us-central1
  • La región us-central1

Si tu bucket se coloca en cualquier otro centro de datos regional, Earth Engine rechazará las solicitudes de registro y lectura. Earth Engine accede a los COGs almacenados exclusivamente en buckets de Google Cloud Storage. No se admiten proveedores externos de almacenamiento en la nube ni URLs HTTP genéricas.

Especificaciones de exportación de COG de Earth Engine

Cuando exportas resultados analíticos de Earth Engine con Export.image.toCloudStorage con cloudOptimized: true en formatOptions, el exportador integrado de Earth Engine aplica automáticamente los siguientes estándares:

  • Estructura de archivos: Genera un BigTIFF (BIGTIFF=YES) con mosaicos internos (TILED=YES) y copia todas las vistas generales al comienzo del archivo.
  • Vistas generales automáticas: Si las dimensiones ráster de salida son de 512 x 512 píxeles o más, Earth Engine compila automáticamente cinco niveles de vistas generales de potencias de dos ([2, 4, 8, 16, 32]). Earth Engine selecciona de forma dinámica el método de remuestreo de la vista general según el tipo de datos de píxeles de salida: remuestreo cúbico para imágenes de punto flotante y remuestreo de vecino más cercano para todas las demás imágenes discretas o de números enteros.
  • Compresión y mosaicos predeterminados: Earth Engine exporta COGs con mosaicos de bloques de 256 x 256 píxeles y compresión LZW (COMPRESS=LZW). La compresión y las dimensiones de los mosaicos no se pueden personalizar en formatOptions.
  • Fragmentación automática: Si un ráster exportado es grande (supera los 4 GiB sin comprimir), Earth Engine divide automáticamente la exportación en varios mosaicos espaciales llamados baseFilename-yMin-xMin (consulta las exportaciones de archivos grandes).
  • Anula los límites de fragmentación: Para exportar rásteres grandes (hasta un límite máximo de 16 GiB sin comprimir y 131,072 píxeles por borde) como un solo archivo sin fragmentación, especifica fileDimensions dentro de formatOptions. Cada dimensión debe ser un múltiplo entero positivo del tamaño del mosaico (256 de forma predeterminada, por ejemplo, [65536, 65536]). Debido a que fileDimensions establece la dimensión máxima del archivo en lugar del cuadro delimitador de salida, pasar un límite grande fuerza la exportación a un solo archivo sin requerir cálculos exactos de la cuadrícula. También puedes pasar skipEmptyFiles: true para evitar generar mosaicos de fondo vacíos.
  • Compensaciones de optimización: Cuando configures exportaciones grandes, evalúa la compensación entre la cantidad de archivos y la velocidad de exportación. Si especificas fileDimensions o shardSize más pequeños, se producen más fragmentos de archivos, pero se maximiza el procesamiento paralelo en los trabajadores de backend, lo que genera tiempos de finalización de exportación más rápidos. Por el contrario, anular los límites para generar un solo archivo grande simplifica la administración de archivos y el uso compartido de datos, pero puede aumentar los tiempos de ejecución de la exportación debido al ensamblaje de un solo archivo y a los cuellos de botella de E/S. Las exportaciones de COG de un solo archivo muy grandes que se acercan al límite de 16 GiB sin comprimir (en especial, las imágenes que no se comprimen bien) también pueden exceder la capacidad de almacenamiento temporal durante la vista general y el ensamblaje de COG. Si falla una exportación, considera la fragmentación en archivos más pequeños o la conversión externa de una exportación GeoTIFF estándar.

Personaliza la creación de COG fuera de Earth Engine

Si bien la exportación directa con cloudOptimized: true es la forma más sencilla de generar COGs listos para usar para la mayoría de los flujos de trabajo, también puedes exportar un GeoTIFF estándar (cloudOptimized: false, el valor predeterminado) y convertirlo en un COG por tu cuenta con herramientas externas como GDAL. Un flujo de trabajo de exportación y conversión de dos pasos puede ser útil cuando necesitas hacer lo siguiente:

  • Personaliza la compresión y el diseño: Adapta los tamaños de bloque (como 512x512), los predictores, los métodos de remuestreo de la vista general o los códecs de compresión (como ZSTD) a tu conjunto de datos (consulta cómo preparar tus COGs).
  • Evita errores de capacidad en exportaciones masivas de un solo archivo: Omitir la generación de vistas generales y la reescritura del diseño de COG durante la exportación reduce la sobrecarga de memoria y almacenamiento temporal, lo que hace que las exportaciones de un solo archivo muy grandes tengan menos probabilidades de alcanzar los límites de capacidad.
  • Reduce el tiempo de ejecución de la exportación de Earth Engine: Descargar la compilación de vistas generales y el formato de COG a tu propio entorno de procesamiento acorta la fase de exportación de Earth Engine.

Consideraciones sobre los costos y clases de almacenamiento

Cuando analizas los recursos de COG registrados, las lecturas de Earth Engine no generan cargos por operación de lectura o recuperación de datos de Cloud Storage en tu proyecto de Google Cloud.

Cloud Storage te factura principalmente por el almacenamiento de datos en reposo (GB/mes) mensual estándar y por cualquier transferencia de datos de clientes externos o tarifas de salida de red (según la ubicación del bucket y la configuración de red del cliente).

Recomendaciones de clase de almacenamiento

  • Standard Storage (recomendado): Standard Storage es el más adecuado para los flujos de trabajo activos de Earth Engine. Como no tiene reglas de duración mínima de almacenamiento, puedes anular, actualizar o borrar COGs temporales libremente sin incurrir en sanciones por eliminación anticipada. Además, si tú o tus colaboradores acceden al bucket con software GIS de escritorio, secuencias de comandos de GDAL o notebooks de aprendizaje automático fuera de Earth Engine, Standard Storage no genera recargos por recuperación minorista.
  • Nearline Storage, Coldline Storage y Archive Storage: Todas las clases de Cloud Storage proporcionan el mismo acceso de baja latencia y capacidad de procesamiento que Standard Storage, por lo que no hay penalización por rendimiento de lectura cuando se usan niveles de almacenamiento más fríos en Earth Engine. Si bien los procesamientos de Earth Engine también pueden leer estos niveles sin evaluar las tarifas de recuperación de datos minoristas, las reglas minoristas de Cloud Storage aplican duraciones mínimas estrictas de almacenamiento (30 días para Nearline, 90 días para Coldline y 365 días para Archive). Si modificas o borras archivos antes de su duración mínima, se activan recargos por eliminación anticipada. Además, acceder a objetos fríos desde cualquier herramienta de cliente externa genera recargos costosos por recuperación de datos.

Para obtener información detallada sobre los precios minoristas y las políticas de duración mínima, consulta la Guía de precios de Google Cloud Storage.

Flujo de trabajo de alto nivel

Los flujos de trabajo típicos para usar COGs en Earth Engine incluyen los siguientes pasos:

Para importar datos externos, haz lo siguiente:

  • Optimiza: Convierte tus archivos ráster al formato COG con herramientas externas (como GDAL, secuencias de comandos de estaciones de trabajo locales o canalizaciones de procesamiento en la nube).
  • Sube: Sube los COGs a un bucket de Cloud Storage compatible ubicado en us-central1 o en una multirregión de EE.UU.
  • Permisos: Asegúrate de que tú y cualquier colaborador del proyecto tengan acceso de lectura de Cloud Storage a los archivos (consulta los permisos de COG).
  • Registra: Usa la biblioteca cliente de Python, la herramienta de línea de comandos earthengine o la API de REST para registrar los COGs como recursos de Earth Engine (consulta el registro de COG).

Para exportar resultados, haz lo siguiente:

  • Exporta: Ejecuta una exportación por lotes de Earth Engine a Cloud Storage con cloudOptimized configurado como true (consulta cómo exportar imágenes).
  • Registra (opcional): Vuelve a registrar el COG exportado en Earth Engine como un recurso nuevo para realizar más análisis (consulta el registro de COG).

¿Todo listo para comenzar? Sigue la guía detallada de registro de COG para registrar tu primer recurso.