Landsat-8画像を見てみよう(反射率、NDVI、輝度温度に変換表示)

Landsat-8画像を見てみよう(反射率、NDVI、輝度温度に変換表示)

 Landsat-8画像を解析・処理し、活用するには、反射率や輝度温度などの物理的な値に変換しなければなりません。Landsat画像をただ見るのではなく、Landsat画像を実際に使える画像(反射率画像、輝度温度画像等)に変換して使用することが重要です。Landsat-8画像をただ表示するだけならペイント系ソフトで見ることができます。ここではフリーのリモートセンシング画像処理ソフト「RSP」を使ったLandsat-8画像を反射率や輝度温度に変換・作成する方法、そしてLandsat-8反射率画像からNDVI画像を作成する方法について紹介します。
 なお、Landsat-8画像は、USGSあるいは産業技術総合研究所から無料で入手することができます。(入手方法は、「データ入手」を参照してください。)
 産業技術総合研究所から入手したデータは、圧縮されたGeoTIFFファイルになります。RSPは、圧縮されたGeoTIFFファイル(圧縮されたTIFFファイル)は使用できないため、これを一旦、非圧縮形式の画像に変換する必要があります。
 圧縮形式のTIFFファイルを非圧縮形式のTIFFファイルに変換するには、他のアプリケーションソフトを使用してください。
 以下のRSPのQ&Aのページの「GeoTIFF、TIFFの取扱い」に、フリーソフト「GINP」を使用した変換方法(圧縮されたTIFFファイルから非圧縮形式のTIFFファイルへ変換する方法)について記載していますので、参考にしてください。

 RSP Q&A

Landsat-8反射率(フォルスカラー)画像の作成と表示

 以下の手順でLandsat-8のDN画像を反射率画像に変換し、フォルスカラー画像を作成・表示します。

(1)フォーマット変換(GeoTIFF画像を16ビットRAW画像に変換)

 RSPでは、TIFFファイルを直接読み込むのではなく、TIFFファイルをRSPが持っている機能を使って、BMPまたはRAW(画像データのみのヘッダ無し汎用フォーマットファイル)に変換して使用します。
 具体的にLandsat-8は、16ビットのGeoTIFFフォーマットのため、これをRAW(画像データのみのヘッダ無し汎用フォーマットファイル)のUnsigned integer(16ビット)フォーマットに変換して使用します。
 フォーマット変換処理は、メニュー「ファイル」→「フォーマット変換」を選択し、フォーマット変換フォームの表示メニューの「TIFF(GeoTIFF)」→「16bit−>RAW(Unsigned int)」で行います。





 上記メニューを選択した後、「TIFF(16bits)ファイルを開く」で、変換対象のバンドのGeoTIFFファイルを選びます。

 ここで、RSPで取り扱うことができるGeoTIFF(TIFF)は、非圧縮形式かつ非タイル形式です。圧縮形式またはタイル形式のGeoTIFF(TIFF)は、別ソフトで非圧縮かつ非タイル形式のTIFFに変換してから使用してください。非圧縮かつ非タイル形式のTIFFへの変換方法は、メニュー「RSP」またはメニュー「RSP」→「RSP Q&A」に掲載しているので参考にしてください。



 次に、「保存先ファイル名を指定」で、保存ファイル名を指定します。これで、GeoTIFFファイルが、RAW(Unsigned int)ファイルにフォーマット変換されます。この処理で作成されるファイルは、画像ファイルとヘッダファイル(ファイル拡張子が「.hd1」)の2種類のファイルです。RSPでは、画像ファイルとヘッダファイルを同一フォルダに置いて使用しなければなりません。また、作成される画像ファイル(16ビット画像の場合)のバイトオーダ(ビック・エンディアンかリトル・エンディアンか)は、メニュー「設定」→「バイトオーダ設定」で設定した形式になります。
 変換終了時には、画像の幅と高さのピクセル値が表示されます。
 このフォーマット変換は、フォルスカラーに関係するバンド3、4、5に対して繰り返し実施します。


