Google Earthエンジン:JavascriptAPIとPythonAPI

Sep 22 2020

Google Earthエンジンは、PythonAPIまたはブラウザのJavascriptAPIのいずれかを介して最も一般的に使用されているようです。1つを決定しようとすると、タイラーエリクソンのプレゼンテーションからこの比較に出くわしました。

いくつかの違いは明らかですが(たとえば、Pythonでのより多くのプロットオプション)、他の違いは私にとってより抽象的です。


質問:

  1. 実際には、PythonAPIで「EarthEngineへの一連の呼び出し」を実行できることの利点は何ですか?
  2. おそらくデータをエクスポートするときの効率や計算の速度に関して、ここにリストされていない他の違いはありますか?

回答

3 TylerErickson Sep 22 2020 at 16:46

質問で参照されているスライドの追加のコンテキストについては、Earth Engineコードエディター(Earth Engine JavaScriptAPIに対して開発するためのWebIDE)を使用した場合とEarth Engine PythonAPIを使用した場合を比較していることに注意してください。スライドは3年以上前に作成されたプレゼンテーションからのものであり、JavaScriptとPython APIの両方が変更され、コードエディターはスクリプトモジュールを使用してコードエディタースクリプト間でコードを共有する機能などの追加機能を取得しました。

質問1の場合:

明確にするために、一連のリクエストは、JavaScriptまたはPythonクライアントライブラリのいずれかを使用して、またコードエディタ内から行うことができます。ただし、Python(またはJavaScript)クライアントライブラリを直接操作すると、結果で何ができるかという点で柔軟性が高まります。たとえば、Earth Engineの呼び出しを他のサービスへの要求とインターリーブしたり、コードエディター開発環境で現在サポートされていないライブラリを使用したりできます。

一連の呼び出しを実行できると、次の例が容易になります。

  • 感度分析。1つ(または複数)のパラメーターを変化させながらデータを取得できるため、感度分析を実行できます。たとえば、scaleパラメータの変更はee.Image.reduceRegionから取得した結果にどのように影響しますか?
  • 一連の出力。一連の出力画像、マップ、またはテーブルを作成できます。たとえば、国のすべての流域に対して雲のない画像を生成できます。
  • Jupyterノートブック。中間結果を表示するワークフロー/チュートリアルを開発できます。たとえば、このチュートリアルからリンクされているJupyter / Colabノートブックを参照してください。

質問2の場合:

  • スライドに示されている単純なリスト以外にも、構文の違いなど、他にも確かに違いがあります。もう1つは、Earth Engineコードエディターを使用すると、開発者がホストされたアプリケーション(Earth Engine Apps)を簡単に公開できるため、PythonAPIを使用して同じことを行うにはかなり多くの作業が必要になります。
  • JavaScriptAPIとPythonAPIはどちらも、EarthEngineバックエンドサーバーで実行される計算に低レベルのRESTAPIを利用するため、一方を他方よりも使用することによる計算またはエクスポートのパフォーマンス上の利点はありません。