Google Earth Engine: API de JavaScript frente a API de Python

Sep 22 2020

Google Earth Engine parece ser el más utilizado a través de la API de Python o la API de Javascript en el navegador. Al intentar decidirme por uno, me encontré con esta comparación, de una presentación de Tyler Erickson :

Si bien algunas diferencias son claras (por ejemplo, muchas más opciones de trazado en Python), otras son más abstractas para mí.


Preguntas:

  1. En términos prácticos, ¿cuáles son las ventajas de poder realizar una "serie de llamadas a Earth Engine" en la API de Python?
  2. ¿Hay otras diferencias que no se enumeran aquí, tal vez en lo que respecta a la eficiencia al exportar datos o la velocidad de los cálculos?

Respuestas

3 TylerErickson Sep 22 2020 at 16:46

Para obtener más contexto sobre la diapositiva a la que se hace referencia en la pregunta, tenga en cuenta que se compara el uso del Editor de código de Earth Engine (un IDE web para desarrollar con la API de JavaScript de Earth Engine) con el uso de la API de Python de Earth Engine. La diapositiva es de una presentación realizada hace más de 3 años, y tanto las API de JavaScript como las de Python han cambiado y el Editor de código ha ganado características adicionales, como la capacidad de compartir código entre scripts del Editor de código utilizando módulos de script .

Para la pregunta # 1:

Para aclarar, se pueden realizar una serie de solicitudes utilizando las bibliotecas cliente de JavaScript o Python , y también desde el Editor de código. Sin embargo, trabajar directamente con la biblioteca cliente de Python (o JavaScript) le brinda más flexibilidad en términos de lo que puede hacer con los resultados. Por ejemplo, puede intercalar llamadas de Earth Engine con solicitudes a otros servicios y utilizar bibliotecas que actualmente no son compatibles con el entorno de desarrollo del Editor de código.

Poder realizar una serie de llamadas facilita los siguientes ejemplos:

  • Análisis de sensibilidad. Puede obtener datos mientras varía uno (o más) parámetros, lo que le permite realizar un análisis de sensibilidad . Por ejemplo, ¿cómo afecta el scaleparámetro cambiante a los resultados obtenidos de ee.Image.reduceRegion ?
  • Serie de salidas. Puede producir una serie de imágenes, mapas o tablas de salida. Por ejemplo, podría generar una imagen sin nubes para cada cuenca hidrográfica de un país.
  • Cuadernos Jupyter. Puede desarrollar flujos de trabajo / tutoriales que muestren resultados intermedios. Por ejemplo, consulte el cuaderno de Jupyter / Colab vinculado desde este tutorial .

Para la pregunta 2:

  • Ciertamente, existen otras diferencias más allá de la simple lista que se muestra en la diapositiva, como algunas diferencias en la sintaxis . Otro es que el editor de código de Earth Engine permite a los desarrolladores publicar fácilmente aplicaciones alojadas (aplicaciones de Earth Engine ), lo que requeriría mucho más trabajo para hacer lo mismo con la API de Python.
  • Tanto las API de JavaScript como las de Python utilizan una API REST de nivel inferior para los cálculos realizados en los servidores de backend de Earth Engine, por lo que no hay ningún beneficio de rendimiento computacional o de exportación al usar una sobre la otra.