GeoTIFF optimisés pour le cloud (COG) dans Earth Engine

Google Earth Engine vous permet d'utiliser des données raster stockées dans vos propres buckets Google Cloud Storage (GCS). En utilisant des GeoTIFF optimisés pour le cloud (COG), vous pouvez accéder à vos données et les analyser directement dans Earth Engine sans avoir à ingérer les pixels dans le store d'éléments d'Earth Engine.

Cette approche axée sur le cloud offre plusieurs avantages, en particulier pour la gestion de grands ensembles de données ou l'intégration d'Earth Engine dans des workflows Google Cloud plus larges ou des outils et plates-formes externes.

Pourquoi utiliser Cloud Storage et les COG ?

  • Flexibilité et interopérabilité : conservez vos données dans des buckets Cloud Storage standards, où d'autres outils et services peuvent y accéder. Que vous importiez les données directement ou que vous les exportiez depuis Earth Engine, Cloud Storage sert de source unique de référence pour Earth Engine et les workflows externes.
  • Contrôle et sortie des données : le stockage des données dans Cloud Storage offre des fonctionnalités standards de gestion du stockage d'objets. Vous pouvez ainsi télécharger, migrer, ou partager vos données à l'aide de fonctionnalités Cloud Storage telles que Requester Pays ou les buckets publics, et gérer l'accès à l'aide de Cloud IAM standard.
  • Scaling flexible : évitez les limites de stockage d'Earth Engine . Cloud Storage fournit un scaling de stockage en libre-service pratiquement illimité à l'échelle du pétaoctet.
  • Pas d'attente d'ingestion : l'enregistrement d'un COG s'effectue rapidement, car Earth Engine ne lit que les métadonnées (telles que la projection et les dimensions) de l'en-tête du fichier pour l'indexation et la validation. Les données de pixels réelles restent dans Cloud Storage et sont lues à la demande lors du calcul, ce qui élimine le besoin d'une tâche d'ingestion distincte.

Workflows COG dans Earth Engine

Earth Engine est compatible avec les workflows bidirectionnels avec les COG sur Cloud Storage : vous pouvez lire les COG directement depuis GCS dans Earth Engine, et vous pouvez écrire les résultats de calcul d'Earth Engine directement dans GCS en tant que COG.

Lecture des COG à partir de Cloud Storage

