ArcGIS で Landsat 画像を地表面温度画像に変換しよう!

地球観測衛星の Landsat 画像は、無料で利用できる衛星画像として植生指数(NDVI)の計算や土地利用分類図の作成など幅広く利用されています。また、Landsat 画像には熱赤外のバンドが含まれており、このバンドを利用すると地表面温度を算出することができます。
ここでは、ArcGIS 10.2.1 for Desktop を使用して Landsat 8 の熱赤外バンド(バンド 10、11)を地表面温度の値に変換する方法をご紹介します。
ArcGIS での Landsat 8 データのダウンロードと基本的な利用方法についてはこちらをご参照ください。Image1_3

基礎知識


Landsat 画像から地表面温度を求めるための計算式は以下のとおりです。
Landsat 画像には DN 値(Digital Number)と呼ばれる値が記録されており、温度に変換するためには、DN 値を大気上端放射輝度値(TOA:Top of Atmosphere)に変換してから絶対温度(°K)に変換します。
・DN 値を大気放射輝度値に変換:TOA(mW/m2*sr)=ML*DN+AL  …式 1
※ML:放射輝度変換式の傾き(Radiance Multiplier)、AL:放射輝度変換式の切片(Radiance Add)
・TOA を温度に変換 :

Image2_2

…式 2

・絶対温度を摂氏に変換 :T(℃)= K-273.15 …式 3
ArcGIS では、ラスタ関数チェーンを使用して上記の式を組み立て、Landsat 画像に適用します。
※この式で計算される温度は大気の影響や物質の放射率の補正を含んでいませんので、通常の地表面の温度とは異なります。
今回は Landsat 8 画像の熱赤外バンド(バンド 10)を利用して地表面温度の画像を作成します。

手順

Step1: メタデータ情報の確認

Landsat 画像をダウンロードして解凍すると、全バンドの TIFF 画像とメタデータ(.txt ファイル)が格納されています。
このメタデータを開き、下の表のように各熱赤外バンドの「RADIANCE MULT(Radiance Multiplier)」と「RADIANCE ADD(Radiance Add)」、「K1」、「K2」の値を確認します。Landsat 8 画像には熱赤外バンドが 2 つあるため、計算式に入れる値を間違えないようにしましょう。

Image3

Step2: 関数テンプレートの編集

  1. 地表面温度を計算したい熱赤外バンド (バンド 10) の画像を ArcMap に追加します。
  2. [ウィンドウ] メニュー → [画像解析] をクリックし、[画像解析] ウィンドウを開きます。
  3. [画像解析] ウィンドウで熱赤外バンドのレイヤーを選択し、[関数の追加] ボタンをクリックします。[関数テンプレート エディター] ウィンドウが開きます。
  4. アイデンティティ関数を右クリックし、[挿入] → [バンド演算関数] をクリックします。
  5. [バンド演算] タブで、下図の Ⅰ と同じように入力します(この例ではバンド 10 を入力データとしています)。
  6. 次の関数を追加する場合は、先ほど作成した [バンド演算関数] を右クリックして、手順 4 と同様に関数を追加します。そして下図の Ⅱ から Ⅴ までの関数を順に追加していきます。
    ※[ローカル統計関数] を使用する場合は、ArcGIS エクステンション製品である Spatial Analyst が必要です。
    Image4_2
  7. 全ての関数の追加を終えたら [OK] をクリックします。 [関数テンプレート エディター] ウィンドウが閉じ、関数が適用された新しいラスタが追加されます。これで地表面温度の画像が作成できました。
  8. 任意でシンボルの色を変更します。
  9. 作成した画像はメモリ上に保存されているため、画像をディスクに保存したい場合は、レイヤーを右クリック → [データ] → [データのエクスポート] をクリックして任意の場所にファイルとして保存してください。

Step3: 関数テンプレートの保存

Step2 で作成した関数テンプレートを保存しておくと、他のエリアまたは他の時期の Landsat 画像の熱赤外バンドに同じ関数を適応することができます。

  1. 関数を適用しているレイヤーを右クリックして、レイヤー プロパティを開き、[関数] タブを選択します。
  2. [関数チェーン] の下にある最初の項目を右クリックし、[テンプレートとしてエクスポート] をクリックします。[関数テンプレート エディター] ウィンドウが開きます。
    現状では特定の Landsat 8 データを処理するように設定されているため、他の Landsat 8 データにも適用できるように編集します。
  3. 関数チェーンのラスタの上の関数を右クリックし、[プロパティ] をクリックします。
  4. [変数マネージャ] タブで、[Raster] 変数上の [データセット] のチェックを右クリックして、[デフォルト値の消去] をクリックします。
  5. [OK] をクリックすると、今まで指定されていたラスタ データがリセットされます。

    Image5

  6. [ファイル] → [名前を付けて保存] をクリックします。
  7. 任意の場所に名前を付けて保存します。 保存した関数テンプレートは、[ラスタ関数の編集(Edit Raster Function)] ジオプロセシング ツールを使用して、他のラスタ データに適用することができます。

    Image6

[ラスタ関数の編集(Edit Raster Function)] ジオプロセシング ツールを使用する場合は、ArcGIS for Desktop Standard 以上のライセンスが必要です。詳しくはこちらをご参照ください。

Landsat 5/TM と Landsat 7/ETM+ については、Landsat 8 とセンサー パラメータやメタデータ情報が異なるため計算式も異なりますが、基本的なフローは同じです。

■関連リンク
ArcGIS ヘルプ
ラスタ データセット上の関数の編集
関数チェーン テンプレートの編集

ArcGIS ブログ
ArcGIS Desktop 10 のお勧め画像機能:表示編
ArcGIS Desktop 10 のお勧め画像機能:処理編 その1