(2)反射率画像の作成
 メニュー「ツール」→「Landsat-8(RAW,Unsigned int)->反射率」を選択し、反射率画像作成フォームを表示させます。





 ここで、乗数、加数、太陽高度(度)を入力します。この値は、Landsat-8衛星画像を収録したフォルダ内のテキストファイル(拡張子:.txt)に記載されています。
 また、プルダウンメニューで作成する反射率画像の出力型式(FloatまたはUnsigned int)を選択します。Floatの場合は0〜1の範囲で、Unsigned intの場合は0〜10000の範囲(10000倍)で作成されます。
 Floatは、画像そのもの反射率画像になりますが、1画素4バイトになるため、Unsigned int画像の2倍のファイル容量になります。それに対してUnsigned intは、Floatよりもファイル容量が1/2と少ないですが、値の表示や演算時に工夫が必要になります。
 通常、ディスク容量を気にする場合はUnsigned intを、そうでなければ使い勝手の良いFloatを選択します。
 なお、RSPでは、フォーマット変換処理(メニュー「ファイル」→「フォーマット変換」→「RAW」)において、Unsigned int画像をFloat画像に変換することができるため、とりあえずUnsigned int画像で作成しておき、必要に応じて後でFloat画像に変換することもできます(ただし、この場合、有効桁数が異なります)。
 反射率(値:0〜1)の計算式は、以下のとおりです。
  反射率={(乗数)×(画像データ)+(加数)}/sin(太陽高度)
 「変換」ボタンを押すと、ファイルオープンダイアログ「Landsat-8画像ファイル(RAW,Unsigned int)を開く」が表示されます。ここでは、式中の画像データに該当するファイルを選択し、「開く」ボタンをクリックします。
 次に、ファイルセーブダイアログ「保存先ファイル名を指定する」が表示されます。ここでは、保存先フォルダ及びファイル名を指定(キーボードでファイル名を入力、または上書き保存の場合は、ファイルをカーソルで指定)し、「保存」ボタンをクリックします。
 これらの操作の結果、反射率画像が作成されます。なお、この処理は、続けて実行することができます。作業を終了するには、「閉じる」ボタンを押します。
 以降の画面事例は、出力形式が「Unsigned int」の場合について示します。


(3)カラー合成画像の作成・表示
 上記で作成した反射率画像を対象に、以下の手順でカラー合成画像を作成します。
 メニュー「ファイル」→「カラー合成」→「RAW(Unsigned int or Float)」を選択します。



 その後、青色を配色する画像ファイル(バンド3)、緑色を配色する画像ファイル(バンド4)、赤色を配色する画像ファイル(バンド5)を選びます。
 ここで、ファイル名の拡張子が「.hd1」のファイルは、同名の画像ファイルのヘッダファイルです。メニュー「開く」で選択するのは、画像ファイルであって、ヘッダファイルではないため、注意して下さい。






【この後、色調を調整する処理を行います】

 色調調整方法としては、”@:「(4)ヒストグラム表示」した後、「(5)色調調整(RAW)」を行う方法”、”A:「(6)自動色調調整」を行う方法((4)と(5)は行わない)(手っ取り早く色調調整した画像を見たい場合)”、”B:「(4)ヒストグラム表示」した後、「(5)色調調整(RAW)」を行い、さらに「(6)自動色調調整」を行う方法”があります。
 以下に、(4)(5)(6)の方法について記載します。