Pour importer des COG hébergés sur GCS dans Earth Engine, deux options s'offrent à vous :

  1. Chargement direct (ee.Image.loadGeoTIFF) : chargez une seule image directement à l'aide de son URI GCS. Cette option est idéale pour les tests rapides, les analyses ad hoc ou les données temporaires :

    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')
    

    Pour obtenir des exemples complets, consultez Images à partir de Cloud GeoTIFF.

  2. Éléments enregistrés : enregistrez un ou plusieurs COG en tant qu' élément Earth Engine à l'aide d'un fichier manifeste d'importation (consultez le guide d'enregistrement des COG). Il s'agit du chemin recommandé pour les workflows de production, en particulier lors de la création de collections d'images.

Fonctionnalité Chargement direct (loadGeoTIFF) Élément enregistré (fichier manifeste)
Configuration Aucune (uniquement l'URI GCS) Fichier manifeste (client Python, CLI ou REST)
Performances Standard (lecture de l'en-tête lors de la lecture) Optimisé (indexé lors de la création)
Gestion Aucun élément créé Décompté du quota de nombre d'éléments, pas du stockage.
Cas d'utilisation Prototypage, analyse ad hoc Workflows de production nécessitant des lectures rapides.

Écriture des COG dans Cloud Storage

Pour enregistrer les résultats de calcul d'Earth Engine en tant que COG dans votre bucket Cloud Storage, utilisez la Export.image.toCloudStorage fonction d'exportation par lot (consultez Exporter des images) et définissez le paramètre cloudOptimized sur true dans formatOptions. Earth Engine compile alors l'image et l'écrit directement dans votre bucket GCS en tant que COG entièrement conforme.

Emplacements de buckets Cloud Storage compatibles

Pour qu'Earth Engine puisse accéder à votre bucket Cloud Storage, celui-ci doit se trouver dans l'une des régions ou zones multirégionales de centres de données suivantes :

  • La zone multirégionale us
  • Toute zone birégionale américaine incluant us-central1
  • La région us-central1

Si votre bucket est placé dans un autre centre de données régional, Earth Engine rejettera les requêtes d'enregistrement et de lecture. Earth Engine accède aux COG stockés exclusivement dans les buckets Google Cloud Storage. Les fournisseurs de stockage cloud externes et les URL HTTP génériques ne sont pas compatibles.

Spécifications d'exportation des COG Earth Engine

Lorsque vous exportez des résultats d'analyse depuis Earth Engine à l'aide de Export.image.toCloudStorage avec cloudOptimized: true dans formatOptions, l'exportateur intégré d'Earth Engine applique automatiquement les normes suivantes :

  • Structure de fichiers : génère un BigTIFF (BIGTIFF=YES) avec des tuiles internes (TILED=YES) et copie toutes les vues d'ensemble au début du fichier.
  • Vues d'ensemble automatiques : si les dimensions raster de sortie sont supérieures ou égales à 512 x 512 pixels, Earth Engine crée automatiquement cinq niveaux de vues d'ensemble de puissance de deux ([2, 4, 8, 16, 32]). Earth Engine sélectionne dynamiquement la méthode de rééchantillonnage de la vue d'ensemble en fonction du type de données de pixels de sortie : rééchantillonnage cubique pour les images à virgule flottante et rééchantillonnage du plus proche voisin pour toutes les autres images entières ou discrètes.
  • Compression et tuilage par défaut : Earth Engine exporte les COG avec un tuilage de blocs de pixels de 256 x 256 et une compression LZW (COMPRESS=LZW). La compression et les dimensions des tuiles ne peuvent pas être personnalisées dans formatOptions.
  • Partitionnement automatique : si un raster exporté est volumineux (plus de 4 Gio non compressés), Earth Engine divise automatiquement l'exportation en plusieurs tuiles spatiales nommées baseFilename-yMin-xMin (consultez Exportations de fichiers volumineux).
  • Remplacer les limites de segmentation : pour exporter des trames volumineuses (jusqu'à une limite maximale de 16 Gio non compressés et 131 072 pixels par bord) en tant que fichier unique sans segmentation, spécifiez fileDimensions dans formatOptions. Chaque dimension doit être un multiple entier positif de la taille de la tuile (256 par défaut, par exemple, [65536, 65536]). Étant donné que fileDimensions définit la dimension maximale du fichier plutôt que le cadre de délimitation de sortie, le fait de transmettre une limite élevée force l'exportation dans un seul fichier sans nécessiter de calculs de grille exacts. Vous pouvez également transmettre skipEmptyFiles: true pour éviter de générer des tuiles d'arrière-plan vides.
  • Compromis d'optimisation : lors de la configuration d'exportations volumineuses, évaluez le compromis entre le nombre de fichiers et la vitesse d'exportation. La spécification de fileDimensions ou shardSize plus petits produit davantage de fragments de fichiers, mais maximise le traitement parallèle sur les nœuds de calcul backend, ce qui réduit les délais d'exportation. À l'inverse, le remplacement des limites pour générer un seul fichier volumineux simplifie la gestion des fichiers et le partage des données, mais peut augmenter les délais d'exécution de l'exportation en raison de l'assemblage de fichiers uniques et des goulots d'étranglement d'E/S. Les exportations de COG à fichier unique très volumineuses approchant la limite de 16 Gio non compressés (en particulier les images qui ne se compressent pas bien) peuvent également dépasser la capacité de stockage temporaire lors de l'assemblage des vues d'ensemble et des COG. Si une exportation échoue, envisagez de partitionner les fichiers en plus petits ou de convertir une exportation GeoTIFF standard en externe.

Personnalisation de la création de COG en dehors d'Earth Engine

Bien que l'exportation directe avec cloudOptimized: true soit le moyen le plus simple de générer des COG prêts à l'emploi pour la plupart des workflows, vous pouvez également exporter un GeoTIFF standard (cloudOptimized: false, la valeur par défaut) et le convertir vous-même en COG à l'aide d'outils externes tels que GDAL. Un workflow d'exportation et de conversion en deux étapes peut être utile lorsque vous devez :

  • Personnaliser la compression et la mise en page : adaptez les tailles de blocs (telles que 512x512), les prédicteurs, les méthodes de rééchantillonnage des vues d'ensemble ou les codecs de compression (tels que ZSTD) à votre ensemble de données (consultez Préparer vos COG).
  • Éviter les erreurs de capacité lors des exportations massives à fichier unique : ignorer la génération de vues d'ensemble et la réécriture de la mise en page des COG lors de l'exportation réduit la surcharge de mémoire et de stockage temporaire, ce qui réduit le risque que les exportations à fichier unique très volumineuses atteignent les limites de capacité.
  • Réduire le délai d'exécution de l'exportation Earth Engine : décharger la création de vues d'ensemble et le formatage des COG dans votre propre environnement de calcul raccourcit la phase d'exportation d'Earth Engine.

Considérations sur les coûts et classes de stockage

Lors de l'analyse des éléments COG enregistrés, les lectures d'Earth Engine n'entraînent pas de frais d'opération de lecture ou de récupération de données Cloud Storage sur votre projet Google Cloud.

Cloud Storage vous facture principalement le stockage de données au repos mensuel standard (Go/mois) et les frais de transfert de données ou de sortie réseau des clients externes (en fonction de l'emplacement de votre bucket et de la configuration réseau du client).

Recommandations concernant les classes de stockage

  • Stockage standard (recommandé) : le stockage standard est le mieux adapté aux workflows Earth Engine actifs. Comme il n'existe aucune règle de durée de stockage minimale, vous pouvez librement remplacer, mettre à jour ou supprimer des COG temporaires sans encourir de pénalités de suppression anticipée. De plus, si vous ou vos collaborateurs accédez au bucket à l'aide d'un logiciel SIG de bureau, de scripts GDAL ou de notebooks de machine learning en dehors d'Earth Engine, le stockage standard n'entraîne aucun supplément de récupération au détail.
  • Stockage Nearline, Coldline et Archive : toutes les classes Cloud Storage offrent le même accès à faible latence et le même débit que le stockage standard. Il n'y a donc aucune pénalité de performances de lecture lorsque vous utilisez des niveaux de stockage plus froids dans Earth Engine. Bien que les calculs Earth Engine puissent également lire ces niveaux sans facturer de frais de récupération de données au détail, les règles de vente au détail de Cloud Storage appliquent des durées de stockage minimales strictes (30 jours pour Nearline, 90 jours pour Coldline, 365 jours pour Archive). La modification ou la suppression de fichiers avant leur durée minimale entraîne des suppléments de suppression anticipée. De plus, l'accès à des objets froids à partir d'un outil client externe entraîne des suppléments de récupération de données coûteux.

Pour connaître les tarifs de vente au détail détaillés et les règles de durée minimale, consultez le Guide des tarifs de Google Cloud Storage.

Workflow de haut niveau

Les workflows types d'utilisation des COG dans Earth Engine comprennent les étapes suivantes :

Pour importer des données externes :

  • Optimiser : convertissez vos fichiers raster au format COG à l'aide d'outils externes (tels que GDAL, des scripts de stations de travail locales ou des pipelines de traitement cloud).
  • Importer : importez les COG dans un bucket Cloud Storage compatible situé dans us-central1 ou dans une zone multirégionale américaine.
  • Autorisations : assurez-vous que vous et tous les collaborateurs du projet disposez d'un accès en lecture Cloud Storage aux fichiers (consultez Autorisations COG).
  • Enregistrer : utilisez la bibliothèque cliente Python, l'outil de ligne de commande earthengine ou l'API REST pour enregistrer les COG en tant qu'éléments Earth Engine (consultez Enregistrement des COG).

Pour exporter les résultats :

  • Exporter : exécutez une exportation par lot d'Earth Engine vers Cloud Storage avec cloudOptimized défini sur true (consultez Exporter des images).
  • Enregistrer (facultatif) : enregistrez le COG exporté dans Earth Engine en tant que nouvel élément pour une analyse plus approfondie (consultez Enregistrement des COG).

Prêt à vous lancer ? Suivez le guide d'enregistrement détaillé des COG pour enregistrer votre premier élément.