LoginSignup
2
6

More than 3 years have passed since last update.

Google Earth EngineからPythonを使ってプロダクトをまとめてダウンロード

Last updated at Posted at 2021-04-07

概要

 Google Earth Engine (以下GEE)には大量の衛星画像やプロダクトが蓄積されていますが、GEE Code Editor上ではJava Scriptを言語として用いなければいけません。これらの衛星画像をGeoTiffで大量にダウンロードできれば、後はPythonで読み込んで処理を行う事が出来ます。こちらの記事でもループを使ったダウンロード法について紹介されていますが、本記事ではループを使わず、ImageCollectionをそのまま用いるダウンロード法についてご紹介したいと思います。

*ローカルの容量が不足しているなど、GEE上で処理を行う事が望ましい場合もあります。
*学校契約などでGoogle driveの容量が無限の場合は、Google Colabとの組み合わせで容量を気にせずPythonで解析が行えます。

データ

 今回ダウンロードしたのは、世界の降水推定量のデータセットであるPERSSIAN-CDRです。

コード

 以下のコードは、Google Colab上で実行を行ってください。Colabについて

GeeDownload.py
#必要なライブラリのインストール
!pip install earthengine-api
!pip install unidecode
!pip install geetools

#GEEをPython上で使う為の準備
import ee

#このコードを実行すると、Googleアカウントの認証が要求されます。
#表示されるリンクを踏むとアカウントの認証画面に飛びます。
#使用したいGoogleアカウントを選んだら、表示された文字列をコード中に表示されるボックスへコピペしてください。
ee.Authenticate()

ee.Initialize() 

#利用するバンドの選択
band=['precipitation']
#関心領域の設定
ROI =ee.Geometry.Polygon([98,58,117.995,58,117.995,50.004,98,50.004])

#バッチダウンロードのためのライブラリのインポート
from geetools import batch
#ImageCollectionの対象領域・対象期間による絞り込み
PrecipitationData=ee.ImageCollection("NOAA/PERSIANN-CDR").filterDate('2001-07-01', '2001-09-01').filterBounds(ROI);
#ダウンロードの実行
tasks=batch.Export.imagecollection.toDrive(
    collection=PrecipitationData.select(band), #ダウンロードするバンドの指定
    folder='precipitation_data_2001', #保存先のフォルダの指定
    scale= 500, #解像度の指定(m)
    region= ROI) #対象領域の設定

ダウンロードしたデータは、Google Earth EngineにログインしたGoogleアカウントに付随するGoogle driveに保存されます。Google Earth Engine Code editorにてtaskを開くと、画像例の様に実行状況について確認を行うことも可能です。
progress.png

 ダウンロードが完了した結果の例です。
result.png

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6