178
地球地図ラスタ作成ツール 操作マニュアル

地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

地球地図ラスタ作成ツール

操作マニュアル

Page 2: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

目次 1. はじめに ............................................................................................................................................ 1

1-1.概要 ......................................................................................................................................... 1

1-2.前提知識 ................................................................................................................................. 1

1-3.パソコンの動作環境 .............................................................................................................. 1

1-4.作成日 ..................................................................................................................................... 2

1-5.著作権 ..................................................................................................................................... 2

2. ソフトウェアのインストール .......................................................................................................... 3

2-1.インストールの準備 .............................................................................................................. 3

2-2.GRASS のインストール ........................................................................................................... 3

2-3.OSGeo4W のインストール ................................................................................................... 11

2-4.pyModis のインストール...................................................................................................... 15

2-5.統計パッケージ R のインストール ..................................................................................... 18

3. 衛星画像解析のための前処理 ........................................................................................................ 25

3-1.GRASS 環境のセットアップ ................................................................................................. 25

3-2.スクリプト実行環境のセットアップ.................................................................................. 31

3-3.MODIS データのダウンロード ............................................................................................. 34

3-4.投影変換・モザイク ............................................................................................................ 38

3-5.GRASS へのインポート ......................................................................................................... 39

3-6.中間データの管理 ................................................................................................................ 43

3-7.マスクによる分析範囲の限定 ............................................................................................. 44

3-8.雲除去 ................................................................................................................................... 52

3-9.LANDSAT 画像の処理 ............................................................................................................ 55

3-10.VIIRS 画像の処理 ............................................................................................................... 62

4. 土地被覆分類................................................................................................................................... 67

4-1.トレーニングデータの取得 ................................................................................................. 67

Page 3: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

4-2.トレーニングデータのインポート ..................................................................................... 72

4-3.ピクセル毎の説明変数の計算 ............................................................................................. 74

4-4.トレーニング領域の妥当性の検証 ..................................................................................... 76

4-5.教師付き分類による土地被覆分類 ..................................................................................... 77

4-5-1.画像データのグループ化 .......................................................................................... 77

4-5-2.最尤法による土地被覆分類 ...................................................................................... 79

4-5-3.ディシジョンツリーによる土地被覆分類 ............................................................... 83

4-6.トレーニング領域と分類結果の比較.................................................................................. 85

4-7.地球地図仕様に合わせたラスタ値の再分類 ...................................................................... 86

4-8.分類ラスタのメッシュサイズのリサンプリング............................................................... 89

4-9.ランダムな検証点の発生と分類結果の検証 ...................................................................... 90

4-10.土地被覆分類結果の検証 ................................................................................................. 94

4-11.土地被覆データのエクスポート ..................................................................................... 98

5. 樹木被覆率推定 ............................................................................................................................. 100

5-1.各バンド及びインデックスの集計 ................................................................................... 100

5-2.基本トレーニングデータとシミュレーショントレーニングデータの作成 .................. 101

5-3.ディシジョンツリーの作成 ............................................................................................... 103

5-4.樹木被覆率の推定 .............................................................................................................. 104

5-5.推定結果の統合 .................................................................................................................. 105

5-6.メッシュサイズの変更 ...................................................................................................... 106

5-7.水部のマスキング .............................................................................................................. 107

5-8.検証点における精度の算出 ............................................................................................... 111

5-9.樹木被覆率データのエクスポート ................................................................................... 115

6. 参考文献及びヒント ..................................................................................................................... 119

土地被覆分類 ..................................................................................................................................... 119

樹木被覆率トレーニングデータの作成 ........................................................................................... 119

Page 4: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

樹木被覆率推定 ................................................................................................................................. 120

FAQ ......................................................................................................................................................... 121

パソコン環境とインストール .......................................................................................................... 121

スクリプト全般について .................................................................................................................. 123

個別処理について ............................................................................................................................. 123

ライセンスについて .......................................................................................................................... 128

付録 ........................................................................................................................................................ 130

A-1.See5/Cubist 作業手順 .......................................................................................................... 130

1.分割エリアを決定 ................................................................................................................... 130

2.分割エリアでマスクして modis_extract_dn.sh を実行する .................................................. 131

3.ランダム点の作成 ................................................................................................................... 131

4.ランダム点へのフィールドの追加 ........................................................................................ 132

5.テーブルをエクスポート ....................................................................................................... 133

6.テーブルの編集と.names ファイルの作成 ............................................................................ 134

7.See5 および個別の Cubist を実行 ........................................................................................... 135

8.結果のインポート ................................................................................................................... 135

9.グループごとの Cubist 計算結果をインポート ..................................................................... 136

10.グループごとの結果を統合 ................................................................................................ 138

A-2.操作説明書 .......................................................................................................................... 139

1.はじめに .................................................................................................................................. 139

2.基本処理 .................................................................................................................................. 140

3.土地被覆分類........................................................................................................................... 153

4.樹木被覆率分類 ....................................................................................................................... 165

Page 5: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

1

1. はじめに

1-1.概要 このマニュアルは、地球地図プロジェクトの一環として作成される地球地図ラスタデータの土地被

覆及び植生(樹木被覆率)の作成方法を説明します。衛星 Terra 及び Aqua の MODIS (Moderate

Resolution Imaging Spectroradiometer) データ 、LANDSAT (Land Remote-Sensing Satellite) 8号の OLI

(Operational Land Imager) データ、Suomi NPP (Suomi National Polar-orbiting Partnership) 衛星の VIIRS (Visible

Infrared Imaging Radiometer Suite) データを用いて地球地図ラスタデータを作成する手順について解説し

ています。具体的には、以下のような内容を取り扱います。

• オープンソース・デスクトップ GIS の入手・インストール方法(第2章)

• 衛星画像のダウンロードとデータの前処理(第3章)

• 土地被覆分類(第4章)

• 樹木被覆率分類(第5章)

• 参考文献とヒント(第6章)

なお、作業自体は同梱されている/scripts フォルダに格納されているスクリプトをベースとして進め

ていきます。スクリプト内で実装されている詳細な処理および処理に利用する各ソフトウェアの詳し

い使用方法に関する説明は割愛します。

1-2.前提知識 本書を読み進めるにあたっては、以下の知識や技術を習得済みであることとします。

• 座標系や地図投影の概念

• 画像フォーマットや画像処理の基礎知識

• リモートセンシングに関する基礎知識

• Windows の基本操作

これらについての詳細な解説は本書の中では行っておりません。必要に応じて、他の書籍などをご

参照ください。

1-3.パソコンの動作環境 本プログラムは、以下の Microsoft 社の Windows7、64ビット版の環境でテストを行いました。

Page 6: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

2

• プロセッサ: AMD Athlon™ II X2 250 Processor 3.00 GHz

• メモリ:4GB

• HDD:256GB

• グラフィックス: ATI Radeon HD 4200

• OS:Windows 7 SP1

また、下記の Windows7、32bit の環境でもテストを行いました。

• プロセッサ:Intel Xeon E5420 2.50 GHz 2 Processor

• メモリ:4GB

• HDD:256GB

• グラフィックス:VGABIOS Cirrus extension

• OS:Windows 7 Enterprise

ただし、ユーザに求められる最低限のパソコン環境は、本プログラムが使用する GRASS、R、gdal コ

マンド群、See5/Cubist が動作する最低要件と一致し、処理対象となるデータの容量に依存します。

また、プロセスによっては大きなメモリ領域が必要となる場合があり、スクリプトが正常に作動し

ない場合もあります。その際には、他の動作中のプログラムを終了したり、解析対象範囲を狭めたり

して再度解析を実行して下さい。

1-4.作成日 本書は2014年3月に作成しています。本書で使用している各種サイトやツール類は、本書作成時点で

動作確認しております。最新の情報に関しては、それぞれの公式サイトなどを参考としてください。

1-5.著作権 本書の著作権は国土地理院に帰属します。

Page 7: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

3

2. ソフトウェアのインストール

2-1.インストールの準備 このマニュアルでは、4種類のオープンソースソフトウェアを使用します。使用するソフトウェアの

使用ディスク容量を表2-1-1に示したので、それぞれのソフトウェアをインストールする前に、ディス

クの空き容量をご確認ください。

表2-1-1.ソフトウェアと使用ディスク容量

ソフトウェア ディスク容量

GRASS 約360MB

OSGeo4W 約900MB

pyModis 約370KB

R 約100MB

このマニュアルが対象としている日本域をカバーする MODIS2ヶ月の画像データ及び派生データを

取り扱うためには最低でもおよそ100GB のハードディスク容量を必要とします。1年間のデータを用い

たさらに本格的な解析や、LANDSAT や VIIRS データ(1タイルの1時期のデータにつき、約1~2GB)を使

用する場合はそれに相当する十分な容量のハードディスクをご用意下さい。データの展開・変換など

により非常に大きなデータ領域を必要とするため、必要となるディスクスペースは最大でおよそ200~

250GB 程度となることもあります。但し、中間ファイルや不要になったファイルなどを処理ごとに適

宜削除することで、必要なディスク領域を多少圧縮することができます。目安として、ダウンロード

して展開したデータのおよそ2.5倍程度のディスク容量を確保して下さい。外付けハードディスクで対

応する場合で、使用しているパソコンで初めて使用する場合は、ハードディスクを接続後動作が確認

されてからパソコンを一度再起動してください。

2-2.GRASS のインストール GRASS(Geographic Resources Analysis Support System)は、幾何補正、画像解析、空間演算、経路検

Page 8: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

4

索など、多様な分析機能を持ったオープンソースのデスクトップ GIS ソフトウェアです。公式サイトの

http://grass.osgeo.org/ では(図2-2-1)、GRASS に関する様々な情報が英語で提供されています。本書で

使用する GRASS6.4.3は、同サイトの http://grass.osgeo.org/download からダウンロードすることができ

ます。

図2-2-1の「Windows」アイコンをクリックし、図2-2-2のダウンロードページに移動した後、

「winGRASS 6.4 standalone installer」をクリックしてダウンロードファイルのリストページ(図2-2-3)

に移動した後、リストから、「WinGRASS-6.4.3-1-Setup.exe」(図2-2-3でハイライト)をクリックしてイン

ストーラーをダウンロードします。

図 2-2-1. GRASS トップページ

Page 9: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

5

図 2-2-2. GRASS ダウンロードページ

図 2-2-3. GRASS ダウンロードファイル一覧

Page 10: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

6

ダウンロードが完了したら、ダウンロード先で「WinGRASS-6.4.3-1-Setup.exe」を探し出し、図2-2-4

のようにアイコンを右クリックし、「管理者として実行(A)…」を選択して、プログラムのインストー

ルを開始します。

図 2-2-4. GRASS のインストール

インストール過程では(図2-2-5)、プログラムのインストール先、サンプルデータのインストール

などについて聞かれますが、インストールするコンポーネントで「Important Microsoft Runtime DLLS」

を選択する(図2-2-6)以外は特に設定を変更する必要は無く、すべて「Next」をクリックします。

図 2-2-5. GRASS セットアップ開始画面

Page 11: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

7

図 2-2-6. インストールする内容の選択画面(Important Microsoft Runtime DLLs をチェック)

GRASS のインストールが無事完了すると、次にインストール内容で選択した「Important Microsoft

Runtime DLLs」をインストールする手順に移ります(図2-2-7)。Runtime DLLs のインストールにおいて

も、「OK」または「Next」をクリックしてインストールを進め、全てのインストール作業を終了すると

(図2-2-8)、デスクトップにある「GRASS GIS 6.4.3」のアイコンから GRASS を起動できるようになりま

す(図2-2-9)。

図 2-2-7. Microsoft Runtime DLLs インストール開始のウィンドウ

Page 12: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

8

図 2-2-8. GRASS セットアップ完了画面

図 2-2-9. デスクトップ上の GRASS 起動アイコン

また、インストールの完了時には、ウィンドウズの「スタート」メニューからアクセスできる、

「GRASS GIS 6.4.3」のプログラムリスト(図2-2-10)に、GRASS を GUI(Graphical User Interface)や CUI

(Character User Interface)の様々なモードで起動するためのショートカットが用意されます。本マニ

ュアルでは、GRASS GIS 6.4.3 GUI with MSYS を使用しますので、図2-2-10の様に該当する「GRASS GIS

6.4.3 GUI with MSYS」ショートカットを選択してください。

Page 13: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

9

図 2-2-10. インストールされた様々な GRASS の起動モード

すると、図2-2-11のようにコマンドライン画面が現れるので、指示に従いキーボードの「Enter」キ

ー、又は「Return」キーを押します。初めて GRASS6.4.3をインストールした方は、この次に図2-2-12の

様な警告メッセージが出るので(GRASS のデータが保存されているディレクトリが見つからないため

表示される警告)、GRASS のデータを収める新しいディレクトリを作成するか(警告メッセージに従え

ば、grassdata という新しいフォルダをホームディレクトリに作る)、以前から使っている GRASS 用のデ

ータベースフォルダがあれば、GRASS 起動画面(図2-2-13)の「参照」ボタンをクリックして指定しま

す。データを格納するフォルダなど設定は第3章で行うので、ここではソフトウェアが正常に起動す

ることを確認できれば、「×」ボタンをクリックして画面を閉じてください。

GRASS のインストールが完了したにも関わらず、GRASS の起動に問題が見られる場合は、本マニュ

アルの FAQ を参照して下さい。

Page 14: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

10

図2-2-11. 「GRASS GIS 6.4.3 GUI with MSYS」起動後のコマンドライン画面

図2-2-12. GRASS を初めて起動した際に出る警告メッセージ

図 2-2-13. GRASS 起動後の画面

Page 15: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

11

2-3.OSGeo4W のインストール OSGeo4W は、現在配布されている様々なオープンソースの GIS ソフトウェアや開発用ライブラリを

一括してインストールするためのメカニズムを提供します。GDAL や Python のように複数の GIS ソフト

ウェアに共通で利用されるライブラリを一括管理することによって、同一のライブラリが複数インス

トールされるということを避けることができ、効率的にソフトウェアおよび開発環境を管理すること

ができます。公式サイトは http://trac.osgeo.org/osgeo4w/ です。

インストールは、図2-3-1の OSGeo4W project トップページに記載されている「OSGeo4W ユーザーの

ためのクイックスタート」に基本的に従います。

まず、OSGeo4W project トップページ(図2-3-1)の「OSGeo4W インストーラー」(環境に合わせて

32ビット版か64ビット版を選択)をクリックしてインストーラーをダウンロードします。各自のパソ

コンに osgeo4w-setup.exe がダウンロードされますので(図2-3-2)、アイコンをダブルクリックしイン

ストールを開始します。

図2-3-1. OSGeo4W project のトップページ

Page 16: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

12

図2-3-2. ダウンロードした osgeo4w-setup.exe のアイコン

インストーラーが起動すると、まず始めに、インストールの方法を聞かれるので、ユーザーがイン

ストールする内容を選択する「Advanced Install」のラジオボタンをチェックして、次に進みます(図2-

3-3)。

図2-3-3. OSGeo4W のインストール方法選択

その後、いくつかのウィンドウが開き、インストール先やファイルをダウンロードする方法などを

聞かれますが、デフォルトのまま進み、図2-3-4にある「Select Packages」まで進みます。このウィンド

ウでは、gdal と python-core、及び wxpython の3つのモジュールを選択します。(2015/2/1追記:

OSGeo4W のパッケージの内容に変更があり、これらのパッケージのほかに Libs の下にある gdal-python

と python-numpy を併せてインストールする必要があります。)

はじめに Python と GDAL を選択するため、「Commandline_Utilities」と書かれたリストを展開します

(図2-3-4)。「Commandline_Utilities」と書かれた左側にあるプラス記号をクリックすることでリストを

展開することができます。

Page 17: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

13

図2-3-4. OSGeo4W のダウンロードサイト指定画面

リストが展開されたら、その中から、「gdal」と「python-core」を探し出し、「Skip」と書かれている

部分をクリックして、インストールするバージョンを図2-3-5のように表示させます。このバージョン

を示す数字は、ユーザーが実際にインストール作業を行うタイミングにより変わります。最新のバー

ジョンを選択してください。

図2-3-5. インストールするコマンドラインユーティリティの選択(gdal と python-core を選択)

Page 18: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

14

引き続き、wxpython を選択するため、「Libs」リストを展開します(図2-3-6)。wxpython はリストの

最後の方にあるので、スクロールして wxpython を探し、選択して下さい(図2-3-7)。

図2-3-6. wxpython を選択するために、Libs リストを展開する

図2-3-7. インストールするライブラリの選択(wxpython を選択)

インストールするプログラムを選択した後、次へ進み、実際のインストールを行いますが、その際、

ユーザーの環境により、インストールするソフトウェアと依存関係にあるソフトウェアのインストー

ル、及びオープンソースコードではないソフトの利用に関する承諾を求められることもありますので、

内容に承諾できる場合は、承諾してインストールを進めて下さい。インストールが無事完了すれば、

Page 19: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

15

デスクトップ上に「OSGeo4W Shell」というショートカットアイコンが表示されます。

2-4.pyModis のインストール pyModis とは、NASA の FTP サーバーから MODIS データをダウンロードするための Python ライブラ

リです。公式サイトは http://pymodis.fem-environment.eu/ です(図2-4-1)。pyModis をダウンロードす

るため、公式サイトから「How to install pyModis」をクリックします(図2-4-1 矢印)。

図2-4-1. pyModis の公式サイト

pyModis 自体は git と呼ばれるソースコード管理システムで管理されています。図2-4-2の赤丸で示され

たページ中ほどにある「github repository」をクリックしてソースコードの保管先であるリポジトリに

移動します。

Page 20: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

16

図2-4-2. pyModis のダウンロード手順解説ページ(赤丸: pyModis の git リポジトリへのリンク)

gitクライアントをインストール済みの場合は、git cloneコマンドでpyModisのソースコードを入手す

ることが可能です。gitをインストールしていない場合は、リポジトリのページ右側「Download ZIP」と

書かれたボタン(図2-4-3の赤丸)をクリックしてzip形式でファイルをダウンロードします。ダウンロ

ードしたzipファイルは、任意の場所(例えば、C:\temp1)に解凍してください。解凍したファイルに含

まれるプログラムを利用して、プログラムのインストールを行います。

1本書では、ディレクトリの表記に「\(バックスラッシュ)」を日本で通常使われる「¥」の代わりに用い

ています。

Page 21: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

17

図2-4-3. pyModis の github リポジトリサイト(赤丸が ZIP ファイルダウンロードのためのボタン)

git のクローンコマンド、又は zip ファイルの解凍により pyModis をインストールする準備ができた

ら、解凍した pyModis-master のホームディレクトリにある setup.py を実行してインストールを行いま

す。まず、OSGeo4W のインストールでデスクトップ上に作成された、OSGeo4W Shell アイコンをダブ

ルクリックしてコマンドウィンドウを立ちあげます。コマンドラインで一旦、pyModis-master のディ

レクトリへ移動した後(例えば、cd c:\temp\pyModis-master とコマンドを実行し、カレントディレクト

リを移動)、次の例のようにコマンドを入力します。pyModis_master フォルダが、c:\temp ディレクト

リ内にある場合は以下の様なプロンプトになり、ここでインストールの命令を実行します。

c:\temp\pyModis-master> python setup.py install

注:Windows のコマンドプロンプトでも同様の処理は可能ですが、OSGeo4W Shell を利用す

ると python.exe へのパスが定義されているため、setup.py の実行が容易になります。

正常に処理が終了したら、pyModis のインストール作業は完了です。

Page 22: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

18

2-5.統計パッケージ R のインストール GNU R(以下、R)は、R 言語と呼ばれる統計言語の開発、実行環境です。様々な統計解析処理に加

え、グラフ作図などの機能も充実しています。さらに、空間統計(Spatial analysis)などでは GRASS 等

の GIS に実装されていない機能も有しています。このマニュアルでは、一部の統計処理やグラフ作図に

あたって、R を使用します。R Project のトップページは、http://www.r-project.org/ です。

図 2-5-1. R Project のトップページとダウンロードサイト CRAN へのリンク(赤丸)

R をダウンロードするには、図2-5-1の左の「CRAN」をクリックします。すると、ダウンロードのミ

ラーを選択する画面が表示されます(図2-5-2)。ここでは、日本国内のサーバー(図2-5-2でハイライト

したハイパーリンクの内の1つ)をクリックします。

Page 23: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

19

図 2-5-2. 統計ソフト R のダウンロードサイトの選択(ハイライトは、日本のダウンロードサイト)

次に、どのプラットフォーム用の R かを選択する画面(図2-5-3)になるので、「Download R for

Windows」をクリックします。

図 2-5-3. 統計ソフト R の対応 OS 選択のページ

Page 24: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

20

続けて次のページでは、「Subdirectories:」の下にある base をクリックします(図2-5-4 赤丸)。

図 2-5-4. インストールする内容の選択(base を選択します)

すると、「Download R 3.0.2 for Windows」が表示(図2-5-5)されるので、クリックして R-3.0.2-

win.exe をダウンロードします。

図 2-5-5. Windows 用 R インストーラーのダウンロードページ

Page 25: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

21

ダウンロードが完了したら、R-3.0.2-win.exe を GRASS の時と同様に右クリックしてコンテクストメ

ニューを表示させ、「管理者として実行(A)…」を選択し、インストールを実行します。

インストールの際に、「ユーザーアカウント制御」ウィンドウが表示されるので、そこでは「はい」

をクリックします。さらに、図2-5-6の様にインストールする言語を選択する画面が表示されます。こ

こでは、English を選択します。

図 2-5-6. 言語選択画面

