Google Earth Engine(GEE)を使用して、二値化画像を作成する手順を紹介します。
この記事では、特に条件(gt, gte, lt, lte)に基づいて画像を作成する方法に焦点を当てます。
ソースコードだけ見たい方はこちらのリンクを参照してください!
手順
- イメージコレクションの取得
- Google Earth Engine Datasetやアップロードした画像群(Image Collection)を取得します。
- もしも、二値化したいデータが画像群(Image Collection)ではない場合には手順3をします。
- 二値化したい画像を選択
- イメージコレクションの最後、最初や日付の指定により画像(Image)を取得します。
- 条件の指定
- 以下の関数を用いると条件に従って、0と1の二値化画像を作成できます。
- ※二値化は画像ではないと以下の関数は利用できません。
- gt: 大なり(>)
- gte: 大なりイコール(>=)
- lt: 小なり(<)
- lte: 小なりイコール(<=)
- eq: イコール(=)
条件の指定
gt (greater than, >)
この条件では、画素値が指定した値より大きいピクセルを選択します。
gte (greater than equal, >=)
画素値が指定した値以上のピクセルを選択します。
lt (less than, <)
画素値が指定した値より小さいピクセルを選択します。
lte (less than equal, <=)
画素値が指定した値以下のピクセルを選択します。
eq (equal, =)
画素値が指定した値と同じピクセルを選択します。
ソースコード
- ImageCollection関数で任意のデータセットを取得
- fillterDate関数でデータ取得の範囲を指定
- first関数でImageCollection内の初めのデータを取得
- gt, gte, lt, lte関数で条件を指定
- 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の画素値を持つピクセルだけを取り出すことが可能となります。
また、二値化画像同士でブーリアン演算ができ、複数の条件を持つ場合の画像も作成できます。
ご自身のプロジェクトやニーズに合わせて変更してみてください!
コメント