Google Earth Engine: API Javascript vs. API Python

Sep 22 2020

O Google Earth Engine parece ser mais comumente usado por meio da API Python ou da API Javascript no navegador. Tentando decidir por um, descobri esta comparação, em uma apresentação de Tyler Erickson :

Enquanto algumas diferenças são claras (por exemplo, muitas mais opções de plotagem em Python), outras são mais abstratas para mim.


Questões:

  1. Em termos práticos, quais são as vantagens de poder fazer uma "série de chamadas para o Earth Engine" na API Python?
  2. Existem outras diferenças não listadas aqui, talvez em relação à eficiência ao exportar dados ou a velocidade dos cálculos?

Respostas

3 TylerErickson Sep 22 2020 at 16:46

Para obter contexto adicional sobre o slide mencionado na pergunta, observe que ele está comparando o uso do Editor de código do Earth Engine (um IDE da web para desenvolvimento com a API JavaScript do Earth Engine) e o uso da API Python do Earth Engine. O slide é de uma apresentação feita há mais de 3 anos, e as APIs JavaScript e Python foram alteradas e o Editor de código ganhou recursos adicionais, como a capacidade de compartilhar código entre scripts do Editor de código usando módulos de script .

Para a pergunta nº 1:

Para esclarecer, uma série de solicitações pode ser feita usando as bibliotecas cliente JavaScript ou Python e também de dentro do Editor de código. No entanto, trabalhar diretamente com a biblioteca cliente Python (ou JavaScript) oferece mais flexibilidade em termos do que você pode fazer com os resultados. Por exemplo, você pode intercalar chamadas do Earth Engine com solicitações para outros serviços e usar bibliotecas não suportadas atualmente pelo ambiente de desenvolvimento do Editor de código.

Ser capaz de realizar uma série de chamadas facilita os seguintes exemplos:

  • Análise de sensibilidade. Você pode obter dados enquanto varia um (ou mais) parâmetros, permitindo que você execute uma análise de sensibilidade . Por exemplo, como a alteração do scaleparâmetro afeta os resultados obtidos em ee.Image.reduceRegion ?
  • Série de saídas. Você pode produzir uma série de imagens, mapas ou tabelas de saída. Por exemplo, você pode gerar uma imagem sem nuvens para cada bacia hidrográfica de um país.
  • Notebooks Jupyter. Você pode desenvolver fluxos de trabalho / tutoriais que exibem resultados intermediários. Por exemplo, consulte o bloco de notas Jupyter / Colab com link neste tutorial .

Para a pergunta nº 2:

  • Certamente há outras diferenças além da lista simples mostrada no slide, como algumas diferenças na sintaxe . Outra é que o Editor de código do Earth Engine permite que os desenvolvedores publiquem facilmente aplicativos hospedados (aplicativos do Earth Engine ), o que exigiria muito mais trabalho para fazer o mesmo usando a API Python.
  • As APIs JavaScript e Python utilizam uma API REST de nível inferior para cálculos realizados nos servidores de back-end do Earth Engine, portanto, não há benefício computacional ou de desempenho de exportação em usar um sobre o outro.