(4)ヒストグラム表示
 色調の階調を把握するため、階調のヒストグラムを表示します。
 メニュー「色調」→「ヒストグラム」を選択すると、最初にBlueヒストグラムが表示されます。Greenヒストグラムを表示するには、ヒストグラムフォームのメニューで、「表示」→「Greenヒストグラム」を選択します。Redヒストグラムを表示するには、「Redヒストグラム」を選択します。
 ここで、Blue、Green、Redのそれぞれのヒストグラムにおいて、色調調整処理(ストレッチ処理)を行うための最小値と最大値を読み取ります(厳密に読み取る必要はありません)。
 ヒストグラムのグラフ下にある「Information」欄の「GRAD」が横軸の値で、「PIX」が縦軸の値(ピクセル数)です。ヒストグラム自体にカーソルを持っていくと、そのグラフ位置での「GRAD」と「PIX」が表示されます。
 この状態で、Blue、Green、Redのヒストグラムに対して、色調調整処理(ストレッチ処理)を行うために必要な横軸「GRAD」の最小値と最大値の値を大まかに読み取ります。
 なお、統計量として、データの平均値(M)と標準偏差(SD)も表示されます。
 また、ヒストグラムのデータは、CSV形式で出力することができます(「ファイル」→「CSV出力」)。








(5)色調調整(RAW)
 メニュー「色調」→「色調調整(RAW)」で、リニア・エンハンスメント処理(ストレッチ処理)を行います。



 「色調調整(RAW)」では、表示したい画素値の最小値と最大値を設定することで、最小値を0に、最大値を255にデータ変換して表示します。
 ここでは、実際にヒストグラムから読み取った表示範囲の最小値と最大値を入力し直し、「OK」ボタンを押します。
 なお、ガンマ補正処理を行う場合は、メニュー「色調」→「色調調整」で行うことができます。






(6)自動色調調整
 メニュー「色調」→「自動色調調整」で、自動的にリニア・エンハンスメント処理(ストレッチ処理)を行います。
 自動色調調整の設定値のデフォルトは2%です。設定値が大きい(パーセント値が大きい)程、最大値と最小値の範囲は狭くなり、その範囲内での表示のために色調は強調されます。
 自動色調調整の設定値の変更は、メニュー「設定」→「自動色調調整設定」で行います。
 なお、ガンマ補正処理を行う場合は、メニュー「色調」→「色調調整」で行うことができます。


(7)反射率の表示
 RSP画面下のインフォメーション欄に表示されているDN値は、Float画像の場合は反射率そのものの値ですが、10000倍の整数画像の場合は、反射率の値を10000倍した値で表示されます。
 ここでは、反射率(10000倍の整数)画像を対象に、反射率を0から1の範囲での表示に変更します。
 メニュー「表示」→「RGB値設定」→「=a*(A)+b」をクリックします。



 ここで表示される値は、以下の計算式で計算した値になります。
  表示値=(係数a)×(反射率画像データ(10000倍の整数))+(係数b)
 ここで、係数a=0.0001、係数b=0.0を入力し、「OK」ボタンをクリックします。



 この結果、インフォメーション欄に表示される画素値は、反射率(実数)になります。




(8)全体画像表示・移動
 画像全体を表示します。
 メニュー「表示」→「全体表示」を選択します。



 全体表示フォームが表示され、そこに画像全体が表示されます。
 画像表示部の表示範囲が、全体表示フォーム内に枠で表示されます。これにより、メイン画面の表示画像が、全体画像のどの部分を表示しているのかがわかります。

 次に表示画像の範囲を移動させます。
 はじめに全体画像において、表示したい場所にカーソルを持っていき左クリックします。
 この事例では、千葉県銚子市付近を表示することとし、全体画像の銚子市付近で左クリックします。



 次に、メニュー「表示」→「移動」を選択すると、その場所を中心とした画像が表示されます。
 この事例では、メイン画面において千葉県銚子市付近が表示されます。







Landsat-8 NDVI画像の作成・表示

 上記の(1)(2)の手順で作成したLandsat-8の反射率画像を使って、NDVI画像を作成します。

