Obtenir des données d'image à partir d'Earth Engine
Pour transférer des données d'image d'Earth Engine vers Google Drive, Cloud Storage ou un élément Earth Engine, vous pouvez utiliser Export. Le job est alors entièrement géré par Earth Engine. Si vos jobs d'exportation rencontrent des problèmes de scaling (par exemple, s'ils prennent plus d'une journée, renvoient des erreurs de mémoire ou de délai avant expiration) ou si vous connaissez déjà un framework tel qu'Apache Beam, Spark ou Dask, vous préférerez peut-être les méthodes d'extraction de données décrites ici. Les workflows mis en œuvre dans ces frameworks peuvent être mis à l'échelle à l'aide d'outils Google Cloud tels que Dataflow ou Dataproc.
Plus précisément, ce guide décrit les méthodes permettant d'effectuer manuellement des requêtes de données d'image à l'aide de getPixels ou de computePixels.
Ici, "données d'image" désigne des tableaux multidimensionnels de valeurs de pixels avec une échelle et une projection cohérentes. La région, l'échelle, la projection et/ou les dimensions sont spécifiées dans la requête. La page ImageFileFormat répertorie les formats de sortie possibles. Les destinations de sortie incluent Cloud Storage ou tout répertoire installé localement. Les requêtes manuelles ajoutent de la complexité, mais peuvent s'adapter à des charges de travail plus importantes.
Obtenir des données d'image à partir d'assets existants
Utilisez getPixels pour obtenir des données d'image à partir d'éléments Earth Engine existants. Vous transmettez l'ID d'élément directement à la requête. Vous ne pouvez donc pas effectuer de calcul sur les pixels avant de les extraire. Un bloc de pixels dans la région, l'échelle, la projection et le format spécifiés est renvoyé. L'exemple suivant montre comment obtenir une série temporelle de NDVI à partir d'une collection d'images MODIS à l'aide de getPixels.
Obtenir des données d'image à partir d'images calculées
Utilisez computePixels pour obtenir les données d'une image calculée, par exemple une image composite. Avec computePixels, vous transmettez un objet ee.Image calculé via le paramètre expression. Un bloc de pixels calculés dans la région, l'échelle, la projection et le format spécifiés est renvoyé. L'exemple suivant montre comment obtenir des correctifs de données multispectrales à partir d'un composite Sentinel-2 sans nuages.
Parallélisation manuelle des requêtes
Bien que vous puissiez envoyer des requêtes à n'importe quelle fin et dans n'importe quel volume, vous pouvez paralléliser les requêtes pour les workflows plus volumineux. Pour effectuer de nombreuses requêtes de ce type en parallèle, vous devez utiliser le point de terminaison Earth Engine à volume élevé. Le nombre de requêtes parallèles que vous pouvez avoir est défini par votre quota de requêtes interactives simultanées. Consultez la page Earth Engine sur les volumes élevés pour savoir quand utiliser le point de terminaison pour les volumes élevés.
Multithreading
Vous pouvez utiliser des threads pour effectuer des requêtes simultanées. Cette approche est illustrée dans les exemples de notebooks getPixels et computePixels.
Apache Beam
Vous pouvez utiliser des pipelines Apache Beam pour paralléliser les requêtes. Ces pipelines peuvent être exécutés localement ou en tant que jobs Google Dataflow. Pour obtenir des exemples, consultez cette formation Geo for Good ou cette démonstration People, Planet and AI. Vous pouvez également utiliser d'autres bibliothèques de parallélisation, telles que Dask et Apache Spark.
Exécuter dans Google Colab
Afficher la source sur GitHub