Extraction de données d'image

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. La tâche est entièrement gérée par Earth Engine. Si vos tâches d'exportation rencontrent des problèmes de scaling (par exemple, elles 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 pouvez préférer les méthodes d'extraction de données décrites ici. Les workflows implémentés 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'envoyer 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 pixel 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 liste 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'éléments existants

Utilisez getPixels pour obtenir des données d'image à partir d'éléments Earth Engine existants. Vous transmettez l'ID de l'asset directement à la requête. Vous ne pouvez donc effectuer aucun 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 des séries temporelles 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 des données d'image à partir d'une image calculée, par exemple un 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 extraits de données multispectrales à partir d'un composite Sentinel-2 sans nuage.

Parallélisation manuelle des requêtes

Bien que vous puissiez effectuer des requêtes à n'importe quel volume et à n'importe quel but, vous pouvez choisir de paralléliser les requêtes pour des workflows plus importants. Pour effectuer de nombreuses requêtes de ce type en parallèle, vous devez utiliser le point de terminaison Earth Engine à fort volume. Le nombre de requêtes parallèles que vous pouvez effectuer est défini par votre quota de requêtes interactives simultanées. Consultez la page sur le point de terminaison à fort volume d'Earth Engine pour savoir quand utiliser le point de terminaison à fort volume.

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 en local ou en tant que tâches Google Dataflow. Pour obtenir des exemples, consultez cette formation Geo for Good ou cette démonstration sur les personnes, la planète et l'IA. D'autres bibliothèques de parallélisation incluent Dask et Apache Spark.