正規化指標は基礎的な手法の一つであり、
高度な分析においても部分的に使用されることもある。
NDVI(Normalized Difference Vegetation Index)がよく知られているが、
植生以外の状態を分析するための正規化指標もある。
そこで、今回は代表的な正規化指標を紹介することにする。
とりあえずは、使用するデータを準備する。
まず、検索バーからLandsat 8の Tier 1 Raw Scenenes を検索し、
インポートして変数名を landsat8としておく。
インポートして変数名を landsat8としておく。
また、表示範囲を絞り込むために、
ジオメトリ・ツール使って、適当な場所にポイントを作成し、
作成した変数名を geomtry としておく。
var image = ee.Image(landsat8 .filterBounds(geometry) .filterDate('2015-06-01', '2015-09-01') .sort('CLOUD_COVER') .first() );
ついでに、表示用のカラーパレットも準備しておく。
var waterPalette = ['red', 'yellow', 'green', 'blue']; var builtPalette = ['blue', 'green', 'yellow', 'red']; var snowPalette = ['red', 'green', 'blue', 'white'];
まずは、植生の含水量の指標としてGao (1996) によって開発された
NDWI(Normalized Difference Water Index)という指標である。
この指標は近赤外線(NIR)と短波長赤外線(SWIR)の放射輝度を使用する。
NDWI = (NIR - SWIR) / (NIR + SWIR)
短波長赤外域は植物の葉の水分によって吸収されるという特性があるが、
近赤外域は植物の細胞を傷つけてしまうために反射される。
この特性によって植物の含水量を分析する方法がNDWIである。
一応、実際に適用する方法は以下の通り…。
ただし、NDWIはあくまでTMセンサを前提とした指標であり、
Landsat 8 に搭載されているOLIセンサの場合には要注意!
ただし、NDWIはあくまでTMセンサを前提とした指標であり、
Landsat 8 に搭載されているOLIセンサの場合には要注意!
var ndwi = image.normalizedDifference(['B5', 'B6']); Map.addLayer( ndwi, { min: 0.0, max: 0.3, palette: waterPalette }, 'NDWI' );
このコードの実行結果は以下の通り。
NDWBI(Normalized Difference Water Body Index)という指標もある。
この指標はNDWIと同じ1996年にMacFeeters (1996)によって発表された指標であり、
緑色光域と近赤外域の反射・吸収特性を使用して水域を抽出する。
NDWBI = (Green - NIR) / (Green + NIR)
水域は緑色光域においても緑色の光を反射するが、近赤外域は吸収する。
したがって、植生のある部分では近赤外域の反射が相対的に強くなり、
逆に、水域では近赤外の反射が相対的に弱くなる。
ということで、Google Earth Engine で実装してみる。
var ndwbi = image.normalizedDifference(['B3', 'B5']); Map.addLayer( ndwbi, { min: -0.5, max: 0.2, palette: waterPalette }, 'NDWBI' );
そして、実行結果は以下の通り。
NDWIとNDWBIは名前もよく似ていて、両方とも水に関わる指標であるが、
前者は植物の葉に含まれる水分量、後者は水域を抽出するための指標である。
実際に両者を比較すると、どのような違いが見られるだろうか?
正規化指標は植物や水に関わる分析以外にも利用される。
そうした指標の一つがNDBI(Normalized Difference Built-up Index)である。
この指標は都市域を抽出するために用いられる指標である。
NDBI = (SWIR - NIR) / (SWIR + NIR)
この指標のモデルを見てみるとNDWIの式の関係が逆転していることが解る。
この指標は都市部の短波長赤外域の反射強度が近赤外域よりも高いことを利用している。
ということで…。
var ndbi = image.normalizedDifference(['B6', 'B5']); Map.addLayer( ndbi, { min: -0.4, max: 0.1, palette: builtPalette }, 'NDBI' );
これも実行すると…。
地球温暖化に焦点を当てるのであれば、雪の分析が必要なるかもしれない。
その指標に利用されるのがNDSI(Normalized Difference Snow Index)である。
この指標は雪が短波長赤外域を吸収すること利用している。
NDSI = (Green - SWIR) / (Green + SWIR)
波長域とバンド名が解っていれば簡単であるが…。
var ndsi = image.normalizedDifference(['B3', 'B6']); Map.addLayer( ndsi, { min: -0.3, max: 0.3, palette: snowPalette }, 'NDSI' );
そして、最後に…。
This work is licensed under a Creative Commons Attribution 4.0 International License.