すると、図2-5-7のように R のインストール作業が開始されます。

図 2-5-7. R セットアップ画面

Page 26: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

22

図2-5-7以降のインストール作業では、基本的に「Next」をクリックしますが、Select Components 画

面(図2-5-8)では、OS の種類によりインストールする内容を選択します(32-bit Files であれば、

Windows が32ビット版であっても64ビット版であっても動作するので、よくわからない方は、32-bit

Files のインストールをお勧めします)。「Message translations」(図2-5-8)はインストールして下さい。

図 2-5-8. Components 選択画面

インストールが無事完了すると、デスクトップに R のアイコンが追加されます(図 2-5-9)。

図 2-5-9. R アイコン(32 ビット版の場合)

インターネットの接続にプロキシを用いている環境の場合は、この後 R のパッケージをインストー

ルするために下記の設定をする必要があります。R アイコンを右クリックしてプロパティを選択し、シ

ョートカットのタブのリンク先をみると"C:\Program Files\R\R-3.0.2\bin\x64\Rgui.exe" のようになってい

るかと思いますが、"C:\Program Files\R\R-3.0.2\bin\x64\Rgui.exe" --internet2のように--internet2を追加し

てください。なおインターネットの接続にプロキシを特に使用していない環境の場合は、この設定は

Page 27: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

23

不要です。

インストールを確認し、本マニュアルで利用する R 用のパッケージをインストールするため、図2-

5-9のアイコンを右クリックし、「管理者として実行(A)…」を選択し、R を使用する GUI 環境である、

R Gui を立ちあげます(図2-5-10)。R Gui が立ち上がればインストールは成功していますので、続けて

パッケージのインストールを開始します。

図 2-5-10. R Gui 起動後の画面

R の空間データ用解析パッケージである sp と rgdal をインストールします。R コンソール上(図2-5-

10の R Console ウィンドウ)で下のように install.packages() コマンドを入力します。最初のパッケージ

のインストール前に、ファイルの取得先(CRAN mirror)を聞かれるので(図2-5-11)、最寄りのダウン

ロードサイトを選択します(よくわからない方は、一番上の「0-Cloud」を選んでください)。パッケー

ジのインストール先には R の library フォルダ(下の例では、lib=”C: /Program Files/R/R-3.0.2/library” のオ

プションで指定)を指定してください。以上で R のインストールと必要なパッケージのインストール

は完了です。

> install.packages("sp", lib="C:/Program Files/R/R-3.0.2/library")

> install.packages("rgdal", lib="C:/Program Files/R/R-

3.0.2/library")

Page 28: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

24

図2-5-11. R パッケージをダウンロードするミラーサイトの選択

Page 29: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

25

3. 衛星画像解析のための前処理

この章では、地球地図の土地被覆及び植生(樹木被覆率)を作成するための下準備として、主に

MODIS データをダウンロードし GRASS にインポートする手順を解説します。また Landsat および VIIRS

についても、データの準備方法を解説します。この章で整備したデータを元に、4章では土地被覆分

類、5章では樹木被覆率分類を行います。なお、この章の作業はデータの確認作業以外は全て MSYS か

らスクリプトを実行して行います。そのため、最初に MSYS から GRASS の各機能と、地球地図ラスタ

データ作成プログラムを構成する各スクリプトを操作できる環境を構築します。

3-1.GRASS 環境のセットアップ MSYS から GRASS の各機能を利用できるように、最初に GRASS の環境設定を行います。GRASS を起

動する前に、GRASS データ格納用のディレクトリとして「C:\GIS_DATA\GRASS」を新たに作成して下さ

い。標準的なデータ格納用のディレクトリは、GRASS をインストールする過程で作成しますが(イン

ストール時の推奨に従えば、c:\grassdata)、このマニュアルでは独自のディレクトリを用意します。

スクリプトの実行コマンドの入力は MSYS のコンソールから行います。そのため、GRASS with MSYS

を「スタート」メニューのプログラムの選択から「GRASS GIS 6.4.3」フォルダ内の「GRASS GIS 6.4.3 GUI

with MSYS」を選択して GRASS および MSYS を起動し、作動環境をセットアップします。

図 3-1-1. GRASS GIS 6.4.3 GUI with MSYS の起動

Page 30: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

26

GRASS が起動すると、まず始めに MSYS のコマンドウィンドウが立ち上がり、「Welcome to GRASS GIS」

のウィンドウが表示されます(図3-1-2)。

図3-1-2のように「Welcome to GRASS GIS」のウィンドウが表示された状態で、GIS Data Directory の横

の「Browse」ボタンをクリックして、先ほど作成した「C:\GIS_DATA\GRASS」を選択します。もし使用

しているパソコンのハードディスクの容量が少ない場合は、十分な容量の外付けハードディスクを準

備し、「F:\GIS_DATA\GRASS」などの新しいディレクトリを作成した上で選択してください。

図 3-1-2. GRASS 起動画面

次に、GRASS の操作環境を設定するため、location(ロケーション)を設定します。そのために、

「Welcome to GRASS GIS」のウィンドウ(図3-1-2)で「Location wizard」ボタンをクリックします(図3-

1-2 赤矢印)。Location wizard では、対話形式でロケーションを作成します。まず、ロケーションを作

成する GRASS Database Directory(自動的に入力)と、ロケーション名「Janan_LatLon」を入力します(図

3-1-3)。

Page 31: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

27

図 3-1-3. Location wizard でのロケーション名の指定

図3-1-3では C:\GIS_DATA\GRASS ディレクトリの下に「Japan_LatLon」という location を作成していま

す。入力が完了したら「次へ」ボタンを押します。

次に表示される画面(図3-1-4)では、location の地理参照情報を設定する方法を選択します。設定

オプションには、地理参照情報の定義パラメータを直接指定する方法や、既存のデータに一致させる

やり方など様々ありますが、ここでは EPSG コードを指定する方法を選択します。そのため、上から2

番目のオプションである「Select EPSG code of spatial reference system」を選択して、「次へ」をクリック

します(図3-1-4)。

図 3-1-4. Location wizard での空間参照系指定方法の選択

Page 32: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

28

EPSG コードの選択画面が開くので、後続の処理に使う WGS84の EPSG コードである4326を指定しま

す。図3-1-5のように検索ボックス(虫眼鏡マークのテキストボックス)に EPSG コード(この場合4326)

を入力して絞り込むことも可能です。下の一覧に表示される4326の行を選択して、「次へ」をクリック

します。

図 3-1-5. Location wizard による EPSG コードの指定

以上でロケーション設定のための作業は終わりです。

最後に「Select datum transformation」ウィンドウが表示され(図3-1-6)、データム変換方法を選択し

ますが、デフォルトのまま「OK」をクリックして下さい。

図3-1-6. Location の指定作業の最後に現れるデータム変換方法の指定

Page 33: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

29

一連の作業で指定した内容を確認する「Summary」ウィンドウが現れるので(図3-1-7)、指定した内

容が正しければ「完了」ボタンをクリックして、ロケーションの設定作業を完了してください。

図 3-1-7. Location wizard による設定作業内容の確認画面

ロケーション設定後に、region(リージョン)の範囲設定を行うかどうか選択するウィンドウが表

示されます。分析対象の範囲のデフォルト値を設定するかどうか聞かれるので、「いいえ」をクリック

します(図3-1-8)。後ほどデータをインポートする際に、そのデータに準拠してリージョンを決めるこ

とができるので、ここでは特に設定する必要はありません。

図 3-1-8. リージョン設定確認画面

Page 34: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

30

以上でロケーションとリージョンの設定作業が完了しました。続いて mapset(マップセット)の作

成作業を行います。

ロケーションを作成した際、自動的に PERMANENT マップセットが作成されますが、これは特殊な

マップセットなので、実際の作業は新規にマップセットを作成して、そのマップセットで作業を行っ

た方が安全です。リージョンの指定作業が終わると自動的にマップセットを新規に作成するか聞かれ

るので(図3-1-9)、ここでは「MODIS」と入力して新しいマップセットを作成します。

図3-1-9. マップセットの新規作成

新しくマップセットが作成されると、GRASS 起動時のウィンドウのマップセット一覧に作成したマ

ップセットが追加されるので(図3-1-10)、次に GRASS のコマンドウィンドウなどを呼び出します。

図3-1-10. 新規に追加されたロケーションとマップセット

Page 35: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

31

リストからロケーション「Japan_LatLon」、マップセット「MODIS」をそれぞれ選択して「Start

GRASS」ボタンを押すと GRASS が起動します(図3-1-11)。

図 3-1-11. GRASS 起動後のデスクトップ

GRASS の画面は、左上がレイヤの管理やコマンド入力のための GRASS GIS Layer Manager、右上がデ

ータ表示の行われる GIS Map Display、下がテキストでコマンドを入力する為の MSYS 画面で構成されま

す。

以降のスクリプト実行は、MSYS 画面を用いて行います。

3-2.スクリプト実行環境のセットアップ ここまでで、GRASS の環境設定は完了しています。次は、「地球地図ラスタデータ作成ツール」で使

用するスクリプトなどをインストールし、スクリプト実行環境を整えます。最初に、スクリプト格納

用のディレクトリとして「C:\DATA\GSI_MODIS」(外付けハードディスクの場合は「F:\DATA\GSI_MODIS」

等とし、以降 C: \ドライブのディレクトリをこのフォルダに読み替えてください)を作成し、同梱され

Page 36: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

32

ている”/scripts“ディレクトリ以下に含まれているすべてのファイルをコピーして下さい。scripts ディレ

クトリごとではなく、中身のファイルだけをコピーするよう注意してください。以上で、プログラム

のインストールは全て完了です。

一連のスクリプトを実行する前に、スクリプト実行のための環境変数を設定します。具体的には、

環境設定ファイルである modis_setenv.txt を開き、OSGeo4W と R のインストールディレクトリを設定し

ます。始めに、 modis_setenv.txt をメモ帳などのテキストエディタで開き、次の変数をユーザーの環境

に応じた値へと変更します。例えば、インストールした R のバージョンが3.0.2ではなく、3.0.3である

場合は、それに合わせて入力する値を変更します。また、MODIS プロダクトに関する設定も行う必要

があります。MODIS の1 km 解像度のプロダクトを使うなら、MCD43B4をプロダクト名、MCD43B2を

QC プロダクト名に指定します。MODIS の500m 解像度のプロダクトなら、MCD43A4、MCD43A2をそれ

ぞれに指定します。

modis_setenv.txt ファイルで設定を変更する必要のあるパラメータおよび設定例

OSGEO4W_PATH: OSGeo4W のインストール先(例:"/c/OSGeo4W")

R_BIN : R.exe のフルパス(例:"/c/Progra~1/R/R-3.0.2/bin/x64/R.exe")

RSC_BIN: Rscript.exe のフルパス(例:"/c/Progra~1/R/R-3.0.2/bin/x64/Rscript.exe")

R_LIBS: R ライブラリの保存先(例:"/c/Progra~1/R/R-3.0.2/library”)

PRODUCT_NAME: MODIS プロダクト名 (例: MCD43B4 または MCD43A4)

QC_NAME: MODIS QC プロダクト名 (例: MCD43B2 または MCD43A2)

COLLECTION: MODIS コレクション番号 (例: 005)

※ パスにスペースが含まれていると正常に動作しないことがあります。その場合は、スペースを含

まない別名を指定するようにしてください。別名は dir /x コマンドで確認することができます

(例えば、”Program Files”ディレクトリの場合は” Progra~1”という別名が設定されています)。

※R_LIBS には、2-5で rgdal をインストールしたライブラリのディレクトリを環境変数として指定

してください。2-5で管理者としてライブラリをインストールしないと、ライブラリは

「Program Files」下の R のディレクトリではなく、各ユーザーのライブラリ保存用のディレクト

リ(例:C:\Users\yourname\Documents\R\win-library\3.0)に保存されます。

Page 37: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

33

図3-2-1. modis_setenv.txt を書き換えた例(黄色いハイライト部分を変更)

上記以外の変数に関しては、基本的に編集する必要はありません。編集が完了したら、ファイルの

内容の通り環境設定を行うために以下のコマンドを実行します。ファイルを編集していない場合でも

コマンドを実行して、確実に環境変数が設定されているか確認して下さい。この環境設定は、作業を

中断して GRASS を終了した場合、起動時に再度実行してください。ただし、もし実行を忘れた場合で

あっても、実行中のスクリプトと同じフォルダに modis_setenv.txt が格納されていれば自動的に読み込

まれます。(格納されていない場合はエラーになり動作しません。)

> cd /c/DATA/GSI_MODIS

> source modis_setenv.txt

設定が正しく行われたかどうかの確認は、modis_printenv.sh で環境変数の一覧を表示して行ってく

ださい。modis_setenv.txt で指定した値が表示されていれば問題ありません。

> sh modis_printenv.sh

--- parameter values ---

OSGEO4W_PATH=/c/OSGeo4W

R_BIN=/c/Progra~1/R/R-3.0.2/bin/x64/R.exe

RSC_BIN=/c/Progra~1/R/R-3.0.2/bin/x64/Rscript.exe

PRODUCT_NAME=MCD43B4

QC_NAME=MCD43B2

COLLECTION=005

PATH=/c/OSGeo4W/bin:/C/Program Files (x86)/GRASS GIS 6.4.3/lib:~略

Page 38: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

34

PYTHONHOME=/c/OSGeo4W/apps/Python27

GDAL_DATA=/c/OSGeo4W/share/gdal

MODIS_DOWNLOAD_PY=/c/OSGeo4W/apps/Python27/Scripts/modis_download.

py

3-3.MODIS データのダウンロード MODIS は、NASA 地球観測衛星の TERRA および AQUA に搭載された可視・赤外域の放射センサーで

す。空間解像度はバンドによりますが250m~1000m となり、中・高解像度センサーには劣りますが、

36バンドの観測波長帯をもつことと、毎日1から2回データが得られる高い時間分解能を持つことが特

徴です。TERRA は午前中に、AQUA は午後に赤道を通過します。そのため、土地被覆、植生、森林火災、

地表面反射率、海面温度などの多様なデータを得ることができます。このうち、Land Products と呼ば

れるプロダクト群は、LP DAAC(図3-1-1)により作成、配布、保管されています。

図 3-3-1. LP DAAC のウェブサイト( https://lpdaac.usgs.gov/ )

MODIS プロジェクトについての詳しい解説は、https://lpdaac.usgs.gov/products/modis_overview を参

照してください。

LP DAAC からは多くのプロダクトが生成、配布されていますが、1 km 解像度の土地被覆図の作成に

Page 39: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

35

あたっては、MCD43B4と MCD43B2を使用します。MCD43B4は TERRA 及び AQUA 衛星に搭載された

MODIS を使って作成した16日合成、1km 解像度、7バンドのデータプロダクトで、MCD43B2はそのデ

ータクオリティについてのプロダクトです。500 m 解像度の画像を使う場合は、MCD43A4、MCD43A2

プロダクトをそれぞれ代わりに使って下さい。

これらのデータをダウンロードするために、modis_download.sh を実行します。最初に次のコマンド

を実行して画像のダウンロード先となるフォルダを作成してください。

> mkdir /c/DATA/GSI_MODIS/MCD43B4

modis_download.sh は、雲によるデータの欠如および NULL 値を補完するため、指定した基準年の期

間を基に、その前後の年の同じ日付のデータを一括してダウンロードします。

また、このスクリプトでは、ダウンロードする範囲を画像ごとのタイル番号で指定し、一括してダ

ウンロードすることができます。MODIS データは、Horizontal(h: 水平)と Vertical(v: 垂直)方向の番

号で保存されており、日本は h28v04、h28v05、h29v05の3つのタイルでほぼカバーできます。図3-3-2

は、MODIS のタイル範囲を示す Google Earth 用のファイルを利用して、タイル番号を示していますが、

赤い線で囲まれた範囲が1つのタイルがカバーする範囲になります。

図3-3-2. Google Earth を利用して MODIS のタイル番号を調べた例

Page 40: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

36

対象とする範囲のタイル番号を独自に調べたい場合は、Oak Ridge National Laboratory Distributed

Active Archive Center (ORNL DAAC)が提供する Google Earth 用の KML ファイルを利用してください(図3-

3-3)。ORNL DAAC のウェブサイトの URL は、http://daac.ornl.gov/MODIS/ です。

図3-3-3. ORNL DAAC が提供する MODIS タイルのインデックス KMZ ファイルダウンロードサイト

実際に MODIS 画像をダウンロードする際は、以下の文法に従って、コマンドを実行してください。

下の文法の説明では、␣ がスペース、[ ] が入力パラメータ、( )内が入力パラメータの例を示して

います。

文法:

modis_download.sh]␣-t␣[タイル番号 (h28v05,h29v05)]␣-r␣[西 南 東 北 (138.5 35.2 140.5

36.7)]␣[e-mail アドレス]␣[プロダクト名 (MCD43B4.005)]␣[基準年 (2012)]␣[開始日 (03-

28)]␣[終了日 (04-04)]␣[保存先]

Page 41: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

37

注意1:タイル番号(-t オプション)と指定範囲の最大最小緯度経度(-r オプション)

オプションは同時に指定できません。

注意2:緯度経度の指定は、十進緯度経度で行ってください。

例として、2012年9月1日 ~ 10月31日の MCD43B4.005 プロダクトをタイル番号指定と、範囲指定で

取得する場合のコマンドとダウンロードされるファイルの例を以下に示しました。

例1(タイル番号オプション):

> sh modis_download.sh -t h28v04,h28v05,h29v05 [email protected]

MCD43B4.005 2012 09-01 10-31 /C/DATA/GSI_MODIS/MCD43B4

ダウンロードされるファイルの例(上記コマンドでダウンロードされるファイルの一部):

MCD43B4.A2011249.h28v04.005.2011266182944.hdf

MCD43B4.A2011249.h28v05.005.2011266184219.hdf

MCD43B4.A2011249.h29v05.005.2011266184810.hdf

例2(範囲指定オプション):

> sh modis_download.sh -r 138.5 35.2 140.5 36.7

[email protected] MCD43B4.005 2012 09-01 10-31

/C/DATA/GSI_MODIS/MCD43B4

modis_download.sh により、図3-3-2のようにファイルがダウンロードされます。ダウンロードの途

中で、pyModis 側でエラーが発生して、Python が終了する旨のメッセージが現れる場合がありますが、

データのダウンロードは継続されます。メッセージに従い Python を終了して、ダウンロード作業は継

続して下さい。

同様のコマンドでデータクオリティプロダクトである MCD43B2を、さきほどイメージプロダクトを

ダウンロードしたディレクトリである MCD43B4フォルダにダウンロードして下さい。基準年、開始日

と終了日は MCD43B4プロダクトと揃えてください。以下に例を示します。

Page 42: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

38

例 (データクオリティプロダクトを同じ MCD43B4フォルダにダウンロードするコマンド):

> sh modis_download.sh -t h28v04,h28v05,h29v05 [email protected]

MCD43B2.005 2012 09-01 10-31 /C/DATA/GSI_MODIS/MCD43B4

500 m プロダクトである MCD43A4を解析に使用することも可能です。その場合は、新しく MCD43A4

ディレクトリ(/C/DATA/GSI_MODIS/MCD43A4)を作成し、その中に、イメージプロダクトと、データ

クオリティプロダクトをダウンロードして同じフォルダに格納して下さい。

図 3-3-2. ダウンロードした MODIS の画像ファイル

3-4.投影変換・モザイク ダウンロードした MODIS データは HDF 形式であり、投影法には Sinusoidal が使われています。土地

被覆分類の作業に進む前に、ダウンロードした複数の MODIS データをバンドごとに分割し、さらに同

一年月日の隣り合う画像を結合し、投影法を MODIS Sinusoidal から経緯度座標系(WGS84)に変換しま

す。

MODIS 画像をダウンロードしたディレクトリ(/c/DATA/GSI_MODIS/MCD43B4)に投影変換・モザイ

ク用のスクリプト(modis_merge.sh)をコピーして、ダウンロードディレクトリ内でスクリプトを実行

Page 43: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

39

します。このスクリプトは、スクリプトを実行するディレクトリ)以下のディレクトリをすべて削除

するので、画像をダウンロードした MCD43B4のような作業用のディレクトリ以外では実行しないよう

に注意して下さい。また、スクリプトを実行するカレントディレクトリに、modis_setenv.txt で指定し

たプロダクトのみ(この場合、MCD43B4、MCD43B2)があることを確認してコマンドを実行して下さ

い。画像のマージを行う範囲について意図しない動作をすることがあるので、xmin, ymin, xmax, ymax

は記入することをお勧めします。

文法:

modis_merge.sh␣[(オプション)xmin␣ymin␣xmax␣ymax]

例:

> cp modis_merge.sh ./MCD43B4

> cd ./MCD43B4

> sh modis_merge.sh

modis_merge.sh により MODIS 画像の変換・結合が完了すると、日付ごとの GeoTIFF ファイルが生成

されます。

modis_merge.sh により作成された GeoTIFF ファイルの例:

MCD43B4.A2012249_band1_prj.tif

MCD43B4.A2012249_band2_prj.tif

MCD43B4.A2012249_band3_prj.tif

3-5.GRASS へのインポート ダウンロードし、変換・結合した MODIS データを GRASS にインポートします。インポート用のスク

リプトとして modis_import.sh を使用します。このスクリプトは、MODIS データをダウンロードしたデ

ィレクトリ(MCD43B4)にコピーし、そのディレクトリから実行します。入力するコマンドは次の通

りです。

Page 44: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

40

文法:

modis_import.sh␣[引数なし]

例:

> cd /c/DATA/GSI_MODIS

> cp modis_import.sh ./MCD43B4

> cd ./MCD43B4

> sh modis_import.sh

modis_import.sh を実行すると、自動的に GRASS へのインポートが行われます。GRASS でのレイヤ名

はインポートする TIFF ファイルから”_prj.tif”を除いたものになります。また、リージョンは、最初にイ

ンポートされるデータの範囲・解像度から自動的に設定されます。

GRASS にインポートされた MODIS データ名の例:

MCD43B4.A2012249_band1

MCD43B4.A2012249_band2

MCD43B4.A2012249_band3

インポートされたデータは、GRASS の「Add raster map layer」メニューを使って表示することができ

ます。単一バンドの場合は、この方法を使いますが、ここでは複数バンドを RGB 合成して表示する方

法を紹介します。ただし、インポートされたばかりの画像は、カラーマップの設定が適切でないため、

そのまま表示しても思ったような配色にならない場合があります。そのため、あらかじめ、r.colors コ

マンドを使って(図3-5-1)、対象とするバンドイメージのカラーマップを「grey255」に設定します

(図3-5-2)。その際、オプションとして、「Histogram equalization」をチェックします(図3-5-2)。RGB

合成の対象とする1、3、4バンドについて同じ処理を行って下さい。

Page 45: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

41

図3-5-1. ラスタマップの配色を変更する r.colors コマンド

図3-5-2. r.colors コマンドの「Required」タブで対象とするマップを選択し、「Colors」タブで、

grey255を「Type of color table」から選択し、「Histogram qualization」オプションをチェック

対象とするラスタのカラーマップ設定が終了した後、ツールバーの「Add various raster map layers」

メニューをクリックし、「Add RGB map layer」を選択してください。

図3-5-3. Add various raster map layers メニュー

Page 46: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

42

ダイアログが表示されますので、MCD43B4プロダクトの同一日付のデータの中から、red には band1、

green には band4、blue には band3のデータを割り当ててください。

図3-5-4. RGB コンポジットイメージ表示のためのダイアログボックス

コマンド実行後は、次のように RGB 合成された画像が表示されます。

図3-5-5. MODIS の RGB 合成画像例(R: band1, G: band4, B: band3)

繰り返しになりますが、解析に MODIS 500 m プロダクトである MCD43A4プロダクトを使用する場合

Page 47: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

43

は、MCD43B4と同様の手順で作業を行います。3-2から3-5までの操作を、繰り返してください。

環境設定ファイルと実行するコマンドは、MCD43B4の部分を MCD43A4に、MCD43B2を MCD43A2に置き

かえるだけです。

3-6.中間データの管理 GRASS に必要な MODIS の画像がインポートされ、これ以降様々なデータ処理を行います。その過程

で作成される中間データ、また、解析をやり直した際に不要になるデータに関しては、ユーザーが各

自で管理および削除する必要があります。GRASS で最も効率的なファイルの削除方法は、g.mremove コ

マンドです(図 3-6-1)。g.mremove コマンドを実行するには、GRASS レイヤーマネージャーの「 File 」

→ 「 Manage maps and volumes」→ 「Delete filtered (g.mremove) 」を選択して下さい。

g.mremove コマンドは、ワイルドカードまたは正規表現を利用して複数のラスタやベクタを削除す

ることを可能にします。例えば、「old_」というプレフィックスが付いたラスタを全て削除したい場合

は、図 3-6-1 のように、ラスタの指定欄に「old_*」を入力し、「Force removal (required for actual dele-

tion of files)」オプションをチェックした上でコマンドを実行します。

このコマンドは、実際に GRASS 内部に保持されたデータを削除してしまいますので、実行に際して

は十分に注意を払ってください。ワイルドカードや正規表現でどのようなデータが削除の対象になる

か確認するには、「Force removal (required for actual deletion of files)」オプションを非選択にしてコマン

ドを実行します。

Page 48: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

44

図3-6-1. GRASS の g.mremove コマンドを用いた、データの削除

g.mremove は複数のファイルを一気に削除する際便利ですが、1つのマップだけ、又はワイルドカー

ドなどでの複数のマップ名の選択が困難な場合、g.remove コマンドを使います。GRASS レイヤーマネ

ージャーの「 File 」→ 「 Manage maps and volumes」→ 「Delete (g.remove) 」を選択して、ドロップダ

ウンリストから、削除対象を選択し、「Run」ボタンをクリックして下さい。複数のマップを選択する

には、ドロップダウンリストから対象とするマップを順次選択すると、対象マップのリストがカンマ

区切りのテキストとしてテキストボックスに挿入されます。

解析を指定するパラメータを変更して何度も試してみる場合、既存のデータを上書きできると便利

です。GRASS の多くのコマンドには、「Allow output files to overwrite exisiting files」というオプションが

あるので、このオプションをチェックしておくと、結果ファイルの上書きが可能となります。また、

スクリプトの中で、既存のファイルの上書きできずに実行エラーが出る場合もあるため、その時は既

存のファイルを予め削除するか、解析毎に出力データの名称を変えて下さい。

3-7.マスクによる分析範囲の限定

Page 49: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

45

分析対象とする範囲を限定することで、より精度の良い、または時間的に効率良くデータの解析を

することができます(図 3-7-1)。ここでは、地球地図の行政界ポリゴンを利用したマスク処理の方法

について解説します。

図 3-7-1. マスク処理の前(左)と後(右)

ISCGM のホームページ http://www.iscgm.org/から日本をはじめ、世界各国の地球地図データをダウ

ンロードすることができます(サイトへの登録は無料)。地球地図日本の場合は ISCGM のホームペー

ジから日本の地理空間情報当局である国土地理院(http://www.gsi.go.jp/kankyochiri/globalmap_e.html)

のホームページにリンクされており、日本の行政域データは Contents の”Download Global Map Japan”を

クリックした先の、http://www.gsi.go.jp/kankyochiri/gm_japan_e.html からダウンロードすることができ

ます(図 3-7-2)

Page 50: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

46

図 3-7-1. 地球地図日本ホームページ(http://www.gsi.go.jp/kankyochiri/globalmap_e.html)

図 3-7-2. 地球地図日本ダウンロードリスト(赤丸が行政域のデータ)

Page 51: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

47

ダウンロードした ZIP 形式で圧縮された Shapefile を任意の場所(例えば c:\temp)に解凍し、GRASS

にインポートします。GRASS へのベクタデータのインポートには、File メニューから呼び出せる v.in.ogr

(図 3-7-3)を使用します。

図 3-7-3. ベクターインポートのための v.in.ogr コマンド

v.in.ogr コマンドを実行するウィンドウが現れたら、先ほど解凍した地球地図の行政域シェープファ

イルを以下のように指定して、コマンドを実行し、データを GRASS にインポートします(図 3-7-4)。

• Format: Shapefile

• File: ダウンロードしたシェープファイル

• Layer name: polbnda_jpn

• Name for GRASS map: polbnda_jpn

Page 52: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

48

図 3-7-4. ベクタデータをインポートするための v.in.ogr を実行するためのダイアログボックス

GRASS にインポートした行政域ベクタは、各行政単位でポリゴンが構成されており、日本全国を対

象にマスクを作成するには都合が悪いため、全てのポリゴンに共通する属性値(図 3-7-5:coc 列)を

利用して、ポリゴンを溶融(ディゾルブ)させ、日本全国をひとつのポリゴンにします。

図 3-7-5. GRASS にインポートした地球地図行政域ポリゴンとその属性テーブル(coc 列が全てのポ

リゴンに共通する属性であることが示されている)

GRASS のポリゴンをディゾルブされるための命令は、v.dissolve です(図 3-7-6)。ベクタメニューか

ら v.dissolve コマンドを選択し、パラメータ設定のためのダイアログを表示させます(図 3-7-7)。

Page 53: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

49

図 3-7-6. ポリゴンのディゾルブを行う v.dissolve コマンド

表示された v.dissolve のダイアログでは、以下のように設定してコマンドを実行します(図)。

Required タブ

• Name of input vector map: polbnda_jpn@MODIS

• Name for output vector map: jpn_msk

Optional タブ

• Name of column used to dissolve common boundaries: coc

図 3-7-7. v.dissolve コマンドのパラメータ設定画面

Page 54: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

50

ディゾルブされ、日本全国がひとつのポリゴンとなったので、次にこのポリゴンをマスクとして利

用するために、ポリゴンをラスタに変換します。ベクタのラスタ変化には、v.to.rast コマンドを使いま

す(図 3-7-8)。

図 3-7-8. ベクタのラスタ変換を行う v.to.rast コマンド

v.to.rast のコマンドダイアログが開いたら、以下のように設定し、ポリゴンをラスタ化します(図 3-

7-9)。

• Name of input vector map: jpn_msk@MODIS

• Name for output raster map: jpn_mask

• Source of raster values: cat

Page 55: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

51

図 3-7-9. ベクタをラスタに変換する v.to.rast のパラメータ設定

以上で、マスク設定のためのデータの準備ができたので、最終的に r.mask コマンドを使い、先ほど

ラスタ化した日本の陸地だけを解析するよう、マスク処理を施します。そのためには、ラスタメニュ

ーから、r.mask コマンドを呼び出し、ラスタ化した日本地図を指定します(図 3-7-10)。

• Raster map to use as MASK: jpn_mask@MODIS

• Category values to use for MASK: *

Page 56: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

52

図 3-7-10. ラスタ化された日本の陸地域をマスクとして指定

以上で分析領域を限定するためのマスク処理ができましたが、今回のように日本全域ではなく、地

方別や複数の県にまたがるような分析を行う際もマスクを活用することで、効率的な分析を行うこと

ができます。

3-8.雲除去 GRASS へインポートした MODIS 画像から雲に覆われて地表面の情報がない部分を他の画像の情報を

使って埋め合わせます。指定した年の画像に対して、QC プロダクト(MCD43B2)の情報を元に雲のピク

セルを除去します。なお、処理領域を陸域のみに絞るために、地球地図の行政域データなどが存在す

る場合はそれ利用して3-7の手順に従い、あらかじめマスキングしておくことをお勧めします。

補完は、前後96日のデータ及び前後年のデータから補完します。modis_remove_cloud.sh スクリプト

を利用することで補完の順序や使用するデータ(前後96日のデータのどちらかか両方)を指定するこ

とができます。

ここでは、2012年を対象として、次のようにコマンドを実行します。最初に雲除去をしたい対象年

の値を指定します。次に補完の順序について指定します。(1) 前後年のデータで補完し、それでも埋ま

Page 57: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

53

らなかったデータは前後96日のデータから補完する方法、(2) 前後96日のデータで補完し、それでも埋

まらなかったデータは前後年のデータから補完する方法のいずれかから、補完したい方法を数字で入

力 Enter キーを押してください。次に使用するデータについて指定します。(1) 前48日のデータのみ補

完に使う方法、(2) 後48日のデータのみ補完に使う方法、(3) 前後96日のデータを両方補完に使う方法の

いずかから、補完したい方法を数字で入力して Enter キーを押してください。最後に補完方法について

再度確認がありますので、補完方法を確認して誤りがなければ y を入力して Enter キーを押してくださ

い。誤りがある場合は n を入力して Enter キーを押すと一旦スクリプトから抜けだすので、再び

modis_remove_cloud.sh を実行して下さい。

下記の例では2012年のデータを対象に、前後96日両方のデータを用いて前後96日、前後年の順序で

補完しています。具体的にはまず前後の日付の画像を用いて内挿行い、それでも埋まらないピクセル

は前後の年の同じ日付の画像の平均値から補完を行います。指定年の最初の日と最終日の画像は前後

の日付の画像が無いので、前後の日付の画像による補完を行わず前後年の画像による補完のみを行っ

ています。

なお、このスクリプトは GRASS の内部にインポートされたデータに対して処理を行うため、どこで

実行しても構わないのですが、以下の例では、スクリプト群をコピーした「C:\DATA\GSI_MODIS」直下

に移動してから作業を行っています。実行結果は「interp」というプレフィックスの付いた GRASS 内部

データとして出力されます。

文法:

modis_remove_cloud.sh␣[引数なし]

例:

> cd /c/DATA/GSI_MODIS

> sh modis_remove_cloud.sh

Specify target year

2012

2012

Choose interpolation order.

1): previous/next year's data => previous/next 96 day's data

2): previous/next 96 day's data => previous/next year's data

1) 1

