Google Earth Engine(GEE)を使うための5つの方法
Google Earth Engine(GEE)は、Googleが提供するクラウドベースの地理空間データ解析プラットフォームである。Sentinel-2やLandsatなどの大量の衛星画像を利用し、画像の検索、表示、加工、解析などを行うことができる。
GEEには複数の利用方法があり、使用するプログラミング言語や開発環境によって、操作性や使い勝手が異なる。
ここでは、GEEを利用するための5つの方法を紹介し、実際に使用した経験を踏まえて、それぞれの長所と短所を比較する。
1. GEEを利用する5つの方法
GEEを利用する方法として、次の5種類がある。
- GEE Code EditorからJavaScriptで利用する
- Google ColabからPythonで利用する
- JupyterLabからPythonで利用する
- ローカルPCのVisual Studio Code(VS Code)からPythonで利用する
- ローカルPCのQGISからプラグインを使って利用する
このうち、1、2、4については実際に利用した経験があり、5についても少し試したことがある。3のJupyterLabについては使用経験がない。
以下では、主にCode Editor、Google Colab、VS Codeの3つを比較する。
なお、GEEでは、どの方法を使用しても、衛星画像の検索や解析などの主要な処理は基本的にGoogleのサーバー側で実行される。
したがって、GEEをどこから操作するかによって、GEE自体の計算能力が変わるわけではない。主な違いは、プログラムの開発環境や操作性、外部ソフトウェアとの連携にある。
2. GEE Code EditorからJavaScriptで利用する方法
GEE Code Editorは、Googleが提供するGEE専用のWebブラウザ上の開発環境である。
GEEの利用登録などを済ませれば、PCに専用ソフトウェアをインストールすることなく、ブラウザから利用できる。
Code EditorではJavaScriptを使用する。画面にはプログラムの編集領域、地図表示領域、コンソールなどが用意されており、プログラムの作成から実行結果の確認まで、一つの画面で行える。
長所
Code Editorの最大の長所は、GEEを利用するための機能が最初から一体化されていることである。
例えば、Sentinel-2の衛星画像を検索し、地図上に表示し、必要な画像処理を実行するといった一連の作業を、Code Editorだけで行うことができる。
地図表示機能も標準で用意されているため、別途ライブラリなどを導入する必要がない。
また、地図上の地点を調べるInspector、プログラムの出力を確認するConsole、画像のエクスポート処理を管理するTasksなど、GEEの操作に必要な機能が用意されている。
Google ColabやローカルPCからPythonでGEEに接続する場合と比較して、認証や初期化、地図表示などのために記述するコードも少なくて済む。
そのため、GEEの利用そのものに集中できる。
短所
Code EditorではJavaScriptを使用するため、普段Pythonを使っている場合には、JavaScriptの文法を習得する必要がある。
また、ローカルPC上のファイルを直接処理したり、Pythonのライブラリを利用して独自の画像解析や機械学習を行ったりする場合には、PythonからGEEを利用する方が便利なこともある。
ただし、GEEの機能を使って衛星画像を検索・表示・解析することが主な目的であれば、これらの短所はそれほど大きな問題にならない。
3. Google ColabからPythonで利用する方法
Google Colab(Google Colaboratory)は、Googleが提供するクラウド上のPython実行環境である。
Webブラウザ上でPythonのプログラムを作成・実行でき、GEEのPython APIを利用してGEEに接続することができる。
長所
Google Colabの長所は、PCにPythonの開発環境を構築しなくても、ブラウザ上でPythonを使用できることである。
GEEのPythonライブラリもあらかじめ用意されているため、比較的簡単にGEEの利用を開始できる。
また、NumPy、pandas、MatplotlibなどのPythonライブラリと組み合わせることで、GEEの処理結果を利用した数値計算やデータ解析などを行える。
Pythonを使い慣れている場合には、JavaScriptを新たに習得する必要がないという利点もある。
短所
Code Editorと比較すると、GEEを使うための操作が煩雑である。
Google Colabでは、GEEのライブラリを読み込み、認証と初期化を行う必要がある。また、実行環境が新しくなると、これらの処理を再度実行することになる。
地図表示についても、Code EditorのようなGEE専用の地図表示環境が最初から一体化されているわけではない。対話的な地図を表示するには、foliumやgeemapなどのライブラリを利用する必要がある。
また、Google Colabの実行環境は一時的なものであり、セッションが終了すると実行状態が失われる。
実際に利用してみると、GEEの衛星画像を検索・表示・解析するという用途では、Code Editorの方が使いやすいと感じられた。
評価
Google Colabは、Pythonによる解析とGEEを組み合わせる場合には便利である。
しかし、GEEを利用すること自体が目的であれば、Code Editorよりも操作が複雑になる。
Pythonを使用できるという利点はあるものの、それだけを理由にGoogle Colabを選択する必要性は低いと考える。
4. JupyterLabからPythonで利用する方法
JupyterLabからPythonのGEE APIを利用して、GEEに接続する方法もある。
ただし、この方法については使用経験がないため、ここでは紹介にとどめる。
5. ローカルPCのVS CodeからPythonで利用する方法
GEEは、ローカルPC上のPythonプログラムからも利用できる。
例えば、ローカルPCにPythonとGEEのPython APIをインストールし、Visual Studio Code(VS Code)でプログラムを作成・実行する方法がある。
VS Codeは、Microsoftが提供するコードエディタであり、Pythonのプログラム開発にも広く利用されている。
長所
この方法の最大の長所は、GEEとローカルPC上のPythonプログラムを組み合わせやすいことである。
例えば、GEEを利用して衛星画像の検索や解析を行い、その結果をローカルPCで取得して、OpenCVやscikit-learnなどを使った独自の処理へつなげることができる。
また、VS Codeでは複数のPythonファイルを管理し、デバッグやプログラムの修正などを行いやすい。
そのため、GEEを独自のPythonプログラムの一部として利用したい場合には適している。
短所
まず、ローカルPCにPythonの実行環境を構築し、GEEのPython APIなどのライブラリをインストールする必要がある。
さらに、GEEへの認証と初期化も必要である。
VS CodeにはCode EditorのようなGEE専用の地図表示機能が標準で用意されているわけではないため、地図を表示したい場合には別途対応する必要がある。
また、ローカルPCからGEEに接続できるようになったとしても、GEEのデータ取得に関する制約がなくなるわけではない。
実際にローカルPCからGEEへ接続することはできた。しかし、当初期待していたように、大量の衛星画像をローカルPCへ簡単に取得できるようになるわけではなかった。
GEEの主要な処理はGoogleのサーバー側で実行されるため、Code Editor、Google Colab、ローカルPCのVS Codeのいずれを使っても、GEE側の基本的な処理の仕組みは変わらない。
ローカルPCからPythonで接続したからといって、衛星画像の取得速度やデータ出力の制約が根本的に改善されるわけではないのである。
評価
ローカルPC上のPythonプログラムとGEEを連携させることに目的があるなら、この方法には利点がある。
しかし、GEEを使って衛星画像を検索・表示・解析することが目的であれば、環境構築や操作が複雑になるだけで、Code Editorと比較して大きなメリットは感じられなかった。
特に、大量の衛星画像をダウンロードするためにローカルPCからGEEへ接続する方法を選択しても、それだけでは期待した効果が得られないことが分かった。
6. QGISからプラグインを使って利用する方法
QGISは、地理空間データを表示・編集・解析するためのオープンソースのGISソフトウェアである。
QGISにはGEEと連携するためのプラグインがあり、QGISからGEEの機能を利用する方法もある。
この方法についても少し試してみたが、処理速度があまりにも遅かったため、使用をやめた。
そのため、ここでは詳しい比較や評価は行わない。
7. 5つの利用方法の比較
以上の5つの方法をまとめると、次のようになる。
| 利用方法 | 使用言語 | 主な特徴 | 使用経験 |
|---|---|---|---|
| GEE Code Editor | JavaScript | GEE専用の統合開発環境。地図表示や解析が容易 | あり |
| Google Colab | Python | ブラウザ上でPythonを利用できる | あり |
| JupyterLab | Python | Notebook形式のPython開発環境から接続 | なし |
| ローカルPCのVS Code | Python | ローカルPCのPythonプログラムと連携できる | あり |
| QGIS | 主にGUI操作 | プラグインを介してGEEと連携 | 少し使用したが、処理速度が遅いため中止 |
この中で、特に比較する価値があるのは、Code Editor、Google Colab、VS Codeの3つである。
これらの違いは、GEEの計算能力そのものではなく、GEEを操作するための環境にある。
Code Editorは、GEEのために設計された専用の開発環境である。これに対してGoogle ColabやVS Codeは、Pythonの汎用的な開発環境からGEEへ接続する方法である。
この違いが、GEEを使う際の操作性に大きく影響する。
Google ColabやVS Codeには、Pythonの豊富なライブラリを利用できるという利点がある。しかし、GEEの検索・表示・解析機能を使用することが目的であれば、その利点が必ずしも生かされるわけではない。
8. 結論:GEEを使うならCode Editorが最もよい
GEEを利用する複数の方法を試した結果、GEEを使うのであれば、Code EditorからJavaScriptで利用する方法が最もよいという結論に至った。
Code EditorはGEE専用の環境であり、衛星画像の検索、表示、解析、エクスポートなどを一つの画面で行える。
PythonからGEEへ接続する場合には、認証や初期化、地図表示のための準備などが必要になるが、Code Editorではこうした作業を最小限にできる。
また、GEEのJavaScript APIとPython APIは、基本的に同じGEEのサーバー側の解析機能を利用している。したがって、Pythonを使用することによってGEE自体の解析能力が大きく変わるわけではない。
もちろん、GEEの処理結果をPythonでさらに解析したり、独自のプログラムと連携させたりする場合には、Google ColabやVS Codeを使用する利点がある。
しかし、GEEそのものを使用することが主目的であれば、わざわざPythonの開発環境から接続する必要はないと考える。
また、大量の衛星画像を取得したい場合には、GEEへの接続方法を変更するよりも、目的に合ったデータ取得方法を選ぶ方が重要である。例えば、Sentinel-2の衛星画像を大量に取得する場合には、Copernicus Data Space Ecosystem(CDSE)などを利用する方法がある。
GEEは、GEE専用に設計されたCode Editorから利用するのが最も簡単で、合理的である。
これが、実際に複数の方法を試した結果としての結論である。

