Google Earth Engine: API Javascript vs API Python
Google Earth Engine semble être le plus couramment utilisé via l'API Python ou l'API Javascript sur le navigateur. En essayant d'en décider un, je suis tombé sur cette comparaison, à partir d'une présentation de Tyler Erickson :
Alors que certaines différences sont claires (par exemple, beaucoup plus d'options de traçage en Python), d'autres sont plus abstraites pour moi.
Des questions:
- Concrètement, quels sont les avantages de pouvoir effectuer une "série d'appels à Earth Engine" dans l'API Python?
- Existe-t-il d'autres différences non répertoriées ici, peut-être en ce qui concerne l'efficacité lors de l'exportation de données ou la vitesse des calculs?
Réponses
Pour plus de contexte sur la diapositive référencée dans la question, notez qu'elle compare l'utilisation de l' éditeur de code Earth Engine (un IDE Web pour le développement par rapport à l'API JavaScript d'Earth Engine) et de l'API Earth Engine Python. La diapositive provient d'une présentation faite il y a plus de 3 ans, et les API JavaScript et Python ont changé et l'éditeur de code a acquis des fonctionnalités supplémentaires telles que la possibilité de partager du code entre les scripts de l'éditeur de code à l'aide de modules de script .
Pour la question n ° 1:
Pour clarifier, une série de requêtes peut être effectuée à l'aide des bibliothèques clientes JavaScript ou Python , ainsi qu'à partir de l'éditeur de code. Cependant, travailler directement avec la bibliothèque cliente Python (ou JavaScript) vous donne plus de flexibilité quant à ce que vous pouvez faire avec les résultats. Par exemple, vous pouvez entrelacer les appels Earth Engine avec des demandes adressées à d'autres services et utiliser des bibliothèques qui ne sont actuellement pas prises en charge par l'environnement de développement de l'éditeur de code.
Être capable d'effectuer une série d'appels facilite les exemples suivants:
- Analyses de sensibilité. Vous pouvez obtenir des données en faisant varier un (ou plusieurs) paramètres, ce qui vous permet d'effectuer une analyse de sensibilité . Par exemple, comment la modification du
scaleparamètre affecte-t-elle les résultats obtenus à partir de ee.Image.reduceRegion ? - Série de sorties. Vous pouvez produire une série d'images, de cartes ou de tableaux en sortie. Par exemple, vous pouvez générer une image sans nuage pour chaque bassin versant d'un pays.
- Ordinateurs portables Jupyter. Vous pouvez développer des workflows / tutoriels qui affichent des résultats intermédiaires. Par exemple, consultez le bloc-notes Jupyter / Colab lié à partir de ce didacticiel .
Pour la question n ° 2:
- Il existe certainement d'autres différences au-delà de la simple liste montrée sur la diapositive, telles que des différences de syntaxe . Un autre est que l'éditeur de code Earth Engine permet aux développeurs de publier facilement des applications hébergées ( Earth Engine Apps ), ce qui nécessiterait beaucoup plus de travail pour faire de même avec l'API Python.
- Les API JavaScript et Python utilisent toutes deux une API REST de niveau inférieur pour les calculs effectués sur les serveurs backend Earth Engine, il n'y a donc aucun avantage en termes de performances de calcul ou d'exportation à utiliser l'un par rapport à l'autre.