Earth Engine から画像データを取得する
Earth Engine から Google ドライブ、Cloud Storage、または Earth Engine アセットに画像データを取得するには、Export
を使用します。ジョブはすべて Earth Engine によって処理されます。エクスポート ジョブにスケーリングの問題がある場合(1 日以上かかる、メモリエラーまたはタイムアウト エラーが返されるなど)、または Apache Beam、Spark、Dask などのフレームワークに精通している場合は、ここで説明するデータ抽出方法をおすすめします。これらのフレームワークで実装されたワークフローは、Dataflow や Dataproc などの Google Cloud ツールを使用してスケーリングできます。
具体的には、このガイドでは、getPixels
または computePixels
を使用して画像データのリクエストを手動で行う方法について説明します。ここでの「画像データ」とは、スケールと投影が一致するピクセル値の多次元配列を意味します。リージョン、スケール、投影、ディメンションはリクエストで指定します。[ImageFileFormat ページ] に、使用可能な出力形式が一覧表示されます。出力先には、Cloud Storage またはローカルにマウントされたディレクトリを含めることができます。手動リクエストは複雑になりますが、大規模なワークロードにスケーリングできます。
既存のアセットから画像データを取得する
getPixels
を使用して、既存の Earth Engine アセットから画像データを取得します。アセット ID をリクエストに直接渡すため、抽出前にピクセルに対して計算を行うことはできません。指定されたリージョン、スケール、投影、形式のピクセル ブロックが返されます。次の例は、getPixels
を使用して MODIS 画像コレクションから NDVI の時系列を取得する方法を示しています。
計算画像から画像データを取得する
computePixels
を使用して、合成画像などの計算画像から画像データを取得します。computePixels
では、計算された ee.Image
オブジェクトを expression
パラメータで渡します。指定された領域、スケール、投影、形式で計算されたピクセルのブロックが返されます。次の例は、雲のない Sentinel-2 コンポジットからマルチスペクトル データのパッチを取得する方法を示しています。
リクエストの手動並列化
任意の目的に対して任意の量のリクエストを送信できますが、大規模なワークフローの場合はリクエストを並列化することをおすすめします。このようなリクエストを並列で行うには、Earth Engine 大容量エンドポイントを使用する必要があります。実行できる並列リクエストの数は、同時インタラクティブ リクエストの割り当てによって設定されます。大容量エンドポイントを使用するタイミングについては、Earth Engine の大容量ページをご覧ください。
マルチスレッド処理
スレッドを使用して、同時リクエストを行うことができます。このアプローチは、getPixels
と computePixels
のサンプル ノートブックで示されています。
Apache Beam
Apache Beam パイプラインを使用してリクエストを並列化できます。これらのパイプラインは、ローカルで実行することも、Google Dataflow ジョブとして実行することもできます。例については、Geo for Good トレーニングまたはPeople, Planet and AI のデモをご覧ください。他の並列化ライブラリには、Dask や Apache Spark があります。