【反射率画像がFloatファイルの場合】
(1)演算処理
 メニュー「ツール」→「Float処理」→「演算」→「=a*(A-B)/(A+B)+b」を選択します。
 Aファイルは、バンド5(近赤外波長)の反射率のファイルを選択します。また、Bファイルは、バンド4(赤波長)の反射率ファイルを選択します。
 保存ファイル名は、仮に「NDVI」とします。
 次に、係数aと係数bの設定ですが、係数a=1.0、係数b=0.0を入力します。
 また、ゼロ除算の値の定義は、-1.0とします(ゼロで割った結果を強制的に「-1」とする)。
 これでNDVI画像が作成されます。

(2)NDVI画像の表示
 メニュー「ファイル」→「開く」→「開く RAW」を選択し、その後、NDVI画像ファイルを選びます。


【反射率画像がUnsigned integer(10000倍)ファイルの場合】
(1)演算処理
 メニュー「ツール」→「Unsigned integer処理」→「演算」→「=a*(A-B)/(A+B)+b」を選択します。
 Aファイルは、バンド5(近赤外波長)の反射率のファイルを選択します。また、Bファイルは、バンド4(赤波長)の反射率ファイルを選択します。
 保存ファイル名は、仮に「NDVI」とします。
 次に、係数aと係数bの設定ですが、係数a=10000、係数b=10000を入力します。
 また、ゼロ除算の値の定義は、0とします(ゼロで割った結果を強制的に「0」とする)。
 これでNDVI画像が作成されます。作成されたNDVI画像は、0が実際の「-1.0」に相当し、10000が実際の「0.0」に相当し、20000が実際の「1.0」に相当する画像になります。

(2)NDVI画像の表示
 メニュー「ファイル」→「開く」→「開く RAW」を選択し、その後、NDVI画像ファイルを選びます。

(3)NDVI値の表示
 RSP画面下のインフォメーション欄に表示されているDN値を、-1から+1の範囲で表示するように変更します。
 メニュー「表示」→「RGB値設定」→「=a*(A)+b」をクリックします。
 ここで表示される値は、以下の計算式で計算した値になります。
  表示値=(係数a)×(NDVI画像データ(10000倍し、10000を加えた整数))+(係数b)
 ここで、係数a=0.0001、係数b=-1.0を入力し、「OK」ボタンをクリックします。
 この結果、インフォメーション欄に表示される画素値は、NDVI(実数)になります。


Landsat-8輝度温度(シュードカラー)画像の作成と表示

 以下の手順で、Landsat-8画像を輝度温度画像に変換・作成し、輝度温度のシュードカラー画像を作成・表示します。

(1)フォーマット変換(GeoTIFF画像を16ビットRAW画像に変換)

 RSPでは、TIFFファイルを直接読み込むのではなく、TIFFファイルをRSPが持っている機能を使って、BMPまたはRAW(画像のみのファイル)に変換して使用します。
 具体的にLandsat-8は、16ビットのGeoTIFFフォーマットのため、これをRAW(画像データのみのファイル)のUnsigned integer(16ビット)フォーマットに変換して使用します。
 フォーマット変換処理は、メニュー「ファイル」→「フォーマット変換」を選択し、フォーマット変換フォームの表示メニューの「TIFF(GeoTIFF)」→「16bit−>RAW(Unsigned int)」で行います。





 上記メニューを選択した後、「TIFF(16bits)ファイルを開く」で、変換対象のバンドのGeoTIFFファイルを選びます。

 ここで、RSPで取り扱うことができるGeoTIFF(TIFF)は、非圧縮形式かつ非タイル形式です。圧縮形式またはタイル形式のGeoTIFF(TIFF)は、別ソフトで非圧縮かつ非タイル形式のTIFFに変換してから使用してください。非圧縮かつ非タイル形式のTIFFへの変換方法は、メニュー「RSP」またはメニュー「RSP」→「RSP Q&A」に掲載しているので参考にしてください。



 次に、「保存先ファイル名を指定」で、保存ファイル名を指定します。これで、GeoTIFFファイルが、RAW(Unsigned int)ファイルにフォーマット変換されます。この処理で作成されるファイルは、画像ファイルとヘッダファイル(ファイル拡張子が「.hd1」)の2種類のファイルです。RSPでは、画像ファイルとヘッダファイルを同一フォルダに置いて使用しなければなりません。また、作成される画像ファイル(16ビット画像の場合)のバイトオーダ(ビック・エンディアンかリトル・エンディアンか)は、メニュー「設定」→「バイトオーダ設定」で設定した形式になります。
 変換終了時には、画像の幅と高さのピクセル値が表示されます。
 このフォーマット変換は、輝度温度に関係するバンド10に対して実施します。

