Google Earth Engine: API Javascript e API Python

Sep 22 2020

Google Earth Engine sembra essere più comunemente utilizzato tramite l'API Python o l'API Javascript sul browser. Cercando di decidere per uno, mi sono imbattuto in questo confronto, da una presentazione di Tyler Erickson :

Mentre alcune differenze sono chiare (ad esempio molte più opzioni di stampa in Python), altre sono più astratte per me.


Domande:

  1. In termini pratici, quali sono i vantaggi di poter effettuare una "serie di chiamate a Earth Engine" nell'API Python?
  2. Ci sono altre differenze non elencate qui, forse per quanto riguarda l'efficienza durante l'esportazione dei dati o la velocità dei calcoli?

Risposte

3 TylerErickson Sep 22 2020 at 16:46

Per ulteriore contesto sulla diapositiva a cui si fa riferimento nella domanda, tieni presente che sta confrontando l'utilizzo dell'Earth Engine Code Editor (un IDE Web per lo sviluppo rispetto all'API JavaScript di Earth Engine) rispetto all'utilizzo dell'API Python di Earth Engine. La diapositiva proviene da una presentazione fatta oltre 3 anni fa, e sia le API JavaScript che le API Python sono cambiate e l'Editor del codice ha acquisito funzionalità aggiuntive come la possibilità di condividere il codice tra gli script dell'Editor del codice utilizzando moduli di script .

Per la domanda n. 1:

Per chiarire, è possibile effettuare una serie di richieste utilizzando le librerie client JavaScript o Python e anche dall'Editor del codice. Tuttavia, lavorare direttamente con la libreria client Python (o JavaScript) ti offre una maggiore flessibilità in termini di ciò che puoi fare con i risultati. Ad esempio, puoi alternare le chiamate di Earth Engine con richieste ad altri servizi e utilizzare librerie non attualmente supportate dall'ambiente di sviluppo dell'Editor di codice.

Essere in grado di eseguire una serie di chiamate facilita i seguenti esempi:

  • Analisi di sensibilità. È possibile ottenere dati variando uno (o più) parametri, consentendo di eseguire un'analisi di sensibilità . Ad esempio, in che modo la modifica del scaleparametro influisce sui risultati ottenuti da ee.Image.reduceRegion ?
  • Serie di uscite. È possibile produrre una serie di immagini, mappe o tabelle di output. Ad esempio, potresti generare un'immagine senza nuvole per ogni spartiacque in un paese.
  • Quaderni Jupyter. È possibile sviluppare flussi di lavoro / tutorial che visualizzano risultati intermedi. Ad esempio, vedere il taccuino Jupyter / Colab collegato da questo tutorial .

Per la domanda n. 2:

  • Ci sono certamente altre differenze oltre al semplice elenco mostrato nella diapositiva, come alcune differenze di sintassi . Un altro è che l'Earth Engine Code Editor consente agli sviluppatori di pubblicare facilmente applicazioni ospitate ( Earth Engine Apps ), il che richiederebbe molto più lavoro per fare lo stesso utilizzando l'API Python.
  • Entrambe le API JavaScript e Python utilizzano un'API REST di livello inferiore per i calcoli eseguiti sui server back-end di Earth Engine, quindi non vi è alcun vantaggio in termini di prestazioni computazionali o di esportazione dell'utilizzo l'uno sull'altro.