Google Earth Engine: API Javascript и API Python

Sep 22 2020

Google Earth Engine, по-видимому, чаще всего используется либо через Python API, либо через Javascript API в браузере. Пытаясь выбрать один, я наткнулся на это сравнение из презентации Тайлера Эриксона :

Хотя некоторые различия очевидны (например, намного больше вариантов построения графиков в Python), другие для меня более абстрактны.


Вопросов:

  1. С практической точки зрения, каковы преимущества возможности совершать «серию вызовов Earth Engine» в Python API?
  2. Есть ли другие различия, не перечисленные здесь, возможно, в отношении эффективности при экспорте данных или скорости вычислений?

Ответы

3 TylerErickson Sep 22 2020 at 16:46

В качестве дополнительного контекста на слайде, упомянутом в вопросе, обратите внимание, что здесь сравнивается использование редактора кода Earth Engine (веб-IDE для разработки с использованием API JavaScript Earth Engine) с использованием API Python Earth Engine. Слайд взят из презентации, сделанной более 3 лет назад, и API JavaScript и Python изменились, а редактор кода получил дополнительные функции, такие как возможность совместного использования кода между сценариями редактора кода с помощью модулей сценариев .

По вопросу №1:

Чтобы уточнить, можно сделать серию запросов с использованием клиентских библиотек JavaScript или Python , а также из редактора кода. Однако работа напрямую с клиентской библиотекой Python (или JavaScript) дает вам большую гибкость с точки зрения того, что вы можете делать с результатами. Например, вы можете чередовать вызовы Earth Engine с запросами к другим службам и использовать библиотеки, которые в настоящее время не поддерживаются средой разработки редактора кода.

Возможность выполнить серию вызовов упрощает следующие примеры:

  • Анализ чувствительности. Вы можете получать данные, изменяя один (или несколько) параметров, что позволяет выполнять анализ чувствительности . Например, как изменение scaleпараметра влияет на результаты, полученные из ee.Image.reduceRegion ?
  • Серия выходов. Вы можете создать серию выходных изображений, карт или таблиц. Например, вы можете создать безоблачное изображение для каждого водораздела в стране.
  • Блокноты Jupyter. Вы можете разрабатывать рабочие процессы / учебные пособия, отображающие промежуточные результаты. Например, см. Записную книжку Jupyter / Colab, ссылку на которую можно найти в этом руководстве .

По вопросу № 2:

  • Конечно, есть и другие отличия помимо простого списка, показанного на слайде, например, некоторые различия в синтаксисе . Другой заключается в том, что редактор кода Earth Engine позволяет разработчикам легко публиковать размещенные приложения (приложения Earth Engine ), для чего потребуется значительно больше работы, чтобы сделать то же самое с помощью Python API.
  • И JavaScript, и Python API используют REST API более низкого уровня для вычислений, выполняемых на внутренних серверах Earth Engine, поэтому использование одного из них не дает преимущества в вычислительной или экспортной производительности.