2) 2

#? 1

1

Page 58: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

54

Select image data of the same year to use for interpolation.

1): use previous 48 days only.

2): use next 48 days only.

3): use both 48 days.

1) 1

2) 2

3) 3

#? 3

3

---------- Your answer ------------

- Target year: 2012

- Interpolation order:

previous/next year's data => previous/next 48 day's data

- Image data to use:

use both 48 days.

Now it's ready to process. Execute (y/n) ?

y

modis_remove_cloud.sh で作成されるデータ名の例:

• interp_MCD43B4.A2012249_band1

• interp_MCD43B4.A2012249_band2

• interp_MCD43B4.A2012249_band3

続いて、残っている NULL 値を補完するために、modis_fillnull.sh を実行します。こちらも、先の

modis_remove_cloud.sh と同様に、対象年の値を引数で指定します。このスクリプトは

modis_remove_cloud.sh の出力結果を上書きし、上書きされる前のラスタデータには「old_ 」というプ

レフィックスを付加した形で、共に GRASS の内部データとして保持されます。

文法:

modis_fillnull.sh␣[対象年]

例:

> sh modis_fillnull.sh 2012

Page 59: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

55

modis_fillnull.sh を実行後、改名されたデータ名の例:

• old_interp_MCD43B4.A2012249_band1

• old_interp_MCD43B4.A2012249_band2

• old_interp_MCD43B4.A2012249_band3

以上を実行した結果は、図3-8-1のようになります。以上で MODIS 衛星の前処理は終了です。他に

Landsat データや VIIRS データをインポートして土地被覆分類・樹木被覆率推定に用いない場合は4章

に進んでください。

図3-8-1. 雲除去前(左)後(右)の MODIS データ

3-9.LANDSAT 画像の処理 MODIS 画像に加え、LANDSAT8で取得された画像も土地被覆分類に利用できるよう、スクリプトを用

意しました。LANDSAT に関する一連のスクリプトでは、画像のインポート、地形補正、マージ、雲除

去等の作業が行えます。地形補正を経て画像を GRASS にインポートする際には、DN 値を反射率に変換

した後、一連の作業を行います。

MODIS での画像解析前の処理と同様の手順で LANDSAT の画像も処理を行いますが、LANDSAT 画像で

は、pyMODIS のような、複数のタイルと時期にわたり、自動的に画像をダウンロードする仕組みがあ

りません。そのため、ユーザーは、各自で目的とするデータを検索し、1つずつ画像をダウンロードす

Page 60: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

56

る必要があります。画像検索のためのウェブサイトとしては、United States Geological Survey (USGS) の