(2)輝度温度画像の作成
 上記でフォーマット変換したLandsat-8画像(Unsigned int)を輝度温度画像(FloatまたはUnsigned int)に変換します。
 メニュー「ツール」→「Landsat-8(RAW,Unsigned int)->輝度温度(K)」をクリックすると、輝度温度画像作成フォームが表示されます。






 ここで、乗数、加数、K1、K2を入力します。この値は、Landsat-8衛星画像を収録したフォルダ内のテキストファイル(.txt)に記載されています。
 また、プルダウンメニューで作成する輝度温度画像の出力型式(FloatまたはUnsigned int)を選択します。Floatの場合は実数のK(ケルビン)で、Unsigned intの場合はK(ケルビン)を100倍した整数値で作成されます。  
 Floatは、画像そのもの輝度温度画像になりますが、1画素4バイトになるため、Unsigned int画像の2倍のファイル容量になります。それに対してUnsigned intは、Floatよりもファイル容量が1/2と少ないですが、値の表示や演算時に工夫が必要になります。
 通常、ディスク容量を気にする場合はUnsigned intを、そうでなければ使い勝手の良いFloatを選択します。
 なお、RSPでは、フォーマット変換処理(メニュー「ファイル」→「フォーマット変換」→「RAW」)において、Unsigned int画像をFloat画像に変換することができるため、とりあえずUnsigned int画像で作成しておき、必要に応じて後でFloat画像に変換することもできます(ただし、この場合、有効桁数が異なります)。
 輝度温度(K)の計算式は、以下のとおりです。
  輝度温度=K2/ln [K1/{(乗数)×(画像データ)+(加数)}+1]
 「変換」ボタンを押すと、ファイルオープンダイアログ「Landsat-8画像ファイル(RAW,Unsigned int)を開く」が表示されます。ここでは、式中の画像データに該当するファイルを選択し、「開く」ボタンをクリックします。
 次に、ファイルセーブダイアログ「保存先ファイル名を指定する」が表示されます。ここでは、保存先フォルダ及びファイル名を指定(キーボードでファイル名を入力、または上書き保存の場合は、ファイルをカーソルで指定)し、「保存」ボタンをクリックします。
 これらの操作の結果、輝度温度画像が作成されます。作業を終了するため、「閉じる」ボタンを押します。
 なお、単位Kを℃に変換するには、実数値で「−273.15」を加えることになります((7)で℃単位表示について説明します)。

(3)ファイルオープン・表示
 メニュー「ファイル」→「開く」→「開く RAW」を選択し、その後、輝度温度画像ファイルを選びます。
 ここで、ファイル名の拡張子が「.hd1」のファイルは、同名の画像ファイルのヘッダファイルです。メニュー「開く」で選択するのは、画像ファイルであって、ヘッダファイルではないため、注意して下さい。








【この後、色調を調整する処理を行います】

 色調調整方法としては、”@:「(4)ヒストグラム表示」した後、「(5)色調調整(RAW)」を行う方法”、”A:「(6)自動色調調整」を行う方法((4)と(5)は行わない)(手っ取り早く色調調整した画像を見たい場合)”、”B:「(4)ヒストグラム表示」した後、「(5)色調調整(RAW)」を行い、さらに「(6)自動色調調整」を行う方法”があります。
 以下に、(4)(5)(6)の方法について記載します。


