More Related Content Similar to FOSS4G 2011 Tokyo GRASSハンズオン Similar to FOSS4G 2011 Tokyo GRASSハンズオン (20) More from IWASAKI NOBUSUKE More from IWASAKI NOBUSUKE (20) FOSS4G 2011 Tokyo GRASSハンズオン2. FOSS4G 2011 Tokyo ハンズオンセッション
はじめに
● 本日の中身
● GRASSについて
– 特徴や歴史など。日本におけるGRASS
● GRASSの基本的操作
– データ構造について、インポート・エクスポート、
● GRASSを用いた衛星画像分析
– 東日本大震災被災地域(主に福島~宮城)における
津波浸水域の推定
3. FOSS4G 2011 Tokyo ハンズオンセッション
GRASSとは?
● 強力な解析機能を持った、オープンソースのデス
クトップFOSS4Gの代表格
● デスクトップFOSS4Gの代表格
– もうすぐ30歳!
– 現在は最新版が6.4.1。10/11に6.4.2RC
● 強力な解析機能
– ラスタ、ベクタ、画像を問わない
● オープンソース
– GPLで公開
4. GRASS: 25 28 years of GFOSS
1987
1995
USA
USA
(GRASS 1997,
2.0,
Univ. of 2002 2011/10/12
no Web!)
Hannover, ITC-irst Trento
Germany + Baylor
2010, Markus Neteler
6. Geostatistics with GRASS and R-stats
R statistical software is run inside a GRASS session:
R reads and writes data directly from/to GRASS
2010, Markus Neteler
7. FOSS4G 2011 Tokyo ハンズオンセッション
日本におけるGRASS
● 升本先生とベンカ先生
● この二人は外せない
● 大阪市大と(株)オーク
ニーによる国際化
● 現在も文科省の受託プロ
ジェクトでチュートリアル
等を作成中
● 配布したDVDに入っていま
す
8. FOSS4G 2011 Tokyo ハンズオンセッション
GRASSを使う上での基礎知識(1)
● 基本はコマンドラインで行うプログラム
● GUIは有るけど、GUIを使ってコマンドを呼び出し
ている
9. FOSS4G 2011 Tokyo ハンズオンセッション
代表的なコマンド例
コマンド 動作内容
d.rast ラスターマップレイヤーを表示、またはオーバーレイ(重ね書き)する。
d.rgb 指定した3つのラスターマップレイヤーを赤色、緑色、青色にそれぞれ対応させ
重ね合わせ表示する。
g.gisenv ユーザーの現在のGRASS変数を出力、または変更する。
g.region 対象とする地域の範囲や分解能を変更したり、標準に戻すなどの管理を行う。
r.contour ラスターマップレイヤーから、指定された高さの等高線マップを作り出す。
r.mapcalc ラスターマップレイヤーの数値演算を行う。
r.univar ラスターマップの非NULLセルから単変量統計を計算する。
v.info ベクトルマップの基本情報を出力する。
v.to.rast GRASSのバイナリーベクトルマップをGRASSのラスターマップへ変換する。
i.composite 指定した3つの画像バンドファイルからカラー合成画像を作る。
i.fft ラスター画像に対して高速フーリエ変換(FFT)を行う。
10. FOSS4G 2011 Tokyo ハンズオンセッション
GRASSを使う上での基礎知識(2)
● 独自データベースを作成し、その中に格納
● 実際はディレクトリ構造で管理
● 標準的なGISデータのファイルは使用可能
– v.in.ogrやr.in.gdalを使ってインポート
● r.externalまたはv.externalで外部ファイルも使用可
● 階層的フォルダ構造
● 上位から
– GISデータディレクトリ
– ロケーション
– マップセット
11. FOSS4G 2011 Tokyo ハンズオンセッション
データベースの説明
重要!! 重要!!
GISデータを格 測地系と座標系 実際に作業をする 実際のデータ
納しておくため を定義 単位 中を見る機会
のフォルダ 異なるものは混 PERMANENTに はほとんど無
特殊な機能は 在出来ない! は共通するデータ い
無し を格納
後で変更不可 各mapsetに個別
(+解析範囲と解像度)
データを入れる
(用途別、形式別等)
GISデータディレクトリ ロケーション マップセット ジオメトリ・属性データ
C:GIS_DATAGRASS localtion1 PERMANENT RASTER data
location2 mapset1 VECTOR data
mapset2 Volume data
13. FOSS4G 2011 Tokyo ハンズオンセッション
実習の流れ(1)
● 目標:東北地方太平洋沖地震で発生した津波で、
浸水した範囲を推定
● ロケーションとマップセットの作成
● 一番重要
● データのインポート
● ラスタデータ(LANDSAT)
● ベクタデータ(国土数値情報)
● データ表示の基礎
● ラスタとベクタの表示のしかた
14. FOSS4G 2011 Tokyo ハンズオンセッション
実習の流れ(2)
● NDWIの算出
● 津波浸水域の推定
● 二時期の画像の差分
– MASKの作成、Mapカルキュレータの使用法
15. FOSS4G 2011 Tokyo ハンズオンセッション
使用するデータ(衛星画像)
● LANDSAT 5号(TM)および7号(ETM+)
● 津波浸水域の推定
– 津波前(ETM+, 2002年4月)
– 津波後(TM, 2011年4月)
● 撮影時期が同時期の方が望ましい
16. FOSS4G 2011 Tokyo ハンズオンセッション
今回の分析 ~画像の差分~
● 左が津波前、右が津波後の画像
● この二つの画像で違う部分を抽出する
● 二時期の画像の差分を評価
17. FOSS4G 2011 Tokyo ハンズオンセッション
LANDSATデータのダウンロード
● GLOVISもしくはEarthExplorerがおすすめ
● GLOVIS http://glovis.usgs.gov/
● EarthExplorer
http://edcsns17.cr.usgs.gov/NewEarthExplorer/
● 見た目はEarthExplorer、使い勝手はGLOVIS
21. FOSS4G 2011 Tokyo ハンズオンセッション
使用するGRASSのバージョン
● GRASS 6.4SVN
● 文科省受託プロジェク
ト「FOSS4Gを活用し
た衛星データ活用のた
めのオープンリソース
の開発」の成果品
– http://www.osgeo.j
p/foss4g-mext/
– チュートリアル等も
あります
23. FOSS4G 2011 Tokyo ハンズオンセッション
インストール
● コピーした「installer_v2.0.0」フォルダの中の
「WinGRASS-6.4.SVN-r43346-1-Setup.exe」
をダブルクリック
● Vistaの場合は右クリック、「管理者として実行」
– あとは自動的に進む
24. FOSS4G 2011 Tokyo ハンズオンセッション
日本語化の実行
● 「installer_v2.0.0日本語化パッチ」の中の「日
本語化パッチの適用方法.txt」を参考に日本語化を
実行
● Vistaおよび7の場合、「Program Files」フォルダ
にコピーする際メッセージが出ますが、「続行」を
押して下さい。
26. FOSS4G 2011 Tokyo ハンズオンセッション
GRASSの起動
● GRASS 6.4 SVNをダブルクリック
● 右のような画面が出るはず
● ここで作業を行う
– GISデータディレクトリ
– ロケーション
– マップセット
を規定する
27. FOSS4G 2011 Tokyo ハンズオンセッション
復習:データベースの説明
重要!! 重要!!
GISデータを格 測地系と座標系 実際に作業をする 実際のデータ
納しておくため を定義 単位 中を見る機会
のフォルダ 異なるものは混 PERMANENTに はほとんど無
特殊な機能は 在出来ない! は共通するデータ い
無し を格納
後で変更不可 各mapsetに個別
(+解析範囲と解像度)
データを入れる
(用途別、形式別等)
GISデータディレクトリ ロケーション マップセット ジオメトリ・属性データ
C:GIS_DATAGRASS localtion1 PERMANENT RASTER data
location2 mapset1 VECTOR data
mapset2 Volume data
28. FOSS4G 2011 Tokyo ハンズオンセッション
ロケーションの作成
● GISデータディレクトリを
「C:GIS_DATAGRASS」に設定
● ロケーションウィザードをクリック
29. FOSS4G 2011 Tokyo ハンズオンセッション
ロケーションの設定
● ロケーション名は「TOHOKU_UTM54」
● 「地理参照ファイルを選択」をクリック
● 「GIS_DATAtiffL5_2011095」内の
「L5_2011_0405_B30.TIF」を選択
30. FOSS4G 2011 Tokyo ハンズオンセッション
ロケーションの設定
● 要約が出るので「終了」
をクリック
● メッセージはOKをク
リック
● 作成した
「TOHOKU_UTM54」を
選択、「PERMANENT」
をクリックして「GRASS
の起動」
31. FOSS4G 2011 Tokyo ハンズオンセッション
GRASSの画面の説明
● GRASS GISレイヤーマネージャ
● 表示するデータや処理の選択
● GRASS GIS Map Display
● データの表示
32. FOSS4G 2011 Tokyo ハンズオンセッション
ベクタファイルのインポート
● 「ベクトルデータをインポートします」をクリック
● OGRデータソース名に「shp」の中の
「ana_area.shp」を選択
● 出力するベクトルマップを「ana_area」して実行
● 終了したら閉じる
33. FOSS4G 2011 Tokyo ハンズオンセッション
データの表示
● 「レイヤマネージャのベクターマップレイヤーを
追加」をクリック
● 「入力するベクトルマップ名」で「ana_area」を
選択
● 選択などで何を表示するか決める(areaにする)
34. FOSS4G 2011 Tokyo ハンズオンセッション
データの表示
● このようにデータが表示される
● 四方向矢印で移動、虫眼鏡で拡大・縮小
● コメント矢印で属性表示
– ここで一度終了。ファイル→終了で
35. FOSS4G 2011 Tokyo ハンズオンセッション
新しいマップセットの作成
● 起動画面の「マップセットの作成」をクリック
● 「LANDSAT」と入力。これを選択して起動
36. FOSS4G 2011 Tokyo ハンズオンセッション
ラスタのインポート
● 「ラスタデータのバルクインポート」を選択
● 単独のものインポートする場合はその上
● ソースタイプは「ディレクトリ」を選択
37. FOSS4G 2011 Tokyo ハンズオンセッション
ラスタのインポート
● 「参照」ボタンをクリックしGIS_DATAの下の
「L7_2002110」を選択
● 最後がB10~50と70を選択して「インポート」
● 時間がかかります。お待ち下さい
38. FOSS4G 2011 Tokyo ハンズオンセッション
ちょっとした注意!
● 新しいマップセットは、本来はGRASSを終了させ
ることなく作れます
● が、Windows版では出来ません...
● GIS_LOCKというファイルが作られないため?
● なので、マップセットの作成や変更の際には、一
度GRASSを終了して下さい。
● ごめんなさい・・・。
39. FOSS4G 2011 Tokyo ハンズオンセッション
ラスタデータの表示
● ラスタデータの表示として二つ説明
● 単バンド画像
– 白黒の画像
● RGB合成画像
– R(赤)、G(緑)、B(青)に衛星データのバンド
を仮想的に割り当てるやり方
40. FOSS4G 2011 Tokyo ハンズオンセッション
衛星画像のバンドについて
● 波長毎にデータを記録
している
● LANDSATの場合は右
– その他はチュートリ
アルを参考
41. FOSS4G 2011 Tokyo ハンズオンセッション
単バンドデータの表示
● 「ラスタマップの追加」をクリック
● 「d.rast」で表示するマップを選択
● ここではB40を選択
44. FOSS4G 2011 Tokyo ハンズオンセッション
RGB合成バンド
● 上から
● <red>にL7_2002_0420_B30@LANDSAT
● <green>にL7_2002_0420_B40@LANDSAT
● <blue>にL7_2002_0420_B20@LANDSAT
を設定
46. FOSS4G 2011 Tokyo ハンズオンセッション
LANDSATの場合のカラー合成
● トゥルーカラー:R=band3, G=band2, B=band1
● フォルスカラー:R=band4, G=band3, B=band2
● ナチュラルカラー:R=band3, G=band4, B=band2
● 中間赤外合成::R=band7, G=band5, B=band3
● サンプルは、チュートリアルで
47. FOSS4G 2011 Tokyo ハンズオンセッション
L5のデータのインポート
● 「L5_2011095」のデータもインポート
● 「ラスタデータのバルクインポート」から
● 「GIS_DATAtiffL5_2011095」を選択
● L5_2011_0405_B20~B50をインポート
48. FOSS4G 2011 Tokyo ハンズオンセッション
ちなみに元の LANDSATデータの命名規則
● フォルダ
path row
LE71070342002110EDC00
センサー名 年 DOY
5号ならLT5 年始めから数えて何日目か
● ファイル
path row row?
● L71107034_03420020420_B10.TIF
センサー名 年 月日 バンド名
5号ならL5
● GLOVIS等からDLするとこれに準拠する
● 今回はセンサー名、日付、バンド名に変えています
50. FOSS4G 2011 Tokyo ハンズオンセッション
実習の流れ(2)
● NDWIの算出
● 津波浸水域の推定
● 二時期の画像の差分
– MASKの作成、Mapカルキュレータの使用法
51. FOSS4G 2011 Tokyo ハンズオンセッション
NDVIとNDWI
● NDVI(正規化植生指数)←よく使われる
● 植物のバイオマスや生育状況を反映
– 1~-1の値を取り、大きいほど植生が多い
band4−band3
NDVI =
band4+band3
NDWI(正規化水指数)←今回使う
● 地表面の水の状態を反映
– 1~-1の値を取り、大きいほど水分が多い
band3−band5
NDWI =
band3+band5
52. FOSS4G 2011 Tokyo ハンズオンセッション
津波浸水域の評価
● 左が津波前、右が津波後の画像
● この画像からNDWIを算出
● 津波前にNDWIが小さく、津波後に大きい所を浸水域と定義
53. FOSS4G 2011 Tokyo ハンズオンセッション
新しいマップセットの作成
● 「INDEX」というマップセットを新しく作成
● 一度GRASSを終了してから作成
– NDWIの計算結果を保存するマップセット
54. FOSS4G 2011 Tokyo ハンズオンセッション
MASKとは
● 解析範囲を限定するために使う
● 沿岸の市町村だけを対象とする
– 全体を計算するのは時間がかかるため
● ラスターからしか作れない
● 市町村境界のベクタからラスタを作成
● 上記のラスタから作成
55. FOSS4G 2011 Tokyo ハンズオンセッション
マップタイプの変換
● 「ベクトル→ラスター」をクリック
● 「入力するベクトルマップ名」に
「ana_area@PEARMANENT」
● 「出力するラスターマップ名」に「ana_area」
56. FOSS4G 2011 Tokyo ハンズオンセッション
マップタイプの変換
● 「オプション」タブを選択
● ラスター値のソースを「val」
● ラスター値を「1」
● 変換結果を表示して確認
57. FOSS4G 2011 Tokyo ハンズオンセッション
MASKの作成
● 「ラスタ」→「マスク」をクリック
● 「MASKを使用するためのラスターマップ」に先
ほどの「ana_area」を選択して実行
59. FOSS4G 2011 Tokyo ハンズオンセッション
異なるマップセットの利用
● 現在のマップセットは「IDNEX」
● そのままでは他のマップセットは使えない
● 「LANDSAT」のデータも使えるようにしたい
● NDWIの計算やデータの表示
● 「マップセット作成」をクリック
● 「LANDSAT」をチェック
60. FOSS4G 2011 Tokyo ハンズオンセッション
表示テスト
● 合成カラー表示を行う
● 「LANDSAT」の中のレイヤを選択
● 「L5_2011_0405」で、R=B30, G=B40, B=B20
● 限られた範囲だけが表示
● MASKが設定されているため
62. FOSS4G 2011 Tokyo ハンズオンセッション
地図と地図の演算
● NDWI等の算出は「地図と地図の演算」
● 「同じ場所」にあるデータの計算をする
– 単純な例は、下のような足し算
1 2 1 2 3 0 3 5 1
0 4 1
+ 1 1 1
= 1 5 2
1 3 3 4 1 3 5 4 6
64. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算式
● 計算式は下の通り
band3−band5
NDWI =
band3+band5
● 2002年4月のNDWIを計算
● 「ラスターマップの名前」をNDWI_200204
● 「関数を挿入」から「float(x)」を選択
● 「float(x)」のxを消して、「マップを挿入」から
「L7_2004_0420_B30@LANDSAT」を選択
66. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(2)
● 括弧の中に「-」記号と
「L7_2002_0420_B50@LANDSAT 」を追加
● 括弧の外に「/」を追加して分子の入力完了
68. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(3)
● 計算式を選択してコピーし、「/」の後にペースト
● 分母の括弧の中の「+」を「-」に変える
70. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(4)
● 計算結果は小数型
● 整数の方が扱いやすい
● 計算結果が整数になるように工夫
● 計算結果を1000倍
● int(x)を加える
– float(x):ラスターを小数型にする関数
– int(x):ラスターを整数型にする関数
71. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(5)
● 式全体を「()」でくくり、最後の「*1000」を加
える
● 計算式の初めに「int(x)」を入れる
● マップ演算の関数を挿入から「int(x)」を選択
● 「int(x)」の「x」を消して「)」を最後に移動
● 実行をクリック
74. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(7)
● 2011年4月のNDWIを計算
● 中の計算式をコピー
● メモ帳などのに貼り付け
75. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(8)
● 「L7_2002_0420」を「L5_2011_0405」に置
換
● 置換したものをコピー
76. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの計算(9)
● マップカリキュレータに貼り付け
● 「新しく作成する・・・」を「NDWI_201104」に
して「実行」
81. FOSS4G 2011 Tokyo ハンズオンセッション
NDWIの差を計算
● 出力ファイル名はDIFF_201104_200204
● 式には
NDWI_201104@INDEX - NDWI_200204@INDEX
と入力
82. FOSS4G 2011 Tokyo ハンズオンセッション
結果を表示
● 実際の浸水域以外にも高く出る
● 2002年のNDWIが高い所は除外する
● if(x, a, b)を使用
83. FOSS4G 2011 Tokyo ハンズオンセッション
if(x, a, b)の説明
● 条件式xを満たした場合
● aという値を取る
● それ以外はbという値をとる
● 「a」や「b」にif構文が入るのも可能
● if (x, if(y, a, b), c)といった形
86. FOSS4G 2011 Tokyo ハンズオンセッション
浸水域の計算
● 最初のxに「NDWI_200204@INDEX <=200」
● これで2002年の水面等を除外
● 次のxに「DIFF_201104_200204@INDEX
>=150」
● これで浸水域を抽出
87. FOSS4G 2011 Tokyo ハンズオンセッション
浸水域の計算
● aに「1」、bに「null()」といれる
● 条件を満たした場合は1,それ以外は値無し
● そして、実行
90. FOSS4G 2011 Tokyo ハンズオンセッション
お疲れさまでした!!
● 長丁場のハンズオン、お疲れさまでした
● この実習はあくまで「練習」です
● 今回求めた面積等はあまり正確ではありません
– エラーも多くある
● 時間の都合で、基礎的な説明をはしょっている部
分があります
● 特に「領域」(region)の概念
● 衛星利用チュートリアルに詳しく説明してあるの
で、そちらをご参考に
91. FOSS4G 2011 Tokyo ハンズオンセッション
ご意見御質問などは
● OSGeo.JPディスカスML
● http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
● アンケートにもご回答下さい
92. FOSS4G 2011 Tokyo ハンズオンセッション
ありがとうございました!
講師の連絡先
e-mail: niwasaki@affrc.go.jp
Twitter: @wata909