画像ダウンロードサイト、Earth Explorer(http://earthexplorer.usgs.gov/)が便利です(図3-9-1)。目的と

する場所と検索する期間、そして衛星画像のタイプを LANDSAT8と指定し(図3-9-2)、画像をダウンロ

ードしてください。また、雲除去などの処理を行う場合は、目的とする画像の前後年の同じ日付の画

像や対象とする画像の撮影日の前後48日の画像もダウンロードしてください。画像は、結合(マージ)

することもできるので、より広い範囲の画像が必要な場合は、複数のタイルにわたり画像をダウンロ

ードしてください。

Earth Explorer の検索機能では、LANDSAT8で使われる WRS2のパスとロウ番号の指定に加え、地名に

よる検索やシェープファイル、KML による検索なども行えるので、目的の画像が検索しやすくなって

います。まず、パス・ロウ番号、又は地名、検索対象期間などで画像検索条件を絞り込み(図3-9-1)、

図3-9-1. LANDSAT8の画像を検索、ダウンロードできる USGS の Earth Exploror

次に「Data Set」タブで、LANDSAT8の画像である「L8 OLI/TIRS」を指定します(図3-9-2)。すると、

条件に合う LANDSAT8の画像のリストが、「Result」タブに表示されるので、利用できそうな画像のダウ

ンロードボタンをクリックして(図3-9-3)、ダウンロードをするプロダクトの選択画面に進みます。

Page 61: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

57

図3-9-2. データセットの種類を選択する場面では、L8(LANDSAT8)の画像を選択

図3-9-3. 対象とする LANDSAT 画像のダウンロードリンク

ダウンロードするプロダクトを選択する画面では、イメージデータである「Level 1 GeoTIFF Data

Product」をチェックした後(図3-9-4)、「Select Download Option」ボタンをクリックして、ダウンロー

ドプロセスを進めます。ここで、実際にデータをダウンロードする際には、ダウンロード用の無料の

アカウントを作成し、ログインする必要があるので、指示に従ってアカウントを作成して下さい。

図3-9-4. 対象とする LANDSAT 画像のプロダクト選択画面

Page 62: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

58

画像データがダウンロードできる状態であれば、ダウンロードを開始するためのダイアログボック

ス(図3-9-5)が表示されるので、「Download」ボタンをクリックして、データのダウンロードを開始し

ます。

図3-9-5. データダウンロード直前のダイアログボックス

必要とする画像を全てダウンロードし終われば、この後の処理はスクリプトを利用して自動化する

ことができます。効率的に作業を行うため、ダウンロードしたファイル(.tar.gz 形式)は、作業ディレ

クトリである\DATA\GSI_MODIS の下に「landsat」というディレクトリを作成し、保存してください。

次に、一連の LANDSAT 画像処理のスクリプトを実行するための環境設定ファイル、

landsat_setenv.txt を、作業ディレクトリにコピーし、ユーザーのパソコン環境に合わせて書き換えます。

landsat_setenv.txt は、MODIS の環境設定ファイルとほぼ同じで(3-2)、PRODUCT_NAME の設定だけ

が modis_setenv.txt と異なるように設定して下さい。以下の設定を参考に、landsat_setenv.txt を書き換

えた上で、MSYS のカレントディレクトリを作業ディレクトリに移動し、環境設定を source コマンドで

読み込んで下さい。作業を途中で中断し GRASS を終了した場合は、作業再開時に環境設定を再び読み

こむ必要が有るため、source コマンドを再度実行して下さい。

図3-9-6. landsat_setenv.txt の設定例(使用する OSGeo4W と R へのパスの設定を変更して下さい)

環境設定ファイルの作業ディレクトリへのコピーと、環境設定読み込みのためのコマンド

Page 63: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

59

cd /c/DATA/GSI_MODIS

cp landsat_setenv.txt ./landsat

cd ./landsat

source landsat_setenv.txt

全ての画像が「landsat」ディレクトリに保存された状態で、Landsat 画像を GRASS にインポートす

るための landsat_import.sh スクリプトを実行する準備をします。最初に、\DATA\GSI_MODIS にある

landsat_import.sh を landsat ディレクトリにコピーして下さい。その後、landsat ディレクトリに移動し

て、MSYS から landsat_import.sh を実行してください。以下に、その手順を示します。

文法:

landsat_import.sh

例:

cd /c/DATA/GSI_MODIS

cp landsat_import.sh ./landsat

cd ./landsat

sh landsat_import.sh

Landsat 画像が GRASS にインポートされたら、RGB コンポジット画像を作成し、画像を確認します。

そのため、GRASS のレイヤマネジャのツールバーから “Add RGB map layer” アイコンをクリックし、バ

ンド4を赤、バンド3を緑、バンド2を青に指定してコンポジット画像を表示させます(図3-9-7)。

Page 64: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

60

図 3-9-7. LANDSAT 画像の RGB コンポジット画像の例

LANDSAT8の画像を直接 GRASS にインポートする以外に、インポート前に放射輝度の地形補正を行っ

たうえでインポートする方法もあります。そのためには、landsat_import_and_correct.sh を使います。

地形補正を行うためには、画像と同じ地理的範囲の標高モデル(DEM)が必要です。DEM の取得は、

Consortium for Spatial Information (http://www.cgiar-csi.org/data/srtm-90m-digital-elevation-database-v4-1)

や、メリーランド大学の Global Land Cover Facility(http://www.landcover.org/data/srtm/)を利用し、

Shuttle Rader Topography Mission (SRTM)データをダウンロードすることができます。ダウンロードし

た DEM は、あらかじめリージョンで設定した空間参照系に合わせてから GRASS のラスタとしてインポ

ートして下さい。使用する DEM の解像度は、LANDSAT8の解像度である30m に近い物を使うことをおす

すめしますが、データ処理上は、どのような解像度のデータでも利用できます。DEM の単位はメート

ル法である必要がありますが、値は整数値でも実数値でも大丈夫です。GRASS が直接インポートでき

るファイルフォーマットは、対応する GDAL に依存するため、利用する DEM のフォーマットが GDAL

に対応するか、GDAL のウェブサイト(http://gdal.org/formats_list.html)で確認して下さい。

landsat_import_and_correct.sh を実行するための以上の準備が整ったら、landsat_import.sh の手順と

同様に、スクリプトを landsat フォルダにコピーしてから、landsat_import_and_correct.sh を画像一つ一

つに対し実行します。

文法:

landsat_import_and_correct.sh [入力ファイル(tar.gz)] [DEM レイヤ]

例:

Page 65: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

61

> sh landsat_import_and_correct.sh LC81080352013331LGN00.tar.gz

dem_4326

landsat_import_and_correct.sh で作成されるデータ名の例(landsat_import.sh と同様):

• LC81080352013331LGN00_B1 • LC81080352013331LGN00_B2 • LC81080352013331LGN00_B3

LANDSAT の画像を、landsat_import.sh または、landsat_import_and_correct.sh を使い GRASS にインポ

ートした後は、解析対象が複数のタイルにわたる場合は画像の結合(マージ)と雲除去をスクリプト

により行うことができます。

landsat_apply_qc.sh は、ダウンロードした画像の1バンドとして保存されている QA/QC のバンドを

利用し、画像の範囲外に発生するデータのない部分を除外した上で複数の画像をマージします。

landsat_apply_qc.sh は引数なしで実行します。

文法:

landsat_apply_qc.sh

例:

> sh landsat_apply_qc.sh

LANDSAT の雲除去には、landsat_interpolate.sh を使います。landsat_interpolate.sh のアルゴリズムは、

MODIS の雲除去と同様です。対象画像の前後年の同じ撮影日の画像、または撮影日の前後48日の画像

を利用して、雲の存在により地表面の情報のないピクセルを埋め合わせます。詳しいアルゴリズムに

ついては、3-6の雲除去を参照してください。

文法:

landsat_interpolate.sh

例:

> sh landsat_interpolate.sh

Page 66: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

62

3-10.VIIRS 画像の処理 LANDSAT8のほかに、VIIRS の画像データも土地被覆分類に利用できます。VIIRS 画像では、LANDSAT

画像と同様で、複数のタイルと時期に渡って自動的に画像をダウンロードする仕組みがありません。

そのため、ユーザーは各自で目的とするデータを検索して、1つずつ画像をダウンロードする必要があ

ります。VIIRS には多数のプロダクトがありますが、Image Band EDR のバンド1から3を選択して下さい。

画像検索のためのウェブサイトとしては、National Oceanic and Atmospheric Administration’s (NOAA)のウ

ェブサイト(http://www.nsof.class.noaa.gov/saa/products/search?datatype_family=VIIRS) を利用します(図3-

10-1)。

図3-10-1. VIIRS 画像のダウンロードサイト

実際に画像データをダウンロードするには、図3-10-1のサイトで、画像検索条件をまず設定します。

検索条件には、地理的及び時間的範囲を指定します(図3-10-2)。

Page 67: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

63

図3-10-2. VIIRS データダウンロードのため、検索範囲を地理的及び時間範囲で指定

その上で、画面をスクロールし、ダウンロード対象のプロダクトリストの中から、「Environmental

Data Record」のリストを探し、更にその中から、「VIIRS Imagery Band 01 ~ 03 EDR」を探して選択し(図

3-10-3)、画面一番下の「Search」ボタンをクリックし、検索を開始します(図3-10-4)。この際、検索

期間の設定が長かったり、指定範囲が大きいと、画像検索に時間がかかるか、エラーで何も表示され

ない場合がありますので、その場合は、検索条件を狭めて下さい。

図3-10-3. 検索画面中段にある、VIIRS プロダクト選択画面で、対象とする VIIRS EDR プロダクトの1

から3バンドを指定(黄色くハイライト)

Page 68: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

64

図3-10-4. 検索条件、ダウンロード対象プロダクトを指定した後、下段にある「Search」ボタンを

クリックして、画像の検索を実行

検索が終わると、画像のリストが表示されるので(図3-10-5)、ダウンロードしたい画像のチェック

ボックスにチェックを入れ(①)、次に「Update」ボタンをクリックして、ダウンロードリストをアッ

プデートし(②)、最後に、「Goto Cart」ボタンをクリックして(③)、ショッピングカートに移動し

ます。

図3-10-5. 検索されたダウンロード可能な VIIRS 画像データリスト(①:ダウンロード対象の画像

をチェックし、②:ダウンロードリストをアップデート、③:ダウンロードのため次の画面に移動)

ショッピングカートに移動すると、先ほど選択した画像のリストが表示されます(図3-10-6)。ここ

で、あらかじめダウンロードのためのアカウントを作成している場合には、「Place Order」ボタンが表

示されますが、アカウントを作成していないと、「Register」ボタンがかわりに表示され、アカウント作

成のページヘ移動する必要があります。アカウント作成のページでは、名前、パスワード、Email アド

レスなどを登録します。

Page 69: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

65

図3-10-6. ショッピングカートに入った、VIIRS 画像の例(ショッピングカートといっても無料で画

像はダウンロードできる)

ショッピングカートのページで「Place Order」ボタンをクリックすると、最終的に画像データの注

文を確認するためのページに移動します(図3-10-7)。ここでは、確認番号が発行され、ダウンロード

の準備ができたら、あらかじめ登録したメールアドレスに通知が来ることが書かれています。実際に

ダウンロードの通知が来るまでにはしばらく時間がかかります。

図3-10-7. 画像注文の確認画面

画像データダウンロードの手順は以上ですが、ダウンロードした画像は、スクリプトを使い結合

(マージ)することもできるので、より広い範囲の画像が必要な場合は、複数のタイルにわたり画像

をあらかじめダウンロードしておいてください。

Page 70: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

66

ダウンロードした画像データ(拡張子 h5)は、LANDSAT と同様に、「viirs」というディレクトリを作

成して一ヶ所に保存してください。その後、VIIRS 画像を GRASS にインポートするためのスクリプト

viirs_import.sh を viirs ディレクトリにコピーし、viirs ディレクトリに移動してからスクリプトを実行し

ます。ダウンロードした、hdf5ファイル内部には、複数のデータが収められていますが、

viirs_import.sh では、Reflectance(反射率)データのみをインポートします。また、インポートの際は、

DN 値の補正は行いません。

文法:

viirs_import.sh

例:

cd /c/DATA/GSI_MODIS

cp viirs_import.sh ./viirs

cd ./viirs

sh viirs_import.sh

VIIRS 画像を GRASS にインポートした後、複数のタイルを結合するためのスクリプト viirs_merge.sh

を使い、隣接する画像を結合することができます。このスクリプトは、データがオーバラップした際、

画像データのない部分、及び雲で覆われた部分を出来る限り避けてデータを結合するため、画像間を

比較しながら結合作業を行います。そのために、複数のバンドを利用して NDVI を計算するため、イン

ポートしたそれぞれの画像に、バンド1及びバンド2が含まれていることを確認して下さい。

文法:

viirs_merge.sh

例:

> sh viirs_merge.sh

以上の手順で GRASS にインポートした衛星画像は、4章以降で解説する MODIS 画像と同様の手順で土

地被覆分類に活用することができます。

Page 71: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

67

4. 土地被覆分類

この章では、3章で GRASS にインポートしたデータを用いて最尤法およびディシジョンツリーを用

いた教師付き分類を行い、土地被覆データを作成します。主に MODIS 画像を用いて手順を説明してい

ますが、Landsat や VIIRS でもほぼ同様の手順でデータの解析を行います。

4-1.トレーニングデータの取得 以下では例として Google Earth を利用して、分類の基準となるトレーニングデータをポリゴンとし

て取得します。各ポリゴンは、できる限り単一の土地被覆タイプを囲むように作成します。まず、

Google Earth を起動し、データ取得を行う領域を拡大表示します。

図 4-1-1. Google Earth 起動画面

メニューバーから「追加」→「フォルダ」を選択し、「training_area」という名称でフォルダを作成

します。トレーニングエリアのポリゴンは、このフォルダ内に作成します。

Page 72: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

68

図 4-1-2. フォルダ追加メニュー

図 4-1-3. フォルダ属性指定画面(名称:training_area)

次に、実際にトレーニングデータを構成するポリゴンを作成します。メニューバーから「追加」→

「ポリゴン」を選択します(図4-1-1)。

Page 73: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

69

図 4-1-4. ポリゴン追加メニュー

図4-1-5のように、ポリゴンの属性を入力するダイアログが最初に表示されるので、「名前」の欄に

整数(英数半角)で土地被覆分類コードを記述します。コードの値には、表4-1-1のように地球地図仕

様第1.3版以降を使用します。「説明」など、他の属性の入力の必要はありません。

図 4-1-5. ポリゴン属性指定画面

表 4-1-1. 土地被覆分類コード -地球地図仕様第 1.3 版以降-(http://www.iscgm.org/cgi-

bin/fswiki/wiki.cgi?page=Documentation より引用)

Page 74: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

70

Current land Cover (After Specification version 1.3)

1. Broadleaf Evergreen Forest 11. Cropland

2. Broadleaf Deciduous Forest 12. Paddy field

3. Needleleaf Evergreen Forest 13. Cropland/Natural Vegetation Mosaic

4. Needleleaf Deciduous Forest 14. Mangrove

5. Mixed Forest 15. Wetland

6. Tree Open 16. Bare area, consolidated (gravel, rock)

7. Shrub 17. Bare area, unconsolidated (sand)

8. Herbaceous, single layer 18. Urban

9. Herbaceous with Sparse and Tree/Shrub 19. Snow/Ice

10. Sparse Vegetation 20. Water Bodies

必要な属性のコード(英数半角)を入力したら、カーソルを Google Earth の地図上に移し、左クリ

ックでポリゴンを描画します。対象エリアは、十分大きく取得しなければ後ほど行う GRASS でのラス

タ化の作業で、対象エリアが取り込めない問題が起きることがあるので、大きい範囲で取得してくだ

さい。対象の土地被覆タイプを覆うポリゴンが作成できたら、「OK」をクリックして完了です(図4-1-

6)。1つの土地被覆タイプに対し、複数のポリゴンを作成することをお勧めします。

Page 75: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

71

図 4-1-6. Google Earth によるポリゴンの描画

ポリゴンが作成できたら、ポリゴンを KML 形式で保存します。作成した training_area フォルダの上

で右クリックして「名前をつけて場所を保存」メニューを選択するとファイル保存のダイアログが開

きます(図4-1-8左)。ファイル名には「training_area.kml」と入力して、保存先として、

C:\DATA\GSI_MODIS を指定した上で「保存」をクリックします(図4-1-8右)。

図 4-1-7 KML の保存手順(training_area.kml を C:\DATA\GSI_MODIS に保存)

これで KML 形式のトレーニングデータは作成することができました。次に、作成した KML を GRASS

にインポートする方法を説明します。

Page 76: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

72

4-2.トレーニングデータのインポート 4-1で C:\DATA\GSI_MODIS に保存した、training_area.kml を modis_import_kml.sh スクリプトを利用し

て、GRASS にトレーニングデータとして取り込みます。取り込まれたデータは、GRASS のベクタとして

保存されます。そのために、以下のコマンドを MSYS で実行します。

文法:

modis_import_kml.sh␣ [KML ファイル名] ␣ [GRASS ベクタ名]

実行例:

> sh modis_import_kml.sh training_area.kml training_area

GRASS インポート後のベクタレイヤ名:

training_area

取り込んだポリゴンは、GRASS ではベクタとして保存されていますが、教師付き分類を行う場合、

トレーニングエリアはラスタデータである必要があります。そのため、ベクタデータとしてインポー

トした training_area をラスタデータに変換します。図4-2-1のようにレイヤマネージャから、「File」→

「Map type conversion」→「vector to raster [v.to.rast]」を選択します。

Page 77: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

73

図 4-2-1. v.to.rast 選択メニュー

v.to.rast ダイアログが開いたら、入力ファイル名にはドロップダウンリストから「training_area」、出

力ファイル名も「training_area」(ファイルタイプが異なるので、同名でも入力ファイルを上書きする

ことはありません)を指定します。また、Class カラムの値をラスタ値として引き継ぐため、ラスタ値

のソースには「attr」を、そして「属性タブ」(図4-2-3右)では、「attr」で使用するカラム名として

「Class」をドロップダウンリストから選択します。

図 4-2-2. v.to.rast ダイアログ(左:Required と右:属性タブ)

Page 78: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

74

GRASS の v.to.rast コマンドの入出力パラメータ設定:

Required タブ:

入力するベクトルマップ名: training_area@MODIS

出力するラスタマップ名: training_area

ラスタ値のソース: attr

属性タブ:

属性パラメータの列名: Class

4-3.ピクセル毎の説明変数の計算 指定した年の全てのシーンについて、NDVI(Normalized Difference Vegetation Index)、NDSI

(Normalized Difference Soil Index)、SI(Shadow Index)の各指標を計算し、結果のラスタデータを出力

します。それぞれの指標の計算式は以下の通りです。

ここで、例として2012年を対象として各指標の算出を行います。引数には対象年の値を指定して、

次のようにコマンドを実行します。

文法:

modis_calc_index.sh␣ [対象年]

実行例:

> sh modis_calc_index.sh 2012

Page 79: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

75

それぞれの指標に対して、次のような名称でラスタデータが生成されます。

***_ndvi : NDVI 画像、 ***_ndsi : NDSI 画像、***_si : SI 画像

modis_calc_index.sh 実行後に作成される GRASS ラスタ名の例:

• interp_MCD43B4.A2012249_ndvi

• interp_MCD43B4.A2012249_ndsi

• interp_MCD43B4.A2012249_si

modis_calc_index.sh で計算される各種インデックス値(NDVI, NDSI は-1以上1以下、SI は0以上1以下)

と、MODIS 各バンドがとり得る値の範囲(0以上10000以下)に大きな違いがあるため、このまま土地

被覆分類の最尤法の計算を行うと、各種インデックス値の変動が土地被覆分類に反映されにくくなる

問題があります。このため、各種インデックス値の範囲を拡大し、バンド値の範囲に合わせます。

文法:

modis_expand_index.sh␣[引数なし]

実行例:

> sh modis_expand_index.sh

実行の結果、プレフィックスとして expand_が付属した新しいラスタが作成されます。土地被覆分

類で最尤法を使う場合は、値の範囲を拡大したラスタを利用してください。ディシジョンツリー法を

使う場合は、オリジナルの値でも範囲を拡大した値でも使えますが、4-5-3の解析ではオリジナルの値

を使います。

modis_expand_index.sh 実行後に作成される GRASS ラスタ名の例:

• expand_interp_MCD43B4.A2012249_ndsi

• expand_interp_MCD43B4.A2012249_ndvi

• expand_interp_MCD43B4.A2012249_si

Page 80: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

76

4-4.トレーニング領域の妥当性の検証 ラスタ化したトレーニングエリアにおける MODIS の DN 値および4-3で計算した指標値のヒスト

グラムを表示して、トレーニングデータが最尤法による分類に適しているか検証します。スクリプト

には modis_disphist.sh を使用します。

文法:

modis_disphist.sh␣[トレーニングエリアのラスタデータ]␣[対象データの日付]␣[土地被

覆クラス]

実行例:

> sh modis_disphist.sh training_area 2012289 3

ヒストグラムの表示には R を使用しています。スクリプトを実行すると、図4-4-1のようなダイアロ

グが表示されます。

図 4-4-1. 常緑針葉樹(左)と市街地(右)のヒストグラム

次のステップで行う教師付き分類のためには、トレーニングデータによって代表される各土地被覆

クラスが、独自の頻度分布を示していることが理想です。また、教師付き分類の手法として最尤法を

Page 81: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

77

採用する場合は、ヒストグラムが正規分布に近いことが望ましいと言われています。ヒストグラムを

観察して、そのような状況から程遠い場合は、再度トレーニングデータの選定からやり直すことを検

討してください。

4-5.教師付き分類による土地被覆分類 これまでに準備したデータを基に、最尤法またはディシジョンツリー法を用いて教師付き分類を行

います。このマニュアルでは、最尤法は GRASS の i.gensig と i.maxlik を用いて、ディシジョンツリーは

C5.0を用いて、モデルの作成と土地被覆分類を行います。

最初に、これまでの作業で作成した画像から、分類対象となる画像をグループ化します。このグル

ープ化までは、最尤法とディシジョンツリーに共通の作業です。その後は、それぞれの手法によって

作業が異なります。まず、2つの手法に共通する画像のグループ化について解説した後、それぞれの手

法別に作業の手順を説明します。

4-5-1.画像データのグループ化 複数の画像データから、実際に分類作業に利用する画像を選び出し、グループ化します。そのため

に、GRASS の i.group コマンドを利用します。

i.group は GRASS の GUI ダイアログから実行することもできますが、ここでは入力画像が複雑である

ためコマンドラインを利用した手法を紹介します。

次のように対象データのリストを GRASS の g.mlist コマンドを利用して一時変数「LIST」に格納しま

す。下の例では、GRASS の g.mlist コマンド自体が、バックティック「`」で囲むことでシェルスクリプ

ト上の「LIST」変数に戻り値であるファイルリストが格納されます。g.mlist は、GRASS のデータベース

内のデータ検索コマンドで、拡張正規表現(-e)を「pattern=」オプションで指定することで、条件に

該当する複数のデータを検索することができます。「separator=,」とオプション指定することで、カン

マ区切りでファイルリストが戻ってきます。

実行例1: 雲除去と NULL 値処理が終了した2012年の第249日目の全バンドおよび

modis_expand.sh で値の範囲を拡張したインデックスラスタのリスト(最尤法を使う場合)

> LIST=` g.mlist -e pattern=.*interp.*A2012249.*

exclude="old|^i.*i$" separator=,`

Page 82: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

78

実行例2: 雲除去と NULL 値処理が終了した2012年の第249日目の全バンドおよび値の範囲を拡張

していないインデックスラスタのリスト(ディシジョンツリー法を使う場合)

> LIST=` g.mlist -e pattern=.*interp.*A2012249.*

exclude="old|expand*” separator=,`

※ g.mlist で出力するリストは、上記の例以外にも様々な条件で絞り込むことが可能です。

どの画像やインデックスを使用するかについては6章の参考文献などを参照して検討し

てください。条件の設定方法については GRASS オンライン・マニュアルを参考にしてく

ださい(http://grass.osgeo.org/grass64/manuals/g.mlist.html)。

上記では簡単のためにダウンロードしたデータのうち特定の日付(249日目)のデータのみを作業対

象としていますが、本格的な土地被覆分類を行う場合はダウンロードしたすべての日付のデータを対

象とするよう、引数 patterrn の指定を pattern=.*interp.*A2012*.*と置き換えてください。上の作業で

LIST 変数に対象データの一覧が格納されますが、ここに不要なデータ(例えば、old_*のような一時フ

ァイルなど)まで含まれていると、後続の土地被覆分類処理で精度が劣化することも考えられます。

実際にデータをグループ化する前に、次のようにコマンドを入力して、LIST の中身を確認します。

実行例:

> echo $LIST

データ一覧が正しく取得できていることが確認できたら、作成したリストを GRASS の i.group コマ

ンドの入力値として指定して、画像グループを作成します。下の例では、i.group コマンドが、g.mlist

コマンドで作成した画像のリストを受け、「target」と「sub」という画像グループとサブグループを作

成します。GRASS では、マルチバンドの画像をインポートすると自動的に各バンドで構成されるグル

ープが作成されるため(例えば10バンドの画像であれば10バンドの画像で構成されるグループ)、それ

らの中から実際に画像分類に使用するバンドや派生データを絞り込むため、サブグループを指定する

という仕組みを用意してあります(例えば10バンドの画像であっても実際の分析には3バンドしか使わ

ない場合はサブグループで指定します)。サブグループ化された画像群は、次の土地被覆分類の対象と

なります。一旦作成したグループおよびサブブループは、GRASS の g.remove コマンドを使ってグルー

プを削除することで削除できます。

Page 83: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

79

実行例:

> i.group group=target subgroup=sub input="$LIST"

注:グループに登録した画像の一覧は、-l または -g オプションを使って表示することが可

能です。詳しくは公式マニュアル(http://grass.osgeo.org/grass64/manuals/i.group.html )をご

参照ください。

4-5-2.最尤法による土地被覆分類 ここから最尤法とディシジョンツリー法で作業が異なります。GRASS の i.group コマンドで、分類に

使用する画像をグループ化した後、Google Earth で作成し、GRASS に取り込んだトレーニングデータと

グループ化した画像群から、GRASS の i.gensig を使い、各土地被覆タイプのシグネチャファイルを作成

します。シグネチャファイルとは、トレーニングデータで指定した土地被覆タイプと対象とする衛星

画像のラスタ値の関係を示すデータファイルです。その後、作成したシグネチャファイルとグループ

化した画像から、最終的に GRASS の i.maxlik を使って最尤法による画像分類を行います。

まず、i.gensig コマンドを使ったシグネチャファイルの作成方法について解説します。

分類に必要なトレーニングエリアの統計値であるシグネチャファイルを作成するには、図4-5-1のよ

うに GRASS のレイヤマネージャから、「Imagery」→「Classify image」→「Input for supervised MLC」を選

択します。

図 4-5-1. i.gensig 選択メニュー

Page 84: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

80

図4-5-2のように、 i.gensig ダイアログが表示されるので、各項目に以下のように値を指定します。

Ground truth training map, Name of input imagery group, Name of input imagery subgroup の各項目はドロッ

プダウンリストから選択し、Name for output file containing result signature は出力ファイル名を入力して

ください。

Ground truth training map: ラスタ化されたトレーニングエリア(training_area)

Name of input imagery group: 画像グループ名(target)

Name of input imagery subgroup: サブグループ名(sub)

Name for output file containing result signature: 出力ファイル名(sig)

図 4-5-2. i.gensig ダイアログ

i.gensig ダイアログにすべての値を入力して、「Run」をクリックするとシグネチャファイルが作成さ

れます。一旦作成されたシグネチャファイルは、対象とするグループと関連付けられて保存されてい

るため、グループを削除すると同時にシグネチャファイルも削除されます。なお、トレーニングエリ

アのピクセル数が十分でない場合コンソール中にエラーメッセージ(“Signature n not positive definite”)が

出現しシグネチャファイルの作成が正常に行われないことがあります。その場合には、シグネチャ n

が対応する土地被覆クラスのトレーニングエリアの領域を追加したうえで、再度 i.gensig を実行してみ

Page 85: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

81

てください。

以上で最尤法による画像分類を行う準備ができたので、図4-5-3のように、GRASS レイヤマネージャ

から「Imagery」→「Classify image」→「Maximum likelihood Classification (MLC)」を選択します。

図 4-5-3. i.maxlik 選択メニュー

図4-5-4のように i.maxlik ダイアログが表示されるので、以下のように値を指定して実行します。

Name of input imagery group, Name of input imagery subgroup の各項目はドロップダウンリストより選択

し、Name of the containing signatures は先ほど作成したシグネチャファイル(sig)を入力、Name for

raster map holding classification results には出力ファイル名を指定してください。

Name of input imagery group: 画像グループ名(target)

Name of input imagery subgroup: サブグループ名(sub)

Name of the containing signature: シグネチャファイル(sig)

Name for raster map holding classification result: 出力ファイル名(LC_Japan)

Page 86: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

82

図 4-5-4. i.maxlik ダイアログ

注:”Signature n is not valid (ill-conditioned)”という警告が出る場合には、シグネチャ n が対応

する土地被覆クラスのトレーニングデータの取得からやり直してみることをお勧めします。

(警告が出たままの状態では、トレーニングデータの一部のクラスは分類結果に反映され

ません)

最尤法による画像分類の実行結果例を以下に示します。

Page 87: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

83

図 4-5-5. 最尤法による分類結果例

4-5-3.ディシジョンツリーによる土地被覆分類 最尤法による土地被覆分類に加え、ディシジョンツリー法による分類法も利用することができます。

ディシジョンツリー法で土地被覆分類する場合も最尤法の場合と同様に、4-1で作成したトレーニ

ングデータを利用し、ディシジョンツリーを作成し、画像分類を行います。また、ディシジョンツリ

ー法でも4-5-1の手順に従い、GRASS の i.group コマンドを使い、目的とする画像を一旦グループ化して

からディシジョンツリーのルールを作成する modis_classify_dtree.sh コマンドを実行します。このコマ

ンドを実行すると、結果として次に実行する C5.0.exe の入力ファイルとなる.names および.data ファイ

ルが作成されます。

文法:

modis_classify_dtree␣[トレーニングベクタ] ␣[画像グループ] ␣ [出力ファイル名(拡張子な

し)]

例:

> sh modis_classify_dtree.sh training_area target LC_JP_DT

modis_classify_dtree.sh により作成された.names と.data を入力ファイルとして、ディシジョンツリー

解析を行う、C5.0.exe プログラムを実行します。引数には、.names と.data に共通する、拡張子を除い

たファイル名を「-f」の後にオプションとして指定します。

文法:

C5.0.exe␣–f␣[入力ファイル名(拡張子なし)]␣–e(コストファイルの無視)␣–g(グローバ

ル剪定の不使用)␣–c(剪定への CF の使用)␣[CF の値(%)]

-f オプションのみ必須です。

例:

> c5.0.exe –f LC_JP_DT

Page 88: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

84

C5.0.exe は、ディシジョンツリーのルールを示す.tree ファイルを出力します。次に、画像の分類を

行う modis_import_See5.sh コマンドは、この.tree ファイルを入力ファイルとして受け取り、実際に土

地被覆分類を行います。

文法:

modis_import_See5.sh␣[入力ツリーファイル]␣[出力ラスタ名]

例:

> sh modis_import_See5.sh LC_JP_DT.tree LC_JP_DT

GRASS 出力レイヤ名:

LC_JP_DT

図4-5-3-1. ディシジョンツリー法による土地被覆分類結果の例

ディシジョンツリー法による画像分類作業は、以上で終了ですが、分類精度が低い場合、基本的に

は4-1に戻って分類精度が低い領域からトレーニングデータを取得してください。

ただし、-c オプションをはじめとする様々な See5のオプションを用いることや.costs ファイルなど

の設定ファイルを利用することにより、精度を上げることができる場合があります。-g オプションは、

Page 89: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

85

剪定基準を少し緩くすることで分類ルールをより複雑なまま保存します。-c オプションは、誤差率を

計算する方法を変更し、結果として剪定基準を変更します。-c オプションで指定する値を大きくする

と、ディシジョンツリーの剪定がより緩やかになります。これらのオプションとは別に、.costs ファイ

ルは、特定のクラス間の分類ミスに対し、特に重み(コスト)付けをすることで分類誤差を減らすた

めの設定ファイルで、例えば、市街地と森林に見られる分類誤差を特に減らしたい場合などに利用で

きます。このほか、c5.0アルゴリズムには様々なオプションを指定することで、分類ルールを調整する

ことができます。詳しい c5.0のオプションや.costs ファイルの設定方法などは、

http://www.rulequest.com/see5-win.html を参照してください。

4-6.トレーニング領域と分類結果の比較 4-5で最尤法を選択した場合、分類結果のデータが持つラスタ値と Google Earth で判読して割り

付けた土地被覆分類コード(表4-1-1)はほとんどの場合異なります。そのため、分類結果のラスタ値

を地球地図の土地被覆分類コードに沿って再分類する必要があります。まずは、分類結果のラスタ値

がそれぞれどの土地被覆分類コードに対応するのか確認します。4-5でディシジョンツリー法を選

択した場合は、分類結果のラスタ値と土地被覆分類コードは一致しているので、そのまま4-8に進

んでください。

ラスタ値をポインターで地図を見ながら確認するには、GRASS のレイヤマネージャで分類結果のラ

スタ(LC_Japan)を選択した状態で(リストに表示されていない場合は、「Add raster map layer」メニュ

ーで当該レイヤを追加します)、地図表示パネルにある「Query raster/vector map(s)」アイコンをクリッ

クします(図4-6-1)。

図 4-6-1. Query raster/vector map(s)アイコン

クエリアイコンを選択した状態で、ラスタレイヤ上の任意の場所をクリックすると、その地点のラ

スタ値が次のような形でレイヤマネージャに表示されます。

139.406476|36.533845||1|

Page 90: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

86

上記の例の場合、クリック地点(経度:139.406476、緯度:36.533845)のラスタ値が 1 であること

を示しています。

また、凡例を表示してラスタ値を確認する方法もあります。地図表示パネルのメニューバーから、

図4-6-2の赤枠のアイコンをクリックして「Add legend」を選択します。

図 4-6-2. Add legend メニュー

図4-6-3のように「Legend of raster map」ダイアログが表示されるので、「Show/hide legend」にチェ

ックを入れ、「OK」をクリックします。なお、ダイアログ中の Set options ボタンをクリックすると、凡

例の詳細な設定を行うことが可能です。

図 4-6-3. Legend of raster map ダイアログ

上記の要領で、分類後のラスタ値が、今回採用した地球地図のどの土地被覆分類コードに対応する

のか確認して、その対応関係を記録しておいてください。このようにして確認した対応関係は、次の

ラスタ値の再分類処理(4-7)で使用します。

4-7.地球地図仕様に合わせたラスタ値の再分類

Page 91: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

87

4-6で確認した、分類結果のラスタ値と今回採用した地球地図の土地被覆分類コードを一致させ

るため、分類結果のラスタ値を再分類します。まず、GRASS のレイヤマネージャから、「Raster」→

「Change category value and labels」→「Reclassify [r.reclass]」を選択します(図4-7-1)。

図 4-7-1. r.reclass 選択メニュー

図4-7-2のように、r.reclass ダイアログが開くので、Required タブに以下のようにドロップダウンリス

トから値を入力します。

Raster map to be reclassified: 再分類するラスタマップ(例:LC_Japan)

Name for output raster map: 再分類されたラスタマップ(例:LC_Japan_reclass)

Page 92: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

88

図 4-7-2. r.reclass ダイアログ

次に、「Optional」タブには「元分類番号 = 再分類番号˽分類カテゴリ名」の要領で再分類のルールを

「or enter values interactively」欄に直接記述します。等号の左側が最尤法により割り当てられたカテゴ

リ値、右側がそれに対応する土地被覆分類コードとなります。再分類後の土地被覆コードに対し、カ

テゴリ名を追加することができます。

文法:

旧コード = 新コード 新カテゴリ名

例:

1 = 1 Broadleaf Deciduous Forest

2 = 3 Needleleaf Evergreen Forest

3 = 11 Cropland

Page 93: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

89

図 4-7-3. 再分類ルールの例

再分類ルールが定義できたら、「Run」をクリックして再分類を行います。その結果、ラスタ値とし

て新しく割り振られた値を持つ LC_Japan_reclass が作成されます。

4-8.分類ラスタのメッシュサイズのリサンプリング このマニュアルで使用している MODIS データは1km 解像度の画像であり、目的である地球地図の

仕様に合わせるには、ラスタ解像度の変更を行う必要があります。最尤法では土地分類が終わり土地

被覆分類コードの再分類を終えたラスタデータ(LC_Japan_reclass)及びディシジョンツリー法では土

地被覆分類を終えたラスタデータ(LC_JP_DT)の解像度を、地球地図仕様である30秒メッシュサイズに

リサンプリングします。そのため、MSYS コンソールから次の GRASS のコマンドである g.region と

r.resample を実行します。結果、LC_Japan_reclass_resamp(もしくは、LC_JP_DT_resamp)というレイヤ

名で30秒にリサンプリングされたラスタが作成されます。

実行例1:(4-5で最尤法を選択した場合)

> g.region nsres=00:00:30 ewres=00:00:30

Page 94: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

90

> r.resample input=LC_Japan_reclass output=LC_Japan_reclass_resamp

実行例2:(4-5でディシジョンツリー法を選択した場合)

> g.region nsres=00:00:30 ewres=00:00:30

> r.resample input=LC_JP_DT output=LC_JP_DT_resamp

GRASS 出力レイヤ名:

LC_Japan_reclass_resamp (もしくは、LC_JP_DT_resamp:以後 LC_Japan_reclass_resamp のこと

であると読み替えてください)

4-9.ランダムな検証点の発生と分類結果の検証 modis_check_classification.sh による分類結果を、ランダムな検証点を生成して、視覚的に分類精度の

検証を行うことができます。そのために、まずランダムな検証点を発生させ、次いでそれらの点を

Google Earth で視覚的に確認できるように KML ファイル形式で出力します。さらに、出力した KML の

プロパティを変更し、視覚的に確認した土地被覆コードを KML 内に保存することで、4-10で解説

するエラーマトリックスによる分類精度の検証に利用することもできます。

ランダムな検証点生成用のスクリプト、 modis_verify_points.sh を使用します。第1引数には分類済み

画像名、第2引数には発生点数を指定します。

文法

modis_verify_points.sh␣[土地被覆分類ラスタ]␣[点数]

実行例:

> sh modis_verify_points.sh LC_Japan_reclass_resamp 50

「verify_points_class_コード番号」の名称で、土地被覆分類コードごとの検証点ベクタレイヤが生成

されます。なお、第2引数の発生点数は各分類クラスに対する数ですので、総点数は”分類クラス×引数

で指定した発生点数”となります。

続いて、modis_verify_points.sh で発生させた30秒メッシュの検証点を KML 形式ポリゴンで出力する

Page 95: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

91

ため、以下の modis_export_kml.sh スクリプトを実行します。このスクリプトでは、GRASS リージョン

の解像度(現在の設定では30秒)合わせてラスタの1セル単位でポリゴンが作成されます。解像度を変

更したい場合は、4-7に記載された g.region コマンドを実行してください。

modis_export_kml.sh の引数には、出力される KML ファイル名を拡張子なしで指定します。

文法:

modis_export_kml.sh␣[KML ファイル名]

実行例:

> sh modis_export_kml.sh verify_cells

出力ファイル名:

verify_cells_コード番号.kml

「verify_cells_コード番号」の名前で出力された土地被覆コード毎の KML ファイルを、次に一つの

KML ファイルにまとめます。取りまとめの対象となる KML ファイルと、unite_kml.py は同じディレク

トリにおいておく必要があります。

該当のディレクトリに移動したら、以下のコマンドを実行します。

文法:

unite_kml.py

実行例:

> python unite_kml.py

※当スクリプトは、python が動作する環境であれば、MSYS に限らず、例えば OSGeo4W シェル

などでも実行可能です。

出力ファイル名:

all_class.kml

Page 96: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

92

出力された all_class.kml を Google Earth で開きます。この KML ファイルは、KML の属性として割り

振られている分類結果の値と、Google Earth の背景地図を比較することで、精度を視覚的に検証するた

めに利用できます。また、各ポリゴンの「Name」属性に、判読した土地被覆コードを記録することで、

エラーマトリックスを作成し、定量的に分類精度を検証することもできます。

図 4-9-1. 分類結果の視覚的検証

土地被覆タイプの判読結果を KML に保存するには、Google Earth に読み込んだ KML の対象ポリゴン

を図 4-9-2 の様に右クリックしてコンテクストメニューを表示させ、「Properties」をクリックし、ダイ

アログボックスを開きます。

ダイアログボックスが開いたら(図 4-9-3)、ポリゴン内の土地被覆タイプを判定した結果を、土

地被覆コード(表 4-1-1)で、ポリゴンの「Name」プロパティに、英数半角の数字で入力します。この

作業を繰り返し、分類精度の検証に必要な数のポリゴンの属性値を編集します。

作業が終了したら、「Save Place As…」をクリックし作業結果を同じ KML ファイル「all_class.kml」

として上書き保存してください(図 4-9-4)。

Page 97: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

93

図 4-9-2. KML ポリゴンのプロパティダイアログボックスの開き方

図 4-9-3. ポリゴンの「Name」プロパティに、判読した土地被覆コード(表 4-1-1)を入力

Page 98: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

94

図 4-9-4. 「Save Place As」で編集した KML を「all_class.kml」として上書き保存

グランドトゥルースデータを新たに作成して、それを併せて検証点として利用することもできます。

その場合はトレーニングデータで用いたものとは別のデータを使用してください。ポリゴンでデータ

を作成する場合は、4-1で解説した手順に従い、はじめにポリゴンデータを KML ファイル形式で作

成し、先ほど同様に「Name」プロパティに土地被覆コード(表4-1-1)を、英数半角の数字で入力しま

す。作成するポリゴンは、対象とする土地被覆タイプができるだけ単一で含まれるようにします。ポ

リゴンのほかにポイントデータを用いることもできますが、KML を作成する際に、ポイントでデータ

を作成する以外、他のデータ作成の手順と、スクリプト実行に必要な条件となる属性テーブルの内容

は同じです。ポイントの場合も、今回検証対象としている土地被覆データの解像度と同程度かそれ以

上の範囲で(今回は30秒メッシュデータのため30秒)周囲に単一な土地被覆が広がっている領域の中

心を取得してください。ポイントデータの場合は、次項以降ポリゴンデータと分けて管理及び使用し

てください。

4-10.土地被覆分類結果の検証 4-9で作成された検証点および既存のグランドトゥルースを用いて作成した土地被覆データの精

度の検証結果を評価するために、modis_check_classification.sh を使用します。このコマンドは、検証点

Page 99: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

95

と分類結果との間でエラーマトリックスを作成します。また同時に、参考として検証点の位置を示す

KML ファイルも作成します。このスクリプトを利用するには、ESRI 社のベクタデータファイルフォー

マットである Shapefile(シェープファイル:拡張子.shp)形式で検証データを準備する必要があります。

検証点の領域を示すグランドトゥルースデータは、4-9の手順に従ってポイントまたはポリゴンで

作成しておく必要があります。以下に4-9で土地被覆タイプを検証した all_class.kml をシェープファ

イルに変換する方法を示します。検証点データをシェープファイルで用意した場合は、以下の ogr2ogr

コマンドを飛ばして、modis_check_classification.sh へ進んで下さい。

4-9で作成し、「Name」属性に判読した土地被覆コードを記録した class_all.km を検証作業に利用

する場合、KML ファイルのシェープファイルへの変換はコマンドラインツールである ogr2ogr を利用し

ます。ogr2ogr のコマンドでは、KML の Name 属性にテキストとして入力された土地被覆コードを、シ

ェープファイルの属性テーブルに、列名「Class」、データタイプが整数の列として収めます。そのため

には、ogr2ogr の-sql オプションを利用します。詳しい ogr2ogr コマンドの解説は、OGR のホームペー

ジを参照して下さい(http://www.gdal.org/ogr2ogr.html)。

文法:

ogr2ogr␣-f [ファイルフォーマット]␣[出力シェープファイル名]␣[入力 KML 名]␣-sql [“SQL コマ

ンド“]

例:

> ogr2ogr –f “ESRI Shapefile” verify_area_all.shp all_class.kml –

sql “SELECT cast(Name as integer) as Class from rtemp_random_cell”

* -sql オプションで、入力 KML の Name 属性を整数として読み出し、「Class」列として Shapefile

の属性テーブルに収めている。その際、KML のレイヤ名として、「rtemp_random_cell」を指定

しているが、これは、KML 内のフォルダ名に相当する(Fig. 4-10-1)。

Page 100: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

96

図4-10-1. KML のフォルダ

入出力ファイル

入力ファイル名: all_class.kml

出力ファイル名: verify_area_all.shp

図4-10-2. 出力された検証用データ(シェープファイル)の属性テーブル例(土地被覆コードが

「Class」列に整数値として収められている)

分類結果検証用のシェープファイルを作成後、そのファイルを c:\DATA\GIS_MOIDS に移動し、分類

結果の精度を検証するためのエラーマトリックスと参照用の KML ファイルを作成するスクリプト、

modis_check_classification.sh を実行します。

Page 101: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

97

文法:

modis_check_classification.sh␣[土地被覆ラスタ名]␣[検証用シェープファイル名]␣[エラーマト

リックスファイル名]␣[出力 KML 名]

例:

> sh modis_check_classification.sh LC_Japan_reclass_resamp

verify_area_all.shp error_matrix.txt verify_all.kml

入出力ファイル

入力ファイル名: verify_area_all.shp

出力ファイル名: error_matrix_all.txt(エラーマトリックス)、verify_all.kml(グラウンドトゥ

ルース位置参照用 KML ファイル)

コマンドが実行されると、テキストファイルでエラーマトリックスが出力されるため、分類結果の

検証を行うことができます。

また、独自に分類結果検証用の複数の土地被覆タイプが含まれたシェープファイルを用意している

場合も、modis_check_classification.sh を使って、エラーマトリックスを作成できます(図4-10-3)。独自

に用意した検証用のシェープファイルの属性テーブルには、土地被覆タイプが図4-10-2と同様に「Class」

列として入力されている必要があります。

例:

> sh modis_check_classification.sh LC_Japan_reclass_resamp

verify_area.shp error_matrix.txt verify.kml

入出力ファイル

入力ファイル名: verify_area.shp (独自に用意した、分類結果検証用データ)

出力ファイル名: error_matrix.txt(エラーマトリックス)、verify.kml(参照用 KML ファイル)

Page 102: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

98

図4-10-3. modis_check_classification.sh により作成されたエラーマトリックスの例

4-11.土地被覆データのエクスポート 作成した土地被覆データをエクスポートするには、GRASS レイヤーマネージャーの「 File 」→

「 Export raster map」→ 「Common export formats (r.out.gdal) 」を選択します(図4-11-1)。

図4-11-1. r.out.gdal

現れた r.out.gdal のウィザード(図4-11-2)で以下のように設定し、コマンドを実行すると、土地被

覆データが GeoTIFF フォーマットで出力されます。

Name of raster map (or group) to export: LC_Japan_reclass_resamp

Name for output raster file: c:\DATA\GSI_MODIS\lc_jpn.tif

Page 103: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

99

図4-11-2. 作成した土地被覆データを GeoTIFF 形式で出力

Page 104: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

100

5. 樹木被覆率推定

この章では、3章で GRASS にインポートしたデータと土地被覆分類の結果を用いて、樹木被覆率の

推定を行います。この推定には、ディシジョンツリー作成のために Cubist を用います。

5-1.各バンド及びインデックスの集計 トレーニングデータ領域内に含まれる多時期の MODIS 各バンドの DN 値および NDVI 等の合成指数

の集計を行い、モデル作成のための説明変数を用意します。そのため、次のような処理を行います。

1. 対象ラスタのセル毎に、NDVI 値の大きい順に画像が撮影された日付を並べ、NDVI 値の大きい順

でセル単位に再合成されたラスタを作成する。この集計は、4-3で modis_calc_index.sh を用

いて作成した各種インデックス値のラスタデータに対して行う。

2. NDVI 値上位3日分のデータを抽出し、NDVI、BAND1-7の各バンド、SI のそれぞれの平均値およ

び NDSI の最小値を計算し、それぞれのラスタデータを作成する。

以上の処理は、modis_aggregate_index.sh スクリプトで行います。引数には対象年を指定します。

文法:

modis_aggregate_index.sh␣ [対象年]

例:

> sh modis_aggregate_index.sh 2012

それぞれのインデックスに対して、次のような名称でラスタデータが GRASS 内に生成されますが、

このプロセス以降は、結果は外部ファイルとして出力されます。

agg_ndviave : NDVI の値が大きい上位3日の NDVI 平均値

agg_band01-07 : NDVI の値が大きい上位3日の各バンドの平均値

agg_ndsimin : NDVI の値が大きい上位3日の NDSI 最小値

agg_siave : NDVI の値が大きい上位3日の SI 平均値

modis_aggregate_index.sh の作業中にエラーが発生した場合、作業用のメモリー不足が原因である場

合があります。作業中の他のプログラムを閉じたり、分析対象範囲を狭めたりするとエラーを回避で

きることが有ります。

Page 105: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

101

5-2.基本トレーニングデータとシミュレーショントレーニングデータの作成 5-1で取得した説明変数と既知の樹木被覆率から、樹木率推定モデルのためのトレーニングデー

タ(基本トレーニングデータ及びシミュレーショントレーニングデータ)を作成します。

modis_extract_dn.sh スクリプトは、トレーニングラスタデータに対し基本トレーニングデータとし

て使用するポイントデータをランダムに発生させ、各点に、各バンドおよび NDVI、NDSI、SI などの説

明変数を付与します。処理結果は、カンマ区切りのテキストファイル(拡張子 csv)として出力されま

す。このスクリプトを使う前に、あらかじめ樹木被覆率を格納したトレーニングラスタデータを外部

ファイルとして用意し、それをインポートして GRASS のラスタデータとして用意する必要があります。

トレーニングラスタデータの作成は、土地被覆分類図のトレーニングデータと同様の手順で作成す

ることができます(4-1および4-2)。まず、Google Earth を利用して、森林や市街地、畑・草地

などが一様に分布している領域を4-1と同様にポリゴンで囲み、その場所の樹木被覆率を属性指定

ダイアログの名前欄に入力します(図4-1-5を参考)。この作業を繰り返し、十分な数のポリゴンが作成

できたら、次に、4-2の手順に従って、KML ファイルを GRASS にインポートし、ラスタ化すればト

レーニングデータとして利用できます。また、ユーザーが独自にトレーニングデータを作成する以外

に、既存の植生図などのベクトルデータを利用する方法(FAQ で解説)やメリーランド大学のウェブ

サイトから提供されている既存の樹木被覆率、Global Forest Change 2000-2012

(http://earthenginepartners.appspot.com/science-2013-global-forest/download.html)を利用する方法もあ

ります。目的によってどのトレーニングデータを利用するか決めて下さい。ここでは、Global Forest

Change 2000-2012の Hansen_GFC2013_treecover2000_40N_130E.tif を使用してトレーニングデータ作成の

手順を説明します。

modis_extract_dn.sh スクリプトは、作成した土地被覆図(LC_Japan)と用意した樹木被覆率トレーニ

ングラスタデータからトレーニングデータを作成します。樹木被覆率トレーニングラスタデータは、

GRASS レイヤマネージャの「File」→「Import raster data」→「Common import formats [r.in.gdal]」(5-

7の図5-7-1、図5-7-2を参照)から、予め GRASS 内部ラスタレイヤとして読み込んでおいてください。

ここでは、”treecover2000”という名前にしています。

文法:

modis_extract_dn.sh␣[樹木被覆率トレーニングラスタデータ]␣[土地被覆分類結果ラス

タデータ]␣[出力ファイル名]␣[発生点数]

実行例:

Page 106: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

102

> sh modis_extract_dn.sh treecover2000 LC_Japan_reclass_resamp

veg_training.csv 100

出力ファイル名:

veg_training.csv

出力結果例:

図 5-2-1. 樹木被覆推定モデルのトレーニングデータ(csv 形式)を Excel で開いたところ

続いて、上記の基本トレーニングデータ(modis_extract_dn.sh の出力 CSV ファイル)を元に、Cubist

の入力形式に準拠したシミュレーショントレーニングデータを、modis_gen_simulation.sh で作成します。

このスクリプトでは Forest カテゴリ、Urban/Bare Area カテゴリ、Cropland/Herbaceous カテゴリの3

種類の基本トレーニングデータを10%刻みの様々な割合で混合してシミュレーショントレーニングデー

タを作成します。Forest カテゴリ番号として表4-1-1の1,2,3,4,5,14の土地被覆クラスに相当するデータ、

Urban/Bare Area カテゴリ番号として同じ表の16,17,18の土地被覆クラスに相当するデータ、

Cropland/Herbaceous カテゴリ番号として同じ表の7,8,11,12の土地被覆クラスにデータ相当するデータ

の入力を想定しています。下記コマンドで指定されない番号のカテゴリ番号は全て

Cropland/Herbaceous カテゴリとされるので、スクリプトの実行前に先ほど作成した veg_training.csv を

確認し、その中に Cropland/Herbaceous カテゴリに含まれない(例えば、19の雪氷や20の水部など)意

図しないデータがある場合は、予め削除しておいてください。

文法:

Page 107: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

103

modis_gen_simulation.sh␣[入力ファイル名]␣[出力ファイル名]␣[Forest カテゴリ番号]␣

[Urban/Bare Area カテゴリ番号]

入力ファイル: modis_extract_dn.sh の出力結果

Forest カテゴリ番号: 土地被覆分類コード(表 4-1-1)の森林に該当する番号

Urban/Bare Area カテゴリ番号: 土地被覆分類コード(表 4-1-1)の市街地に該当す

る番号

ただし、ここで森林、および市街地に割り振られなかった番号は全て

Cropland/Herbaceous カテゴリとして自動的に選択されます。

例:

> sh modis_gen_simulation.sh veg_training.csv rep2.data 1,2,3 18

出力ファイル:

rep2.data

カレントディレクトリに出力されたファイル(ここでは rep2.data )が Cubist に入力するシミュレー

ショントレーニングデータとなります。

5-3.ディシジョンツリーの作成 Cubist を用いて、modis_gen_simulation.sh で作成したトレーニングデータを元にディシジョンツリー

を作成します。この作業を行う前に、作業フォルダ内に cubist.exe が入っているか確認してください。

また、Cubist を実行するためには、拡張子が .names および .data の2つのファイルが必要です。.data

ファイルは modis_gen_simulation.sh によってすでに作成しました。.names ファイルは、ユーザーが独

自に準備しなければならないのですが、テンプレートとなる「template.names」ファイルをスクリプト

一式と同梱しましたので、各自の.data ファイル名にあわせ、ファイル名を変更して利用して下さい。

例えば、.data ファイルの名前が rep2.data であれば、template.names ファイルのコピーを作成して、フ

ァイル名を rep2.names に変更します。

cubist.exe では、-f オプションでトレーニングデータのファイル名を、拡張子なしで指定してくださ

い。cubist.exe を実行すると、モデルファイル(.model)がカレントディレクトリに作成されます。

Page 108: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

104

Cubist 自体の使い方はこのマニュアルでは詳しく解説しませんので、Cubist のマニュアルを参照し

てください(http://www.rulequest.com/cubist-win.html)。

文法:

cubist.exe␣–f␣[モデルファイル名(拡張子なし)]

例:

> cubist.exe –f rep2

出力ファイル:

rep2.model

出力結果

図 5-3-1. モデルファイル

5-4.樹木被覆率の推定 Cubist が出力したモデルファイルを使って次に樹木被覆率の計算を行います。引数には、5-2で

作成したモデルファイルを指定して modis_import_result.sh を実行します。

Page 109: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

105

文法:

modis_import_result.sh␣[モデルファイル]

例:

> sh modis_import_result.sh rep2.model

出力ラスタ(一部):

res_0

res_1

res_10

modis_import_result.sh を実行すると、「res_ 」で始まるファイル名で、一連の樹木被覆率ラスタが

GRASS の内部データとして作成されます。

5-5.推定結果の統合 modis_import_result.sh によりモデル毎に算出した樹木被覆率推定結果を統合します。

文法:

modis_integrate_result.sh␣[引数なし]

例:

> sh modis_integrate_result.sh

出力ラスタ:

result_tree_cover_dep

この結果、result_tree_cover_dep という名前で樹木被覆率の統合ラスタが GRASS の内部データとし

て作成されます。ラスタ値は、0から100の間の整数値を取ります。

生成されたラスタは GRASS で表示して確認することができます。GRASS に読み込んだ際に何も表示

されない場合は、カラーテーブルを変更して下さい。

Page 110: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

106

図 5-5-1. 樹木被覆率の統合ラスタ

なお、ここまで行ってきた Cubist による樹木被覆率の推定で十分な精度が得られなかった場合は、

初めに戻って推定精度が悪い箇所のトレーニングデータを取得してください。ただし See5を併用して

樹木被覆率を推定すると精度が向上する可能性があります。See5を用いた解析手法は、付録A-1を

参照して下さい。

5-6.メッシュサイズの変更 地球地図仕様では、ラスタデータの解像度は30秒メッシュサイズに規定されています。もしラスタ

の解像度が30秒になっていない場合は、5-5で作成した樹木被覆率ラスタ(result_tree_cover_dep)

を30秒メッシュサイズでリサンプリングします。MSYS コンソールから次の GRASS コマンドを入力しま

す。

例:

> g.region nsres=00:00:30 ewres=00:00:30

> r.resample input=result_tree_cover_dep

output=result_tree_cover_dep_resamp

Page 111: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

107

入力ラスタ:

result_tree_cover_dep

出力ラスタ:

result_raster_cover_dep_resamp

result_tree_cover_dep_resamp というレイヤ名でリサンプリング後のラスタが作成されます。

5-7.水部のマスキング 樹木被覆率推定結果から、水部を除くため、既存の土地被覆データを利用し、マスキングを行いま

す。第4章の土地被覆分類で水部データを作成している場合は、そちらも使用できます。このマニュ

アルでは、地球地図全球版土地被覆(GLCNMO)第1版のユーラシア土地被覆データから水部を抽出して

利用します。GLCNMO 第1版のデータは、千葉大学環境リモートセンシング研究センター

(http://www.cr.chiba-u.jp/databaseGGI.htm )や ISCGM のホームページ(http://www.iscgm.org/)よりダウ

ンロードできます。今回は、千葉大環境リモートセンシング研究センターのホームページより

Landcover_EA.tif(ftp://geoinfo.cr.chiba-u.jp/pub/geoinfo/globalproducts/GG-56789/GG-6-

GLCNMO/Landcover_EA.tif)をダウンロードして使用します。

まず、ダウンロードした Landcover_EA.tif を GRASS へとインポートします。GRASS レイヤマネージャ

にて、「File」→「Import raster data」→「Common import formats [r.in.gdal]」を選択します(図5-7-1)。

図 5-7-1. Common import formats メニュー

Page 112: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

108

「Import raster data」ダイアログが開くので、Source settings の File に Landcover_EA.tif、Format にド

ロップダウンリストから GeoTIFF を選択して「Import」をクリックします。

図 5-7-2. Import raster data ダイアログ

入力ファイル(Layer name): Landcover_EA.tif

出力 GRASS マップ(name for GRASS map): Landcover_EA

処理が正常に終了すれば、「Landcover_EA」という名称で、新規にラスタレイヤが作成されます。

続いてマスクの作成に移ります。水部(コード値:20)の除去のために、マップカリキュレータを

用いて、インポートしたデータのうちラスタ値が20の箇所のみを null 値で埋めます。

マップカリキュレータの起動は、GRASS レイヤマネージャから「Raster」→「Raster map calculator

[r.mapcalc]」と操作します(図5-7-3)。

Page 113: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

109

図 5-7-3. Raster map calculator メニュー

図5-7-4のようにマップカリキュレータが起動します。

図 5-7-4. マップカリキュレータ

「Expression」の欄に次式を入力します。

if( Landcover_EA ==20, null(), Landcover_EA )

この式は、Landcover_EA ラスタレイヤの値が20の場合はそこを null に置き換え、それ以外の箇所は

そのままの値を保持することを示しています。

「Name for new raster map to create」欄には出力ファイル名を指定します。

Page 114: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

110

必要な値をすべて入力したら、「Run」をクリックします。指定したファイル名でラスタレイヤが作

成されます。

最後に、作成したラスタをマスクに指定します。GRASS レイヤマネージャから「Raster」→「Mask

[r.mask]」を選択します。

図 5-7-5. Mask メニュー

図5-7-6のようなダイアログが表示されるので、「Raster map to use as MASK」にマスクの作成元とな

るラスタマップを選択します。「Category values to use for MASK」はデフォルトの *(アスタリスク)の

ままにします。指定が完了したら「Run」ボタンを押します。これで、水部に対するマスクが設定され

ます。

Page 115: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

111

図 5-7-6. r.mask ダイアログ

図5-7-7 マスク処理前(左)と処理後(右)の比較

5-8.検証点における精度の算出 分類結果の精度を検証するために、ランダムな検証点上の樹木被覆率を、KML ファイルとして出力

し、視覚的に被覆率を検証する方法と、ランダムな検証点における樹木被覆率と他に用意した樹木被

覆率ラスタデータとの比較を行う2つの方法があります。

計算した樹木被覆率ラスタ上にランダムな点を発生させ、KML として出力するには、まず始めに、

GRASS の r.random コマンドを使います(図5-8-1)。このコマンドは、指定したラスタ上にランダムな点

Page 116: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

112

をベクタデータとして発生させます(図5-8-2)。発生させたベクタデータには、属性値として樹木被覆

率であるラスタ値が「Value」列として加えられます。

図5-8-1. ラスタを基にランダムなラスタ及びベクタ点を発生させる、r.random コマンド

入力例:

Required タブ:

Name of input raster name: result_tree_cover_dep_resamp@MODIS

The number of points to allocate: 50

Optional タブ:

Name for output raster map: random50r

Name for output vector map: random50v

Page 117: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

113

図5-8-2. 樹木被覆率ラスタ上にランダムに発生させた点(赤丸)

次に、作成された点ベクタデータを KML としてエクスポートします。エクスポートには、v.out.ogr

コマンドを使います(図5-8-3)。点データを出力するため、「Input」タブでは、「point」オプションの

選択して下さい。

図5-8-3. ランダムに発生させた点を KML 出力するための、v.out.ogr コマンド

入力例:

Page 118: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

114

Required タブ

Name of input vector map: random50v@MODIS

OGR output datasource name: c:/data/gsi_modis/random50v.kml

Input タブ

point オプションのみをチェック

Creation タブ

OGR format: KML

出力した KML ファイルを Google Earth で開き、読み込まれたポイントをクリックすると、樹木被覆

率が表示されるので、その値を視覚的に検証します。検証点は作成した樹木被覆率データのメッシュ

の中心に落ちるので、メッシュサイズの広がり(今回は30秒メッシュのため30秒)の範囲での樹木被

覆率と比較し、結果を Excel などの表計算ソフトにまとめて検証を行ってください。

図5-8-4. KML で出力した樹木被覆率の検証(樹木被覆率が value として示されます)

次に、あらかじめ用意した、他の樹木被覆率ラスタを利用した検証方法を説明します。

modis_check_accuracy.sh は、次のように、真値ラスタレイヤ、出力ファイル名、検証点の発生点数を引

数として、ランダムな検証点を生成し(verify_tc という名前のベクタレイヤが作られます)、その検証

点ごとの樹木被覆率計算結果と樹木被覆率真値を CSV 形式で出力します。比較対象の樹木被覆率ラス

タレイヤとして、今回は、トレーニングデータにも使用した2000年の樹木被覆率データ

Page 119: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

115

(treecover2000)を利用します。樹木被覆率ラスタはあらかじめ GRASS に読み込んでおく必要があり

ます。

文法:

modis_check_accuracy.sh␣[比較対象の樹木被覆率ラスタレイヤ]␣ [出力ファイル]␣ [発

生点数]

実行例:

> sh modis_check_accuracy.sh treecover2000 check_accuracy 200

出力ファイル:

check_accuracy.csv

出力された CSV ファイル(上記の例であれば check_accuracy.csv)をエクセルなどの表計算ソフトで

表示することにより、推定結果の精度を評価することができます。

図 5-8-5. トレーニングデータと推定結果の比較

5-9.樹木被覆率データのエクスポート

Page 120: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

116

作成した樹木被覆率データを地球地図仕様に合うように、他国や海域などの解析対象範囲外に254ま

たは255(水部は254、 No Data の領域は255)を割り当てた後、GeoTIFF ファイルとして出力します。

そのためには、作成した土地被覆図と行政領域データから作成したマスクデータを利用します。

まず、解析に使用したマスク、jpn_mask と r.null コマンドを使い、行政領域内を1、行政領域外を2

と指定します。

図5-9-1. r.null を利用した、解析対象範囲外の値の設定

その上で、r.mapcalc の if 文を使い、行政領域内(1)で水部以外は対象国の樹木被覆率マップを、

水部には254を、行政領域外(2)で水部は254を、水部以外は255を割り付けるようにします。例えば、

以下の様なコマンドが考えられます。

if (jpn_mask == 1, if (LC_Japan_reclass_resamp == 20, 254,

result_tree_cover_dep_resamp),254)

ラスタメニューから「Raster map calculator [r.mapcalc]」を選択し、「Expression」欄に上記の式を入力

し計算を実行します。

Page 121: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

117

図5-9-2. r.mapcalc による対象国外のデータ処理

Name for new raster map to create: ve_jpn

Expression: if (jpn_mask == 1, if (LC_Japan_reclass_resamp == 20, 254, result_tree_cover_dep_resamp),

254)

計算が終了した後は、4-11の手順と同様に r.out.gdal コマンドで、結果を GeoTIFF ファイルとし

て出力します。

Page 122: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

118

図5-9-3. r.out.gdal による樹木被覆率データの出力

Name of raster map (or group) to export: ve_jpn

Name for output raster file: C:\DATA\GSI_MODIS\ve_jpn.tif

Page 123: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

119

6. 参考文献及びヒント

この章では、地球地図ラスタデータ開発ツールの作成にあたって依拠した参考文献等、実際に本ツ

ールを用いてラスタデータを作成する際に参考となる情報について説明します。

土地被覆分類 地球地図全球版土地被覆(GLCNMO)第1版および第2版の作成方法を参考にしました。

第1版の作成方法については、千葉大学環境リモートセンシングセンターで公開されている下記ドキ

ュメントを参考にしました。

Ryutaro Tateishi, Bayaer, Mohamed Aboel Ghar, Hussam Al-Bilbisi, Javzandulam Tsendayush, Adel

Shalaby, Alimujiang Kasimu, Nguyen Thanh Hoan, Toshiyuki Kobayashi, Bayan Alsaaideh, Md. Mijanur

Rahman, Enkhzaya Tsevengee(2008), Global-Map Global Land Cover (GLCNMO)

ftp://geoinfo.cr.chiba-u.jp/pub/geoinfo/globalproducts/GG-56789/GG-6-

GLCNMO/GLCNMOdocument.pdf

第2版の作成方法については、Journal of Geography and Geology で発表された下記ドキュメントを参

考にしました。

Ryutaro Tateishi, Nguyen Thanh Hoan, Toshiyuki Kobayashi, Bayan Alsaaideh, Gegen Tana, Dong Xuan

Phong (2014), Production of Global Land Cover Data – GLCNMO2008, Journal of Geography and Geology,

Vol.6 No.3, pp.99-122

http://www.ccsenet.org/journal/index.php/jgg/article/view/37581

上記参考資料の中では、地球地図土地被覆の20分類のうち、疎林、マングローブ、湿地、都市、雪

氷、水部以外の14分類について最尤法及びディシジョンツリー法を採用しています。本ツールでは最

尤法及びディシジョンツリー法のみ実装しましたが、本操作説明書で紹介した GRASS の GUI などを用

いればこれら6分類を MODIS 画像等から抽出し個別マッピングを行うことも可能です。参考資料に具体

的手法が記されているので、そちらを参考にしてください。

樹木被覆率トレーニングデータの作成 FAQ で紹介している樹木被覆率トレーニングデータの作成にあたっては、平成24年度地球観測技

術等調査研究委託事業「宇宙利用促進調整委託費 衛星データと地球地図を用いた環境劣化評価シス

テムの構築」で採用された方法を紹介しました。

Page 124: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

120

• オークニー(2013)

平成 24 年度地球観測技術等調査研究委託事業

衛星データと地球地図を用いた環境劣化評価システムの構築成果報告書. 48 p.

樹木被覆率推定 下記論文を参考にしました。

T. Kobayashi, J. Tsend-Ayush, and R.Tateishi (2010), Estimation of percent tree cover in Eurasia using

MODIS data in 2003 and the comparison of estimation between 2003 and 2008 in some parts,

International Archivers of the Photogrammetry, Remote Sensing and Spatial Information Science, Vol.38,

Part8, pp.690-695

http://www.isprs.org/proceedings/XXXVIII/part8/pdf/W07P06_20100308201140.pdf

上記参考資料の中では、シミュレーショントレーニングデータを森林、森林以外の植生、都市及び

裸地の3カテゴリーの基本トレーニングデータから5%刻みの組み合わせで作成していますが、本ツー

ルでは10%刻みで作成しています。

Page 125: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

121

FAQ

パソコン環境とインストール 1. 一連の画像解析作業をするのに必要とされるパソコンの仕様はあるか

• 特に高性能のパソコンでなくても全てのスクリプトは動きます。一番重要となるの

が、メモリサイズとハードディスクサイズです。メモリサイズは、樹木被覆率を計

算する際に、大きい範囲を対象に分析する際に必要となります。スクリプトのテス

トでは、4GB メモリ搭載のパソコンを使用しましたが、できれば同程度のメモリ

をご用意下さい。また、チュートリアルで使用した MODIS1ヶ月の画像データ及び

派生データで最低でもおよそ 100GB のハードディスク容量を必要とします。長期間

のデータ解析、LANDSAT や VIIRS データを使用する場合は十分な容量のハードディ

スクをご用意下さい。

2. R や OSGeo4W には 64 ビット版と 32 ビット版がありますが、どちらをインストールしたほ

うが良いか

• OS が 64 ビットであることがわかっている場合は、64 ビット版をインストールして

下さい。どちらかはっきりしない方は、32 ビット版のソフトウェアであれば、OSのビット数にかかわらずソフトウェアが稼働します。

3. このプログラムは Windows 用ですが、Mac や Linux でも使用できるか

• 不可能ではありませんが、スクリプト群は Windows 環境を想定して作成されている

ものなので、Mac や Linux で同様の作業を行うのはやや困難です。最も問題になる

のは Python 環境です。Python のライブラリパス、pyModis のインストール先等を正

しく把握して modis_setenv.txt 上で環境設定を行っておく必要があります。また、

Linux ディストリビューションによっては PYTHONPATH 環境変数を設定するとうま

く動作しない場合があります。

4. 既にインストールされている他のパイソンのバージョンとのコンフリクトはあるか

• modis_setenv.sh で環境変数を設定してシステム環境変数を利用しないようにしてあ

ります。

5. GRASS の使用言語は日本語でも良いか

• GRASS の使用言語は英語を想定しています。特にロケールを設定していないとシス

テムロケールを使用するため、非英語版 PC を使用したときにはユーザーインター

フェースやエラーメッセージ等が各国語で表示されます。GRASS の多言語機能は問

題を起こすことが多いので、ロケールはできれば英語に設定して下さい。

6. GRASS のインストールが完了したにも関わらず、起動できない

Page 126: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

122

• MSVCR71.DLL 等の Microsoft Runtime DLL がインストールされていないことが考えら

れます。以下の URL の「The winGRASS program exits immediately after I start it!」の手

順に従い、必要な DLL をインストールして下さい。

• http://grasswiki.osgeo.org/wiki/WinGRASS_errors

なお、MSVCR71.DLL の不足が原因の場合には、OSGeo4W\bin 配下にも同様の DLL が

インストールされますので、それを C: \Windows\System32 直下にコピーすることで

も解決できます。

7. pyModis のインストールにて python コマンドが実行できなかった

• 利用しているコマンドラインコンソールのパス設定に python.exe へのパスが設定さ

れていない事が考えられます。OSGeo4W でインストールされた、OSGeo4W シェル

を使って下さい。

8. マニュアルで利用するシェルコマンドを知りたい

• 環境設定の確認

• 全ての環境変数の出力

a. env

• 特定の変数名の出力

a. echo $変数名

• カレントディレクトリの確認:

• pwd

• ディレクトリの移動(例:GSI_MODIS への移動)

• cd /c/DATA/GSI_MODIS

• ファイルのコピー(例:modis_merge.sh を MCD43B4 ディレクトリにコピー

• cp modis_merge.sh ./MCD43B4

• ディレクトリの作成(例:/c/DATA/GSI_MODIS/MCD43B4 の作成):

• mkdir /c/DATA/GSI_MODIS/MCD43B4

9. ダウンロード時(解凍前)の画像データなどの容量の目安がほしい

• MODIS:1 タイルにつき、300~900KB

• LANDSAT8:1 タイルにつき、800MB~1.2GB

• VIIRS: 1~5 バンドの1タイルで約 2GB

10. MSYS コンソールの日本語メッセージが文字化けする

• 英語表示に切り替えて下さい。MSYS 版 GRASS で強制的に英語表示にする場合は、

[GRASS インストールディレクトリ]/msys/msys.bat に以下の環境変数を設定します。

Page 127: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

123

set LANG=en_US set LANGUAGE=en_US set LC_MESSAGES=en_US

スクリプト全般について 1. 途中で作業を中断した場合、どういう手順で再開すれば良いのか

• まず、GRASS を MSYS モードで立ちあげ、カレントディレクトリを環境変数設定フ

ァイル modis_senenv.txt が入っているディレクトリに移動し、「source modis_setenv.txt」を実行して設定を再度読み込んでから、引き続き作業を再開する

ことができます。

2. MSYS でスクリプトを実行するとき、最初に「sh」とつけなくてもコマンドを実行できるの

はどうしてか

• このマニュアルが想定している MSYS 環境であれば sh をコマンドの前に付けること

は不要です。ただし、linux 環境であれば、chmod 777 で実行属性を付与していない

場合、sh をコマンドの前に付け加えることが必要です。

3. MODIS データのダウンロードがうまくいかなかった

• 指定したオプションをもう一度確認して下さい。また、指定期間をずらすなどして、

スクリプト自体が作動するかどうか確認して下さい。

• それでもダウンロード出来ない場合は、手動でダウンロードすることもできます。

USGS(http://earthexplorer.usgs.gov/)や NASA(http://reverb.echo.nasa.gov/reverb/)のサイトを使って、無料で画像をダウンロードすることができます。

4. スクリプトが暴走した際、どのようにしてスクリプトを中断すればよいのか

• スクリプトの処理を中断したい場合は Ctrl + c を押して下さい。タイミングによっ

てはスクリプトが中断しない場合があるので、その時は Ctrl + c を複数回連打して

ください。

個別処理について 1. modis_import.sh でインポートした MODIS 画像が GRASS で読み込んだ時に表示されなかった

• GRASS で対象レイヤに color マップを適用して下さい。また、Region の範囲が広く

設定されているため、実際のデータが非常に小さく表示されることもあります。拡

大ツールなどを使って、該当地域を拡大してみてください。

2. i.gensig のときに「シグネチャ2が整数値ではありません」というエラーが出た

Page 128: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

124

• 入力ラスタに NULL 値が含まれていたことが原因の一つとして考えられます。3-

8の NULL 値の補完ができているか、または GRASS の r.null で NULL 値を別の値にす

るなどして対処して下さい。

3. 4-5 で g.mlist を使って絞り込むとあるが、どのような条件が指定可能なのか具体的に教え

てほしい

• g.mlist は、ワイルドカードと正規表現、拡張正規表現を使った文字列の検索が行え

ます。さらに、「含む」と「除く」の2つの条件を組み合わせると、GRASS マップ

名の絞り込みができます。正規表現については、数多くの参考になるサイト

(http://ja.wikipedia.org/wiki/正規表現など)があります。ここではいくつかの具体

例を上げるにとどめます。

• マップ名が「interp」で始まる

a. g.mlist -r pattern=^interp

• マップ名が「interp」ではじまり、マップ名の最後が「si」で終わらない

a. g.mlist -r pattern=^interp exclude=si$

• マップ名が「」で始まり、マップ名の最後が数字で終わる

a. g.mlist -r pattern='^interp.*[0-9]$'

4. modis_aggregate_index の処理が途中で止まる

• この処理は、R で行っており、メモリ不足が原因として考えられます。メモリの上

限を引き上げるか(memory.limit(size=メモリサイズ)の指定)、分析対象域を狭くし

て下さい。

• 分析対象を狭くして解析した複数の地域の樹木被覆率ラスタをマージするには、

r.patch を利用して下さい。以下の例を参考にして下さい。以下では、各樹木被覆率

ラスタ名が、「result_tree_cover_dep_resamp_1、result_tree_cover_dep_resamp_2」のようになっていると仮定しています。

MAPS=`g.mlist type=rast sep=,

pat=”result_tree_cover_dep_resamp*”`

r.patch in=$MAPS out=dree_cov_dep_all

5. 既存のグランドトゥルースデータがシェープファイルで準備されており、それをトレーニ

ングデータとして用いる場合の方法を知りたい

まず、グランドトゥルース用のシェープファイル(ここでは training_area.shp とします)に、

整数型の土地被覆分類コードが「landcover」列として収められているとします(図1)。

Page 129: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

125

図 1. 属性テーブル

まず、シェープファイルを GRASS へインポートします。GRASS のレイヤマネージャにて、

「File」→「Import Vector data」→「Common import formats [v.in.ogr]」を選択します(図2)。

図 2. v.in.ogr 選択メニュー

図3のように Import vector data ダイアログが表示されるので、ファイルに training_area.shp

を選択して「Import」をクリックします。

Page 130: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

126

図 3. Import vector data ダイアログ

GRASS で教師付き分類を行う場合、トレーニングエリアはラスタデータである必要があり

ます。ベクタデータとしてインポートした training_area をラスタデータに変換します。図4

のようにレイヤマネージャから、「File」→「Map type conversion」→「vector to raster

[v.to.rast]」を選択します。

Page 131: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

127

図 4. v.to.rast 選択メニュー

v.to.rast ダイアログが開くので、入力ファイル名には「training_area」、出力ファイル名も

「training_area」(ファイルタイプが異なるので、同名でも入力ファイルを上書きすること

はありません)を指定します。また、landcover カラムの値をラスタ値として引き継ぐため、

ラスタ値のソースには「attr」を、そして Attributes タブで指定する’attr’で使用するカラム

名には「landcover」を入力します。

図 5. v.to.rast ダイアログ(左: Required タブ、右:Attributes タブ)

Page 132: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

128

6. 樹木被覆率計算のトレーニングデータの作成方法を知りたい

• 樹木被覆率計算のトレーニングデータを作る一つの方法として、環境省が作成した

ベクタ形式の植生図(http://vegetation.jp/)を利用する方法があります。以下でそ

の手順を簡単に解説します。この方法は、あくまで試行的なものです。

• http://vegetation.jp/から対象とする地域の植生図をシェープファイル形式で

ダウンロードする

• GRASS にインポートする

• ベクタからラスタ形式に変換する

a. 解像度は後でより大きなセル範囲で集計を行うので、出来る限り高

い解像度でラスタ化する(例:3 秒)

• 植生タイプから、森林を1、その他を0として、カテゴリの再分類を

r.reclass を使って行う。

• 解像度を低く設定し(例:30 秒)、r.sum を使い、セル内の森林セルの合計

値を求める。この際、解像度を高い解像度のセルが 100 含まれるように設

定すると、そのまま解像度の低いセルで森林率が計算される

ライセンスについて 1. 今回使用したソフト全般のライセンス形態を知りたい。

• GRASS: GNU General Public License (GPL) V2.

• R: GNU General Public License (GPL) V2.

• GDAL: MIT License

• Python: GPL-compatible

• pyModis: GNU General Public License (GPL) V2.

2. このラスタプログラムのスクリプトは自由に改良・配布して良いのか

• 著作権は国土地理院に属しますが、基本的には自由に使用・改良・配布頂いてかま

いません。ただし、このスクリプトは現状のまま(as is)提供されることを前提とし、

実行したことによる損害について、国土地理院は何ら責任を負うものではありませ

ん。

3. スクリプトについて質問があれば、どこにすればよいのか

• 質問は、配布元の地球地図国際運営委員会事務局(Secretariat of International Steering Committee for Global Mapping)で承ります。メールアドレスは [email protected] です。

Page 133: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

129

4. このマニュアル、またはスクリプトを使用した成果を公開したい。または、論文で引用し

たい。

• 出典の明記をお願いします。出典を明記する際は、"Global Map Raster Development tool ver1.0, Copyright (c) 2014 Geospatial Information Authority of Japan"とし、論文に引

用する場合は、"Geospatial Information Authority of Japan: Global Map Raster Develop-menttool ver1.0, 2014" としてください。

Page 134: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

130

付録

A-1.See5/Cubist 作業手順

Cubist での樹木被覆率計算結果が思わしくない場合に行う、See5/Cubist による分割計算の手法を示

します。詳しい See5の使用方法は、http://www.rulequest.com/see5-info.html を参照してください。

1.分割エリアを決定 対象地域を大まかに分割するエリアをデジタイズします。分割エリアは See5グループを定義するた

めに使用するもので、厳密に接している必要はありません。分割エリアの選定は NDVI 等の傾向が似て

いる地域で囲むとよいそうです。

分割エリアをシェープファイルで用意する場合、属性としてグループ番号を整数値として持つよう

にして下さい。用意したシェープファイルは GRASS にインポートして、グループ番号をカテゴリ値と

してラスタライズします。以下の例では、分割エリアのシェープファイルを「group」という名前で取

り込み、グループ番号が「id」列として属性テーブルに押さえられている場合を想定しています。

例:

> v.to.rast input=group output=group_rast use=attr column=id

※この分割エリアに教師付き分類結果を用いることはできません。教師付き分類結果のクラ

スは Cubist データを作成するときに行うシミュレーショントレーニングデータ作成の入力パ

ラメータとして使用されるためです。

次の例(図 A-1-1)では樹木被覆率ラスタが存在する範囲でエリアを囲んでいます。

Page 135: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

131

図 A-1-1. 分割エリアの選定例

2.分割エリアでマスクして modis_extract_dn.sh を実行する A-1で作成したグループラスタのグループエリアでマスクし、modis_extract_dn.sh を実行します。

この作業をグループ数分繰り返します。

例:

> r.mask -o input=group_rast maskcats=1

> sh modis_extract_dn.sh treecover2000 LC_Japan_reclass_resamp

veg_training_see5_1.csv 50

> r.mask -o input=group_rast maskcats=2

> sh modis_extract_dn.sh treecover2000 LC_Japan_reclass_resamp

veg_training_see5_2.csv 50

> r.mask -o input=group_rast maskcats=3

> sh modis_extract_dn.sh treecover2000 LC_Japan_reclass_resamp

veg_training_see5_3.csv 50

3.ランダム点の作成

Page 136: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

132

グループラスタの全エリアでマスクして、r.random を実行し、グループ番号を属性として与えます。

r.mask により NODATA の部分をマスクし、その後、r.random により、グループラスタの値を value カラ

ムに割り当てる形でランダム点を生成しています。

例:

> r.mask -o input=group_rast

> r.random input=group_rast vector_output=random_see5 n=100

4.ランダム点へのフィールドの追加 A-3で生成したランダム点に対して、See5の説明変数としたいラスタデータの値をフィールドに

追加します。まず、新規カラムを作成します。後でどのラスタデータの値かわかるフィールド名にし

ておく必要があります。ただし、デフォルトの DBF データベースを使用する場合は10バイトの制限が

あります。

例:

> v.db.addcol map=random_see5 columns="agg_ndviav DOUBLE

PRECISION"

次に、説明変数としたいラスタデータの値をフィールドの値として付与します。

例:

> v.what.rast vector=random_see5 raster=agg_ndviave

column=agg_ndviav

上記の2つのコマンドを説明変数に加えたいラスタデータの個数分繰り返します。

例:

Page 137: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

133

v.db.addcol map=random_see5 columns="agg_ndsim DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_ndsimin column=agg_ndsim

v.db.addcol map=random_see5 columns="agg_siave DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_siave column=agg_siave

v.db.addcol map=random_see5 columns="agg_band1 DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_band1 column=agg_band1

v.db.addcol map=random_see5 columns="agg_band2 DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_band2 column=agg_band2

v.db.addcol map=random_see5 columns="agg_band3 DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_band3 column=agg_band3

v.db.addcol map=random_see5 columns="agg_band4 DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_band4 column=agg_band4

v.db.addcol map=random_see5 columns="agg_band5 DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_band5 column=agg_band5

v.db.addcol map=random_see5 columns="agg_band6 DOUBLE PRECISION"

v.what.rast vector=random_see5 raster=agg_band6 column=agg_band6

5.テーブルをエクスポート 全ての説明変数の追加が完了したら、CSV 形式にエクスポートします。

文法:

db.out.ogr input=random_see5 dsn=”出力ファイルパス” format=CSV

例:

> db.out.ogr input=random_see5 dsn=c:/DATA/GSI_MODIS/category.csv”

format=CSV

Page 138: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

134

6.テーブルの編集と.names ファイルの作成 グループエリアが海域にはみ出していたりすると欠測値が生じる場合があります。値に欠測値が無

いように出力した CSV ファイルを開き、欠測値の除去を行います。その上で、フィールド名を参照し

て.names ファイルを作成します。このとき、.names ファイルは使用したラスタレイヤの名称と一致さ

せます。最後に、CSV ファイルのヘッダを削除してカンマ区切りのテキストとして保存し、拡張子

を.data に変更します。

See5 data ファイルサンプル

1,2,-183.200882,2962.58374,1646.613037,426.199829,2764.363525,2046.282837,1201.314819,-

0.207815,0.216763,0.216763

2,3,477.666656,3210.333252,340.666656,683,2881.333252,1911.333374,961,-

0.283693,0.352062,0.352062

3,3,458.333344,2870.333252,430.333344,605.333313,2638.333252,1886.333374,1161.666626,-

0.251976,0.320031,0.320031

4,2,710.666687,3500.666748,587.666687,930.666687,3100.666748,2112.666748,952.333313,-

0.259044,0.26753,0.26753

5,2,594,3350.666748,548,839.333313,2808,2041.666626,1032.333374,-

0.246914,0.273202,0.273202

6,2,588,3177,847,763.333313,2598,2044.333374,1067,-0.237923,0.216487,0.216487

See5 names ファイルサンプル

group.

cat: label.

group: 1, 2, 3.

agg_band1: continuous.

agg_band2: continuous.

agg_band3: continuous.

agg_band4: continuous.

agg_band5: continuous.

agg_band6: continuous.

agg_band7: continuous.

agg_ndsimin: continuous.

Page 139: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

135

agg_ndviave: continuous.

agg_siave: continuous.

7.See5 および個別の Cubist を実行 See5を実行して.tree ファイルを作成します。また、グループごとにシミュレーショントレーニング

データの作成および Cubist の計算を実行します。Cubist を実行する際には、.names ファイルが必要と

なるので、template.names ファイルを利用して、それぞれの,data ファイルに対応する.names ファイル

を作成して下さい。

例:

> See5.exe –f category

> sh modis_gen_simulation.sh veg_training_see5_1.csv cat1.data

1,2,3 18

> sh modis_gen_simulation.sh veg_training_see5_2.csv cat2.data

1,2,3 18

> sh modis_gen_simulation.sh veg_training_see5_3.csv cat3.data

1,2,3 18

> cubist.exe –f cat1

> cubist.exe –f cat2

> cubist.exe –f cat3

8.結果のインポート modis_import_See5.sh によって See5のツリーデータをインポートします。

例:

> modis_import_See5.sh category.tree cagetory

Page 140: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

136

図 A-1-2. インポート結果

9.グループごとの Cubist 計算結果をインポート 8で作成したグループラスタのグループごとにマスクをかけたうえで、グループごとの Cubist 計算

結果をインポートします。下記を実行します。

例:

> r.mask -o input=group_rast maskcats=1

> sh modis_import_result.sh cat1.model category 1

続いて、以下を実行して結果を統合します。

例:

> modis_integrate_result.sh

統合結果のラスタは”result_tree_cover_dep”という名前で作成されるので、名前を変更しておきます。

例:

> g.rename rast=result_tree_cover_dep,tcd1

Page 141: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

137

結果の統合を行ったとき、一部の結果ラスタの NULL 値が設定されておらず(0になっている)、白

い画像になってしまう場合があります。このような時は modis_integrate_result2.sh を使用します。これ

は結果画像を統合する前に NULL 値を再設定するように処理を追加したものです。

また、次の結果をインポートする前に、以下のようにコマンドを実行して必ず前のインポート結果

を削除しておきます。

例:

> g.mremove -f rast=”res_*”

インポート結果:

図 A-1-3. グループ 1 つをインポートした結果

以上の作業をグループ数分繰り返します。

例:

> r.mask -o input=group_rast maskcats=2

> sh modis_import_result.sh cat2.model category 2

> modis_integrate_result.sh

> g.rename rast=result_tree_cover_dep,tcd2

Page 142: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

138

> g.mremove -f rast=”res_*”

> r.mask -o input=group_rast maskcats=3

> sh modis_import_result.sh cat3.model category 3

> modis_integrate_result.sh

> g.rename rast=result_tree_cover_dep,tcd3

> g.mremove -f rast=”res_*”

10.グループごとの結果を統合 次のようにコマンドを実行し、最後にグループごとの結果を統合します。

例:

> r.patch input=”tcd1,tcd2,tcd3” output=”tcd_integrated”

実行結果:

図 A-1-4. 統合結果

Page 143: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

139

A-2.操作説明書

1.はじめに 本書で使用するスクリプトについて、処理内容、書式、使用例などを次のような形式でまとめます。

• スクリプト名

処理内容:

具体的な処理内容をこの項目に記載する

書式:

スクリプトの書式について記載する

引数は[ ]で囲って示す

スペースは、”␣”で示す

入力例:

コマンドラインへの入力例を記載する

入力エラーメッセージと対応:

エラーメッセージの出力例を記載する

対応方法について記載する

なお、スクリプトの実行にあたっては、前提となるソフトウェアが存在することもあります。必須

ソフトウェアや稼働要件に関しては、本文の2章に記載しています。

また、当スクリプトを利用した具体的な解析手法については本文の3~5章で説明しています。

Page 144: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

140

2.基本処理

2-1.MODIS データ解析環境の設定

• modis_setenv.txt

処理内容:

MODIS データ解析で使用するデータタイプ、ソフトウェアの実行ファイルやライブラリなどへ

のパスを指定して、データ解析環境を整える。

書式:

modis_setenv.txt

入力例:

> source modis_setenv.txt

Page 145: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

141

2-2.MODIS データのダウンロード

• modis_download.sh

処理内容:

タイル番号、または範囲指定した MODIS データをダウンロードする。

ダウンロード先は MODIS Combined で、/MOTA 以下のプロダクトが対象となる。

基準年の開始日から終了日までのデータに加え、基準年の前後の年の同じ日付のデータをダウ

ンロードする。

書式:

modis_download.sh␣–t␣[タイル(,タイル,タイル,,,)]␣–r␣[xmin ymin xmax ymax]␣[e-mail アドレ

ス] ␣[プロダクト名]␣[基準年]␣[開始日]␣[終了日]␣[保存先]

入力例:

例1(タイル番号オプション):

> sh modis_download.sh -t h28v04,h28v05,h29v05 [email protected]

MCD43B4.005 2012 09-01 10-31 /C/DATA/GSI_MODIS/MCD43B2

例2(範囲指定オプション):

> sh modis_download.sh –r 138.5 35.2 140.5 36.7

[email protected] MCD43B4.005 2012 09-01 10-31

/C/DATA/GSI_MODIS/MCD43B2

Page 146: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

142

2-3.投影変換・モザイク

• modis_merge.sh

処理内容:

ダウンロードした MODIS ファイル(*.hdf)をチャンネルごとに分割し、同一年月日の画像をマ

ージする。

hdf ファイルが保存されているディレクトリへ移動後に、当スクリプトを実行する。範囲の指

定はオプションで、指定しない場合はマージする画像から自動的に計算する。作成されるファ

イルは日付、チャンネルごとの画像。

また、座標変換によって生じる余白領域をマスクするための画像を生成し出力する。

書式:

modis_merge.sh␣ [出力画像の X 最小値]␣[出力画像の Y 最小値]␣[出力画像の X 最大値]␣[出力

画像の Y 最大値]

入力例:

> sh modis_merge.sh 138.5 35.2 140.5 36.7

Page 147: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

143

2-4.GRASS へのインポート

• modis_import.sh

処理内容:

GRASS に modis_merge.sh で作成された tiff ファイルをインポートする。GRASS 起動後、TIFF フ

ァイルが保存されているディレクトリへ移動し、当スクリプトを実行する。 レイヤ名はインポ

ートする TIFF ファイルから”_prj.tif”を除いたもの。インポート後、リージョンを先頭のラスタ

データの範囲・解像度に設定する。

書式:

modis_import.sh

入力例:

> sh modis_import.sh

Page 148: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

144

• landsat_import.sh

処理内容:

すでにダウンロードした Landsat の画像(tar.gz ファイル)を GRASS にインポートする。GRASS

起動後、画像を圧縮した tar.gz ファイルが保存されているディレクトリへ移動し、当スクリプ

トを実行する。 レイヤ名はインポートする.tar.gz ファイルのベース名にバンド番号が追加され

たものになる。

書式:

landsat_import.sh

入力例:

> sh landsat_import.sh

Page 149: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

145

• landsat_import_and_correct.sh

処理内容:

すでにダウンロードした Landsat の画像(tar.gz ファイル)を画像の地形補正を加えた上で

GRASS にインポートする。GRASS 起動後、画像を圧縮した tar.gz ファイルが保存されているデ

ィレクトリへ移動し、当スクリプトを実行する。 引数として、ファイル名に加え、あらかじめ

用意した標高モデル(DEM)を指定する。

書式:

landsat_import.sh␣[入力ファイル(tar.gz)]␣[DEM]

入力例:

> sh landsat_import_and_correct.sh LC81080352013283LGN00.tar.gz

dem_4326

Page 150: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

146

• landsat_apply_qc.sh

処理内容:

GRASS にインポートした複数の Landsat の画像を結合(マージ)する

書式:

landsat_apply_qc.sh

入力例:

> sh landsat_apply_qc.sh

Page 151: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

147

• viirs_import.sh

処理内容:

すでにダウンロードした VIIRS の画像(.h5ファイル)を GRASS にインポートする。GRASS 起動

後、画像を圧縮した h5ファイルが保存されているディレクトリへ移動し、当スクリプトを実行

する。 レイヤ名はインポートする.h5ファイルのベース名にバンド番号が追加されたものになる。

書式:

viirs_import.sh

入力例:

> sh viirs_import.sh

Page 152: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

148

• viirs_merge.sh

処理内容:

GRASS にインポートした VIIRS の画像のマージを行う

書式:

viirs_merge.sh

入力例:

> sh viirs_merge.sh

Page 153: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

149

2-5.雲除去

• modis_remove_cloud.sh

処理内容:

指定した年の画像に対して、QC プロダクトの情報を元に雲のピクセルを除去し、前後の日付お

よび前後の年の画像から補完する。

補完は、まず前後年の同じ日付のデータを使うか、同一年の前後のシーンを日付の近いほうか

ら使用するかのどちらを優先するか選択します。優先したデータで補完できるかを試した後、

データの補完ができない場合、優先しなかった方法でデータを検索します。例えば、下記例に

おいてはまず前後年の同じ日付のデータから、対象とする NULL ピクセルに当たる場所の値を

補完に使用する値を取り出し、加重平均で補完値を計算します。さらに残存している NULL ピ

クセルについて、同年の対象画像の前後の日付のデータより加重平均値を求めて補完を行いま

す。例えば、2013129のデータを2013113と2013161より補完する場合の計算式は、

D129=(2*D113+D161)/3のようになります。この補完値の計算式では、対象日の日付からの日数に応

じて重み付けをしています。この処理を最大で前後48日まで行います。また、同年のデータを

使って補完する場合は、対象日時を軸にそれ以前の48日、それ以降の48日、または、前後あわ

せて98日のデータを対象に補完の作業を行うか、選択できます。

書式:

modis_remove_cloud.sh

入力例:

> sh modis_remove_cloud.sh

Specify target year

2012

2012

Choose interpolation order.

1): previous/next year's data => previous/next 96 day's data

2): previous/next 96 day's data => previous/next year's data

1) 1

2) 2

Page 154: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

150

#? 1

1

Select image data of the same year to use for interpolation.

1): use previous 48 days only.

2): use next 48 days only.

3): use both 48 days.

1) 1

2) 2

3) 3

#? 3

3

---------- Your answer ------------

- Target year: 2012

- Interpolation order:

previous/next year's data => previous/next 48 day's data

- Image data to use:

use both 48 days.

Now it's ready to process. Execute (y/n) ?

y

入力エラーメッセージと対応:

対象年の入力値を間違えた場合:

対応:スクリプトを再度実行して、正しい対象年を入力

ERROR: ERROR: no image layers of target year (1999) was found.

内挿方法を選択するオプションを間違えた場合:

対応:エラーメッセージの後のプロンプトで、正しいオプション番号を選択

Invalid input

Page 155: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

151

• modis_fillnulls.sh

処理内容:

modis_remove_cloud.sh の実行後のラスタに対して、残存している NULL 値を補間する。NULL

値補間には gdal_fillnodata.py を利用した IDW による補間を行う。

当スクリプトは、modis_remove_cloud.sh で作成されたラスタデータを上書きする。上書き

される前のラスタデータは”old_”というプレフィックスが付加される。

書式:

modis_fillnulls.sh␣[年]

入力例:

> sh modis_fillnulls.sh 2013

入力エラーメッセージと対応:

対象年の入力値を間違えた場合:

対応:スクリプトを再度実行して、正しい対象年を入力

ERROR: ERROR: no image layers of target year (1999) was found.

Page 156: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

152

• landsat_interpolate.sh

処理内容:

MODIS の雲除去と同様の手順で、雲により得られない地表面の情報を他のデータから補間する。

補間のアルゴリズムは、modis_remove_cloud.sh を参照。

書式:

landsat_interpolate.sh

入力例:

> sh landsat_interpolate.sh

Page 157: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

153

3.土地被覆分類

3-1.ピクセル毎に説明変数の計算

• modis_calc_index.sh

処理内容:

指定した年の全てのシーンについて、NDVI、NDSI、SI を計算する。

書式:

modis_calc_index.sh␣[年]

出力結果:

***_ndvi : NDVI 画像、 ***_ndsi : NDSI 画像、***_si : SI 画像

入力例:

> sh modis_calc_index.sh 2013

入力エラーメッセージと対応:

対象年の入力値を間違えた場合:

対応:スクリプトを再度実行して、正しい対象年を入力

ERROR: ERROR: no images of 1999 was found.

Page 158: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

154

• modis_expand_index.sh

処理内容:

modis_calc_index.sh で計算される各種インデックス値(NDVI, NDSI は-1以上1以下、SI は0以上1

以下)と、MODIS 各バンドがとり得る値の範囲(0以上10000以下)に大きな違いがあるため、

各種インデックス値の範囲を拡大し、バンド値の範囲に合わせる。実行の結果、プレフィック

スとして expand_が付属した新しいラスタが作成される。

書式:

modis_expand_index.sh

出力結果:

***_ndvi : NDVI 画像、 ***_ndsi : NDSI 画像、***_si : SI 画像

expand_interp_MCD43B4.A2012249_ndsi

expand_interp_MCD43B4.A2012249_ndvi

expand_interp_MCD43B4.A2012249_si

入力例:

> sh modis_expand_index.sh

Page 159: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

155

3-2.トレーニング領域インポートと妥当性の検証

• modis_import_kml.sh

処理内容:

Google Earth で作成したトレーニングデータを GRASS のベクタデータとしてインポートする。

書式:

modis_import_kml.sh␣[トレーニングエリア KML]␣[GRASS ベクタ名]

入力例:

> sh modis_import_kml.sh training_area.kml training_area

入力エラーメッセージと対応:

入力ファイルを間違えた場合:

対応:スクリプトを再度実行して、正しいファイル名を入力

ERROR: ERROR: file not found : test.kml

Page 160: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

156

• modis_disphist.sh

処理内容:

指定した MODIS 画像について、トレーニングエリアの各バンドの DN 値ヒストグラムを、指定

した土地被覆コード毎に表示する。

書式:

modis_disphist.sh␣[トレーニングエリアのラスタデータ]␣[対象データの日付]␣[土地被覆コー

ド]

入力例:

> sh modis_disphist.sh training_points 2012249 1

入力エラーメッセージと対応:

入力日付及び土地被覆コードを間違えた場合:

対応:スクリプトを再度実行して、正しい入力日付及び土地被覆コードを入力

ERROR: ERROR: No layers of target date was not found [2013249]

Page 161: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

157

3-3.ディシジョンツリー

• modis_classify_dtree.sh

処理内容:

ディシジョンツリー法によりトレーニングデータを基に、ディシジョンツリールールを作成す

るための c5.0.exe 用入力ファイルを作成する。出力ファイルとして、.name および.data ファイ

ルが作成され、これらが c5.0.exe の入力ファイルになる。画像グループは、GRASS の i.group コ

マンドを利用し、あらかじめ用意しておく。

書式:

modis_classify_dtree.sh␣[トレーニングベクタ]␣[画像グループ]␣[出力ファイル名(拡張子な

し)]

入力例:

> sh modis_classify_dtree training_area target LC_JP_DT

出力例:

LC_JP_DT.name

LC_JP_DT.data

入力エラーメッセージと対応:

入力ベクタ名を間違えた場合:

対応:スクリプトを再度実行して、正しいベクタ名を入力

ERROR: ERROR: Vector map (t_area) not found

Page 162: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

158

• c5.0.exe

処理内容:

modis_classify_dtree.sh により作成された.name と.data を入力ファイルとして、ディシジョンツ

リー解析を行う。引数には、.name と.data に共通する、拡張子を除いたファイル名を「-f」の

後にオプションとして指定する。実行後、ディシジョンツリールールが.model ファイルとして

出力される。

書式:

C5.0.exe␣-f␣[入力.model ファイルベース名]

入力例:

> c5.0.exe –f LC_JP_DT

出力例:

LC_JP_DT.model

Page 163: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

159

• modis_import_See5.sh

処理内容:

ディシジョンツリールールを作成するための c5.0.exe を実行した結果作成される.model ファイ

ルを基に、実際の画像分類を行う。

書式:

modis_import_See5.sh␣[入力ツリーファイル]␣[出力ラスタ名]

入力例:

> sh modis_import_See5.sh LC_JP_DT.tree LC_JP_DT

出力例:

LC_JP_DT

入力エラーメッセージと対応:

入力ツリーファイル名を間違えた場合:

対応:スクリプトを再度実行して、正しい入力ツリーファイル名を入力

awk: ./parsetree.awk:4: fatal: cannot open file `junk' for reading

(No such file or directory)

Page 164: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

160

3-4.ランダムな検証点の発生

• modis_verify_points.sh

処理内容:

分類クラスごとに検証点を発生させる。

発生点数は各分類クラスに対する数を指定する。したがって、総点数は”分類クラス×引数で指

定した発生点数”となる。

書式:

modis_verify_points.sh␣[分類済み画像名]␣[発生点数]

出力結果:

verify_points_class_クラス番号 : クラスごとの検証点ベクタレイヤ

入力例:

> sh modis_verify_points.sh LC_Japan_reclass 1000

Page 165: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

161

3-5.検証点における精度の算出

• modis_export_kml.sh

処理内容:

modis_verify_points.sh で作成されたクラスごとのランダム点を、矩形ポリゴンの形で KML に出

力する。出力ファイルは分類クラスごとに作成される。また、セルサイズはリージョンの設定

に従う。

このスクリプトで生成されたバンドごとの KML ファイルは、uniite_kml.py を利用して1つの

KML ファイルに統合できる。KML ファイルを Google Earth で表示して、検証点における分類精

度を評価したり、KML の属性に土地被覆分類コードを書き込むことによってエラーマトリック

スを作成することが可能となる。

書式:

modis_verify_points.sh␣[出力ファイルのプレフィックス]

入力例:

> sh modis_export_kml.sh verify_cells

Page 166: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

162

• unite_kml.py

処理内容:

modis_export_kml.sh で作成されたクラスごとの KML ファイルを1つの KML ファイルとして統合

する。unite_kml.py と統合の対象となる KML ファイルは同一のディレクトリにおいておく必要

がある。また、パイソンスクリプトであるため、あらかじめパイソン実行環境が整った、

OSGeo4W Shell からこのコマンドを実行することよい。

書式:

unite_kml.py

入力例:

> python unite_kml.py

出力ファイル: all_class.kml

Page 167: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

163

• modis_check_classification.sh

処理内容:

分類結果を検証するためのデータを基に、分類結果との間でエラーマトリックスを作成する。

また同時に、結果を検証するための KML ファイルも作成する。このスクリプトで生成された

KML ファイルを Google Earth に重ねて表示することにより、検証点における分類精度を評価す

ることが可能となる。

このスクリプトで使用する検証用のデータでは、シェープファイルとして用意する必要がある。

検証用のポリゴンの属性値は、土地被覆コードを「Class」列を作成し、整数値として保存する。

書式:

modis_check_classification.sh␣[土地被覆ラスタ]␣[テスト用ベクタデータ]␣[エラーマトリック

ス名]␣[出力 KML 名]

入力例:

> sh modis_check_classification.sh LC_Japan_reclass

verify_area.shp error_matrix.txt verify.kml

入力エラーメッセージと対応:

テスト用ベクタデータが見つからない場合:

対応:スクリプトを再度実行して、正しいテスト用ベクタデータ名を入力

ERROR: Unable to open data source <c:/DATA/GSI_MODIS/moce.shp>

ERROR: ERROR: import error .

土地被覆が見つからない場合:

対応:スクリプトを再度実行して、正しい土地被覆クラスタ名を入力

ERROR: Raster map <tes> not found

Page 168: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

164

Exporting 24 geometries...

100%

v.out.ogr complete. 24 features written to <truth_temp> (KML).

Removing vector <truth_temp>

WARNING: Unable to delete file

'C:\GIS_DATA\GRASS/Japan_LatLon/MODIS/vector/truth_temp/coor'

WARNING: couldn't be removed

WARNING: <truth_temp> nothing removed

Page 169: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

165

4.樹木被覆率分類

4-1.トレーニングデータ領域における DN 値等の集計

• modis_aggregate_index.sh

処理内容:

指定した年のデータについて、modis_calc_index で作成した各インデックスラスタを集計して各

ピクセルにおいて NDVI の値が大きい順に並べ、上位3日のピクセルから NDVI、BAND1-7、SI

の各平均値および NDSI 最小値を計算する。

事前に rgdal パッケージをインストールする必要がある。

書式:

modis_aggregate_index.sh␣[対象年]

出力結果(例):

指定した年の集計ラスタデータ

agg_ndviave : NDVI の値が大きい上位3日の値の平均値

agg_band01-07 : NDVI の値が大きい上位3日の各バンドの平均値

agg_ndsimin : NDVI の値が大きい上位3日の NDSI 最小値

agg_siave : NDVI の値が大きい上位3日の SI 平均値

入力例:

> sh modis_aggregate_index.sh 2012

入力エラーメッセージと対応:

対象年を間違って入力した場合:

対応:スクリプトを再度実行して、正しい対象年を入力

Page 170: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

166

ERROR: ERROR: There is no index layers.

ERROR: Please execute modis_calc_index.sh first to create index

layers.

Page 171: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

167

4-2.シミュレーショントレーニングデータの作成

• modis_extract_dn.sh

処理内容:

トレーニングポイントにおける全シーンの各バンドおよび NDVI、NDSI、SI の値を出力する。ト

レーニングポイントのベクタレイヤは属性値として樹木被覆率を持つものとする。

書式:

modis_extract_dn.sh␣[トレーニングラスタデータ]␣[分類結果ラスタデータ]␣[出力ファイル名]

␣[発生点数]

出力結果(例):

cat,ptc,c1,c2,c3,c4,c5,c6,c7,c8,c9,・・・

8,60,372,1817,229,389,1888,1151,603,0.494805,0.2589,・・・

9,70,574,1786,432,588,1994,1414,883,0.412587,0.152941,・・・

・・・

入力例:

> sh modis_extract_dn.sh treecover2000 LC_Japan_reclass_resamp

veg_training.csv 100

入力エラーメッセージと対応:

出力ファイル名に拡張子 CSV を付け忘れた場合:

対応:スクリプトを再度実行して、ファイル名を拡張子付きで入力

ERROR: ERROR: [veg_training]; output filename must have .csv

extension.

Page 172: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

168

トレーニングラスタデータ、分類結果ラスタデータの名前を間違えた場合:

対応:スクリプトを再度実行して、マップ名を正しく入力

ERROR: Raster map <Veg_percent> not found

ERROR: ERROR: error occured in r.random, exit

Page 173: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

169

• modis_gen_simulation.sh

処理内容:

modis_aggregate_dn.sh の出力結果を元にシミュレーショントレーニングデータを作成する。シ

ミュレーショントレーニングデータは Cubist の入力形式に準拠したものである。

このスクリプトは simulation5.R を呼び出すためのもので、simulation5.R は simulation5.for を R

言語に書き換えたものである。

書式:

modis_gen_simulation.sh␣[入力ファイル名]␣[出力ファイル名]␣[TREE カテゴリ番号]␣[UB カテ

ゴリ番号]

入力例:

> sh modis_gen_simulation.sh veg_training.csv rep2 1,2,3 18

Page 174: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

170

4-3.ディシジョンツリーの作成

• cubist.exe

処理内容:

ディシジョンツリーの作成は、sh スクリプトではなく、コマンドラインから直接 cubist.exe を

実行することで行う。この exe ファイルは、.data ファイルと.names ファイルを入力として、回

帰木のモデルとなる.model ファイルを生成する。コンパイル済みの cubist.exe は/script フォル

ダに同梱されているので、PC 上の任意の場所に cubist.exe と cygwin1.dll を配置して exe ファイ

ルを実行する。

書式:

cubist.exe␣-f␣[ベースネーム]

※”ベースネーム.data”と”ベースネーム.names”の2種類のファイルがあらかじめ作成されてい

る必要がある。

入力例:

> cubist.exe –f sim

Page 175: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

171

4-4.ピクセル毎の樹木被覆率の推定

• modis_import_result.sh

処理内容:

Cubist の出力ファイルを解析して樹木被覆率の計算を行う。

書式:

modis_import_result.sh␣[入力モデルファイル名]␣[see5クラスレイヤ(オプション)]␣[クラス

番号(オプション)]

出力結果:

res_* : 樹木被覆率ラスタ。レイヤは Cubist が出力する回帰木の葉ごとに作成される。

入力例:

> sh modis_import_result.sh rep2.model

入力エラーメッセージと対応:

入力モデルファイル名を間違えた場合:

対応:スクリプトを再度実行して、正しい入力モデルファイル名を入力

awk: ./parsemodel.awk:64: fatal: cannot open file `rerere.model'

for reading (No such file or directory)

Removing raster <MASK>

Page 176: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

172

• modis_import_See5.sh

処理内容:

See5出力結果を解析してクラス分けラスタデータを作成する。

書式:

modis_import_See5.sh␣[入力ファイル(.tree)]␣[出力レイヤ]

出力結果:

カテゴリ値にクラス番号を持つラスタデータが作成される。

入力例:

> sh modis_import_See5.sh see5.tree

入力エラーメッセージと対応:

tree ファイル名を間違えた場合:

対応:スクリプトを再度実行して、正しい tree ファイル名を入力

awk: ./parsetree.awk:4: fatal: cannot open file `junk' for reading

(No such file or directory)

Page 177: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

173

4-5.推定結果の統合

• modis_integrate_result.sh

処理内容:

modis_import_result.sh の出力ラスタレイヤを統合して、最終的な樹木被覆率ラスタを作成する。

result_tree_cover_dep という名前で樹木被覆率の統合ラスタが GRASS の内部データとして作成

される。

書式:

modis_integrate_result.sh

入力例:

> sh modis_integrate_result.sh

出力(GRASS map):

result_tree_cover_dep

Page 178: 地球地図ラスタ作成ツール 操作マニュアル › geowww › globalmap-gsi › download › ...ュアルでは、GRASS GIS 6.4.3 GUI with MSYSを使用しますので、図2-2-10の様に該当する「GRASS

174

4-6.検証点における精度の算出

• modis_check_accuracy.sh

処理内容:

検証点における樹木被覆率計算結果と樹木被覆率の真値を比較するためのテーブルを CSV 形式

で出力する。

書式:

modis_check_accuracy.sh␣[真値ラスタレイヤ]␣[出力ファイル]␣[発生点数]

入力例:

> sh modis_check_accuracy.sh treecover2000 check_accuracy 200

入力エラーメッセージと対応:

真値ラスタレイヤ名を間違えた場合:

対応:スクリプトを再度実行して、正しい真値ラスタレイヤ名を入力

ERROR: Raster map <treecover20> not found

WARNING: The combination of types is not supported by all formats.

WARNING: No lines found, but requested to be exported. Will skip

this geometry type.

WARNING: No areas found, but requested to be exported. Will skip

this geometry type.

Exported table <check_acc.csv>