GRASS GIS 7.0 によるLANDSATデータの画像化

 
→ HOME
 
→ LANDSATデータ
→ GRASS GIS
→ 始める前に
→ さあ始めよう

 トゥルーカラー

→ フォールスカラー
→ パンシャープン
→ 疑似カラー
→ 使用環境
→ ヒント集
 
 
 
 
 
 
 
 
 
 
 

トゥルーカラー画像の作成

1.方針

トゥルーカラー画像の作成では、ダウンロード済みのTIFファイルのうち、バンド2、3、4の三つのファイルを使用します。これらの画像と色の関係は次のとおりです。

バンド2:青
バンド3:緑
バンド4:赤

それぞれのバンドの画像の明るさとコントラストを調整して、一つの画像に合成すればトゥルーカラー画像が作成できます。

ここでは、ダウンロードされたTIFファイルのデータ(DN、つまりデジタルナンバー)をまず地球の反射率に変換し、その反射率からトゥルーカラー画像を作成する方法を紹介します。

2.ラスターデータのインポート(ラスターマップの作成)

ダウンロードされたTIFファイルのうち、バンド2とバンド3、そしてバンド4のファイルを順にインポートし、B2、B3、B4というラスターマップを作成してください。

TIFファイル(画像データ)のインポートは、「Layer Manager」のメニューから、「ファイル」⇒「ラスターデータのインポート」⇒「Common formats import」で行います。

インポートするファイルは、ファイル名の末尾が「~_B2.TIF」「~_B3.TIF」「~_B4.TIF」となっているファイルです。

3.反射率への変換

この例では「さあ始めよう」でマップセットに対する領域設定が実行ずみであることを前提にしています。まだであれば、上でインポートしたラスターマップ(たとえばB2)を用いて領域設定を実行してください。

作成されたラスターマップは各セルの値としてL1プロダクトの生データ(DN:デジタルナンバー)が入っています。これを反射率(TOA反射率:地球を大気圏外から見た反射率であり、大気による散乱光などを含む)に変換する方法はこちらに説明があります。
https://landsat.usgs.gov/Landsat8_Using_Product.php

ラスターマップB2の各セルのDNを反射率に変換し、新しいラスターマップB2Rを作成しましょう。各セルの値をB2からB2Rに変換する計算式は次のようになります。

B2R = (B2 * REFLECTANCE_MULT_BAND_2 + REFLECTANCE_ADD_BAND_2) / sin(SUN_ELEVATION)

この式にある赤文字の長ったらしい名前はいずれもメタデータ(画像データに含まれるテキストファイルで、ファイル名の末尾が「~MTL.txt」のもの)の項目名です。メタデータにはこれらの実際の値が次のように記述されています。

REFLECTANCE_MULT_BAND_2 = 2.0000E-05
REFLECTANCE_ADD_BAND_2 = -0.100000
SUN_ELEVATION = 64.12040830 (この値は画像ごとに違います)

この例ですと、実際に使用する変換式はこうなります。

B2R = (B2 * 0.00002 - 0.1) / sin(64.12040830)

B2:DNが格納されたラスターマップ(バンド2)
B2R:作成される反射率が格納されたラスターマップ
0.00002 および -0.1:メタデータに記載されている変換係数
sin:三角関数のサイン
64.12040830:メタデータに記載されているこの画像中央の太陽高度(Sun Elevation)。

この変換の実行には「ラスターマップカリキュレータ」を使います。「Layer Manager」の画面上部に並んでいるアイコンの「ラスターマップカリキュレータ」(下図の赤矢印)をクリックしてください。
ラスターマップカリキュレータ

ラスターマップカリキュレータに与えるパラメータは次のとおりです。

・「新しいラスターマップ名:」に ”B2R” を記入
・「式」に ”(B2 * 0.00002 - 0.1) / sin(64.12040830)” を記入

「実行」のボタンをクリックすると、しばらく(10秒~40秒)かかって処理が終わります。

バンド3と4についても同じように変換を行います。変換式はこんな感じになります。

B3R = (B3 * 0.00002 - 0.1) / sin(64.12040830)
B4R = (B4 * 0.00002 - 0.1) / sin(64.12040830)

ラスターマップカリキュレータによる変換処理は、処理中のマップセットに設定されている「領域」のすべてのセルに対して実行されます。画像全体の変換を行う場合、元画像の大きさと解像度に合わせて「領域」を設定しておく必要があります。領域の設定方法は「さあ始めよう」の「7.領域設定、ラスターマップの表示」にあります。

4.カラーテーブルの設定

変換して作成した反射率のラスターマップ(B2R、B3R、B4R)それぞれに対してカラーテーブルを設定します。私は自然な色が再現できる値として次の値を使用していますが、これが正しい、というものではありません。参考値と考えてください。

(B2R用)
nv white
-100000 black
0.05 black
0.27 white
100000 white

(B3R用)
nv white
-100000 black
0.025 black
0.245 white
100000 white

(B4R用)
nv white
-100000 black
0.015 black
0.235 white
100000 white

カラーテーブルの設定には「Layer Manager」のメニューから「ラスター」⇒「カラー調整」⇒「カラーテーブル」を実行します。「r.colors」の画面で、「Map」タブの「Name for raster map(s):」にラスターマップを設定し、「Define」タブの「or enter values directly:」の欄にカラーテーブルのパラメータを指定して実行してください。カラーテーブルの設定はラスターマップごとに実行してください。

5.トゥルーカラー画像の表示

これで準備が整いました。三つのラスターマップを合成してトゥルーカラー画像を表示させましょう。
「Layer Manager」画面の「様々なラスターマップレイヤー追加」のアイコン(下図の赤矢印)をクリックしてください。メニューが表示されますから、「RGBレイヤー追加」を実行します。
様々なラスターマップレイヤー追加

「d.rgb」の画面で<red>、<green>、<blue>にそれぞれB4R、B3R、B2Rのラスターマップを指定して、OKをクリックすると(少し時間がかかりますが)トゥルーカラー画像が表示されます。

6.なぜ反射率に変換するか

トゥルーカラー画像を作るときには、見たい部分がちょうどよい明るさになるように、そしてカラーバランスが正しくなるように、各バンドの画像の明るさとコントラストを調節する必要があります。ところが、LANDSAT-8のL1データの場合、ダウンロード済みのTIFファイルの画像の明るさ(DNの平均的な値)は撮影時の太陽高度で変化します。そうすると、明るさとコントラストの調節の仕方を画像ごとに変更する必要があります。

一方、物体の反射率は太陽高度の影響を受けにくいので、トゥルーカラー画像を作るときの明るさとコントラストの調整は、太陽高度(つまり、場所や季節)にかかわらずだいたいいつも同じやり方(パラメータ)が使えることになると期待されます。これが、ここで反射率に変換している理由です。