(4)ヒストグラム表示
 色調の階調を把握するため、階調のヒストグラムを表示します。
 メニュー「色調」→「ヒストグラム」を選択すると、Blueヒストグラムが表示されます。
 ここで、ヒストグラムから色調調整処理(ストレッチ処理)を行うための最小値と最大値を読み取ります(厳密に読み取る必要はありません)。
 ヒストグラムのグラフ下にある「Information」欄の「GRAD」が横軸の値で、「PIX」が縦軸の値(ピクセル数)です。ヒストグラム自体にカーソルを持っていくと、そのグラフ位置での「GRAD」と「PIX」が表示されます。
 この状態で、色調調整処理(ストレッチ処理)を行うために必要な横軸「GRAD」の最小値と最大値の値を大まかに読み取ります。
 なお、統計量として、データの平均値(M)と標準偏差(SD)も表示されます。
 また、ヒストグラムのデータは、CSV形式で出力することができます(「ファイル」→「CSV出力」)。

(5)色調調整(RAW)
 メニュー「色調」→「色調調整(RAW)」で、リニア・エンハンスメント処理(ストレッチ処理)を行います。
 「色調調整(RAW)」では、表示したい画素値の最小値と最大値を設定することで、最小値を0に、最大値を255にデータ変換して表示します。
 ここでは、実際にヒストグラムから読み取った表示範囲の最小値と最大値を入力し直し、「OK」ボタンを押します。
 なお、ガンマ補正処理を行う場合は、メニュー「色調」→「色調調整」で行うことができます。








(6)自動色調調整
 メニュー「色調」→「自動色調調整」で、自動的にリニア・エンハンスメント処理(ストレッチ処理)を行います。
 自動色調調整の設定値のデフォルトは2%です。設定値が大きい(パーセント値が大きい)程、最大値と最小値の範囲は狭くなり、その範囲内での表示のために色調は強調されます。
 自動色調調整の設定値の変更は、メニュー「設定」→「自動色調調整設定」で行います。
 なお、ガンマ補正処理を行う場合は、メニュー「色調」→「色調調整」で行うことができます。


(7)シュードカラー表示
 1つのチャンネルの画像は、モノクロームで表示されます。
 これに対して、擬似的に色を割り当てて表示する方法が、シュードカラー表示(擬似カラー表示)です。画素値がモノクロームではなく、色の違いで表示されるため、画素値の大小が明瞭になります。
 メニュー「色調」→「シュードカラー ***」を選択します。モノクローム画像が、カラー画像に変わります。
 シュードカラーとして自分で作成した色設定を使用する場合は、「シュードカラー カスタム」を選択し、色設定ファイルを指定します。色設定ファイルの作成方法はマニュアルに記載されています。また、色設定ファイル例として、RSPソフトの構成フォルダ「pseudo」内に「.csv」ファイルが収録されているため、参考にしてください。自分でシュードカラーの色を設定することができます。






(8)輝度温度の℃表示
 RSP画面下のインフォメーション欄に表示されているDN値は、Kの値です。
 ここでは、Kを℃表示に変更します。
 メニュー「表示」→「RGB値設定」→「=a*(A)+b」をクリックします。
 ここで表示される値は、以下の計算式で計算した値になります。
  表示値=(係数a)×(輝度温度画像データ(K))+(係数b)
 輝度温度(K)表示が100倍の整数の場合は、係数a=0.01、係数b=-273.15を入力し、「OK」ボタンをクリックします。
 輝度温度(K)表示がFloatの場合は、係数a=1.0、係数b=-273.15を入力し、「OK」ボタンをクリックします。
 この結果、インフォメーション欄に表示される画素値は、℃単位になります。








(9)全体画像表示
 画像全体を表示します。
 メニュー「表示」→「全体表示」を選択します。
 全体表示フォームが表示され、そこに画像全体が表示されます。
 画像表示部の表示範囲が、全体表示フォーム内に枠で表示されます。これにより、メイン画面の表示画像が、全体画像のどの部分を表示しているのかがわかります。