[Google Earth Engine入門]衛星画像にパンシャープン処理を施す
概要
前回、地図上に表示したLandsat 8号の画像はGoogle Mapsの衛星写真などに見慣れているとだいぶぼやけた写真のように見えます。
そこで、パンシャープン処理という画像処理を施すことで地物の輪郭を強調(シャープネス)してみます。
参考:
パンシャープン処理は、分解能が低いカラー画像(RGB画像)と、分解能が高いモノクローム画像を使って、分解能が高いカラー画像(RGB画像)を作成する処理のことです。
・元画像
・処理後
パンシャープン処理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var geometry = ee.Geometry.Point([139.01267421020486, 36.32229536983009]); Map.centerObject(geometry, 15) // Landsat 8号の画像をロードします。 var image = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA') .filterDate('2017-01-01', '2017-12-31') .filterBounds(geometry) .first(); //先頭のイメージを取り出す //トゥルーカラー化に必要なバンド値を取得 var origin = image.select('B4', 'B3', 'B2'); //パンシャープン処理に必要なパンクロマティックバンドを取得 var panchromatic = image.select('B8'); // カラーをHSVに変換し、画像の明度をパンクロマティック画像の明度と置き換え後、RGBに戻します。 var huesat = origin.rgbToHsv().select('hue', 'saturation'); var shaped = ee.Image.cat(huesat, panchromatic).hsvToRgb(); //オリジナルイメージを地図にオーバーレイ Map.addLayer(origin, {max: 0.3}, 'origin'); //パンシャープ済みイメージを地図にオーバーレイ Map.addLayer(shaped, {max: 0.3}, 'shaped'); |
イメージコレクション内のイメージ全てに反復処理を行う
単一のイメージではなく、イメージコレクション内の全てのイメージにパンシャープン処理を適用したい場合は、mapメソッドを使うと反復処理を適用することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
var geometry = ee.Geometry.Point([139.01267421020486, 36.32229536983009]); Map.centerObject(geometry, 15) //イメージに適用する処理を関数化化する var shaping = function(image){ //トゥルーカラー化に化に必要なバンド値を取得 var origin = image.select('B4', 'B3', 'B2'); //あパンシャープ処理に必要なパンクロマティックバンドを取得 var panchromatic = image.select('B8'); // カラーをHSVに変換し、画像の明度をパンクロマティック画像の明度と置き換え後、RGBに戻します。 var huesat = origin.rgbToHsv().select('hue', 'saturation'); var shaped = ee.Image.cat(huesat, panchromatic).hsvToRgb(); return shaped; } // Landsat 8号の画像をロードします。 var image = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA') .filterDate('2017-01-01', '2017-12-31') .filterBounds(geometry) .map(shaping) //イメージコレクションに反復処理を適用する .first() //先頭のイメージを取り出す Map.addLayer(image, {max: 0.4}, 'shaped'); |
イメージコレクションに含まれるイメージの数が多すぎると、処理に時間がかかったりタイムアウトエラーが出る場合があるので注意してください。
アドベントカレンダー
この記事は、Google Earth / Google Earth Engine Advent Calendar 2018への参加投稿です。