GEEを利用した特定の画素のみを抽出する方法

GEE

NDVIやNDBIのようなインデックス指標を用いる際に、特定の条件の画素値のみを取り出したいことがあると思います。

この記事ではGoogle Earth Engine(GEE)を使い、特定の条件に一致する画素値のみを取得する方法を紹介します。

Javascript (JS) のソースコードだけを見たい方はこちらですぐに確認できます!

手順

  1. マスク画像の作成
    • マスク画像を作成します。マスク画像の作成の詳細はこちら
    • マスク画像の作成では以下の条件を利用して、特定の画素値のみを取り出します。
      • gt: 大なり(>)
      • gte: 大なりイコール(>=)
      • lt: 小なり(<)
      • lte: 小なりイコール(<=)
      • eq: イコール (=)
  2. Mask関数を利用した画素の抽出
    • GEEのmask関数、updateMask関数を利用して、指定条件に合致する画素のみを取り出します。

ソースコード

ソースコードの詳細です。

  1. データセットの取得
  2. 画像の指定
  3. 画像に対して条件を指定(今回はndviが0.5以上の値)
  4. mask関数を利用して、条件に一致する画像だけを取得
    • mask関数もupdateMask関数も基本的には同じ処理です。しかし、マスクされた画像に対しての処理が異なります。この辺りは今後別の記事で紹介したいと思います。
  5. 画像を表示
var dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_32DAY_NDVI').filterDate('2018-01-01', '2019-12-31'); // データセットの取得
var ndvi = dataset.first().select('NDVI'); // 画像の指定

var mask = ndvi.gt(0.5); // 画像に対して条件を指定(今回はndviが0.5以上の値)

var masked_image = ndvi.mask(mask); // mask関数を利用して、条件に一致する画像だけを取得
// var masked_image = ndvi.updateMask(mask);


Map.setCenter(139.7907312216245, 35.689438437756365, 8);
var view_setting = {
  min: 0,
  max: 1,
  palette: [
    'ffffff', 'ce7e45', 'df923d', 'f1b555', 'fcd163', '99b718', '74a901',
    '66a000', '529400', '3e8601', '207401', '056201', '004c00', '023b01',
    '012e01', '011d01', '011301'
  ],
};
Map.addLayer(masked_image, view_setting, 'ndvi'); // 画像を表示

発展

特定の条件に絞った画像を作成できれば、ノイズの除去やデータの解析に役立てられます!

是非、活用してみてください

使用データ

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

コメント

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