GEEを用いた2値化画像の作成

GEE

Google Earth Engine(GEE)を使用して、二値化画像を作成する手順を紹介します。

この記事では、特に条件(gt, gte, lt, lte)に基づいて画像を作成する方法に焦点を当てます。

ソースコードだけ見たい方はこちらのリンクを参照してください!

GEEの二値化スクリプト

手順

  1. イメージコレクションの取得
    • Google Earth Engine Datasetやアップロードした画像群(Image Collection)を取得します。
    • もしも、二値化したいデータが画像群(Image Collection)ではない場合には手順3をします。
  2. 二値化したい画像を選択
    • イメージコレクションの最後、最初や日付の指定により画像(Image)を取得します。
  3. 条件の指定
    • 以下の関数を用いると条件に従って、0と1の二値化画像を作成できます。
    • ※二値化は画像ではないと以下の関数は利用できません。
      • gt: 大なり(>)
      • gte: 大なりイコール(>=)
      • lt: 小なり(<)
      • lte: 小なりイコール(<=)
      • eq: イコール(=)

条件の指定

gt (greater than, >)

この条件では、画素値が指定した値より大きいピクセルを選択します。

gte (greater than equal, >=)

画素値が指定した値以上のピクセルを選択します。

lt (less than, <)

画素値が指定した値より小さいピクセルを選択します。

lte (less than equal, <=)

画素値が指定した値以下のピクセルを選択します。

eq (equal, =)

画素値が指定した値と同じピクセルを選択します。

ソースコード

  1. ImageCollection関数で任意のデータセットを取得
  2. fillterDate関数でデータ取得の範囲を指定
  3. first関数でImageCollection内の初めのデータを取得
  4. gt, gte, lt, lte関数で条件を指定
  5. Map.addLayerで二値化画像を表示
var datasets = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI').filterDate('2018-01-01', '2019-12-31'); // 日時を指定してデータを取得
var ndvi = dataset.first().select('NDVI'); // イメージコレクションの最初の画像を取得

Map.setCenter(139.7907312216245, 35.689438437756365, 8);
// 二値化画像を表示
Map.addLayer(ndvi.gt(0.5),{}, 'greater than');
Map.addLayer(ndvi.gte(0.5), {}, 'greater than equal');
Map.addLayer(ndvi.lt(0.5), {}, 'less than');
Map.addLayer(ndvi.lte(0.5), {}, 'less than equal');

以上が、GEEを使用して二値化画像を作成するための手順とコードの詳細です。それぞれの条件を適用して、異なる条件での画像生成が可能です。

発展

これらの二値化後画像を使うことで、1の画素値を持つピクセルだけを取り出すことが可能となります。

また、二値化画像同士でブーリアン演算ができ、複数の条件を持つ場合の画像も作成できます。

ご自身のプロジェクトやニーズに合わせて変更してみてください!

使用データ

Landsat-7 image courtesy of the U.S. Geological Survey

コメント

タイトルとURLをコピーしました