Foss4 g勉強会2011

19
学部教育と研究における GRASS GIS の 利用例の紹介 名古屋大学 名古屋大学 大学院生命農学研究科 大学院生命農学研究科 山本一清 山本一清

description

FOSS4G勉強会@名古屋の山本さんの発表資料を、山本さんの依頼により代理でアップロード致しました。

Transcript of Foss4 g勉強会2011

Page 1: Foss4 g勉強会2011

学部教育と研究における GRASS GIS の利用例の紹介

名古屋大学名古屋大学大学院生命農学研究科大学院生命農学研究科

山本一清山本一清

Page 2: Foss4 g勉強会2011

学部教育編@ 2011 年度

私の担当する GIS/RS 関連科目

➢ 講義:生物環境計測学✔ 学部3年対象選択科目: RS の紹介を数コマ

➢ 実習:生物環境科学科実験実習✔ 学部3年対象必修科目(通年)の一部

✔ GIS/RS 基礎:半日(2コマ) ×6 回

✔ 対象学生数:約 40 名

Page 3: Foss4 g勉強会2011

生物環境科学科実験実習@ 2011 年度

内容( RS 編)

➢ RS 概説

➢ 衛星画像のカラー設定

➢ 合成カラー表示

➢ デジタルナンバー (DN) と放射輝度 (R)➢ 植生指標

➢ 衛星画像による植生分類(教師付き・教師なし分類)

使用データ

➢ Landsat/TM 画像(公開データ)

Page 4: Foss4 g勉強会2011

演習・課題演習の内容( RS 編の一部抜粋)

演習Ⅰ-1.様々なカラー合成表示

演習Ⅰ-2.バンド6(熱赤外域)を利用した名古屋市の地表面温度分布の解析

演習Ⅰ-5. NDVI による森林域の抽出

課題演習Ⅰ-1.教師付き分類結果の評価

課題演習Ⅰ-2.教師なし分類の各分類クラスは何を代表しているのだろう?

Page 5: Foss4 g勉強会2011

生物環境科学科実験実習@ 2011 年度

内容( GIS 編)

➢ GRASS のデータ構造

➢ ラスター Map の構造&ラスター→ベクトル変換

➢ 代表的な GRASS のラスター解析機能✔ バッファー解析機能・空間統計機能・地形解析機能他

➢ GIS による資源管理(演習)

➢ GIS による生態系管理(課題演習)

使用データ

➢ 稲武演習林の DEM 及び仮想森林データ

➢ 植生図(自然環境 GIS )

Page 6: Foss4 g勉強会2011

稲武演習林仮想森林データ

Table 1. 稲武演習林林小班データ 林班 No. 小班 優先樹種* 林齢(年) 材積 (m3)

CAT_ID SHORTNAME SCODE AGE VOLUME I 1 101 Ka 1 37 498.4 2 102 Bu 5 56 763.6 3 103 Hi 4 41 574.4 4 104 Bu 5 46 484.0 5 105 Ka 1 42 534.1 6 106 Ka 1 35 565.5 7 107 Ka 1 32 434.0

II 1 201 Ka 1 30 433.3 2 202 Ka 1 36 480.9 3 203 Hi 4 15 143.0 4 204 Ka 1 28 342.4 5 205 Bu 5 33 241.4 6 206 Ak 2 35 396.9 7 207 Hi 4 15 178.2 8 208 Bu 5 50 500.0

III 1 301 Su 3 25 562.9 2 302 Ak 2 25 482.7 3 303 Su 3 27 701.8 4 304 Hi 4 25 664.9 5 305 Su 3 38 767.3 6 306 Su 3 43 1067.0

IV 1 401 Su 3 43 1293.1 2 402 Su 3 41 1231.9 3 403 Bu 5 48 750.3 4 404 Ak 2 40 329.6 5 405 Hi 4 38 302.2 6 406 Hi 4 20 342.8 7 407 Su 3 42 535.5 8 408 Su 3 22 155.9 9 409 Bu 5 40 905.1 10 410 Hi 4 25 184.9 11 411 Su 3 46 700.4 12 412 Hi 4 20 203.9 13 413 Su 3 40 478.4

V 1 501 Su 3 26 503.0 2 502 Ak 2 33 453.3 3 503 Hi 4 35 520.6 4 504 Su 3 38 305.6 5 505 Hi 4 44 362.4

Page 7: Foss4 g勉強会2011

演習・課題演習の内容( GIS 編の一部抜粋)

演習Ⅱ-1.資源構成表の作成

演習Ⅱ-2.間伐対象の森林および木材生産に適した森林の抽出

演習Ⅱ-3.伐採作業を行う森林の抽出

演習Ⅱ-4.森林作業の容易さの評価

課題演習Ⅱ-1. GIS による希少種保護区域の推定

Page 8: Foss4 g勉強会2011

実習環境 @2011 年度

Server (Linux)➢ OpenSSH Server➢ VNC Server➢ GRASS GIS 6.4

Client PC (WindowsXP)➢ UTF-8 TeraTerm Pro

with TTSSH2➢ VNC Viewer

Internet

実習用独自サーバー× 2台

学部サテライトラボ(学生・ TA ・教員:計 40 数名)

Page 9: Foss4 g勉強会2011

独自サーバー(?)構成

ShopMade PC + α➢ CPU PhenomIIX6➢ メモリ 16GB➢ HDD 500GB➢ OS: Ubuntu Server

約 30 人が利用

ShopMade PC + α➢ AthlonX2➢ メモリ 8GB➢ HDD 500GB➢ OS: Ubuntu Server

約 13 名が利用実習開始時に大量同時アクセスすると接続に時間がかかる!来た学生から順次アクセスさせれば問題なし!

Page 10: Foss4 g勉強会2011

Client PCの画面@ 2011 年度

WindowsXP

Ubuntu Server

Page 11: Foss4 g勉強会2011

これまでの経緯

学部の GIS 教育は 10 年以上前に開始

➢ GIS 教育は、講義形式より実習・演習形式が効果的!

✔ 学生分(当時は 20 数名 ) の GIS が必要!

✔ GRASS Seeds をテキストに GRASS GISでの実習開始

✔ サテライト・ラボの PC に HDD を追加して FD起動で運用

H15 年のサテライト・ラボ更新に伴い現方式に移行

➢ PC が全学の管理下となりHDD の追加が不可に!

✔ 独自に Linux サーバーを構築し運用開始!

✔ 名古屋大学農学部版GRASS GIS テキストの作成

• GIS 編・ RS 編からなり、その後数度の改訂(一時期は、ベクトルマップのデジタイズも実施)を経て、現在学科実習書の一部

Page 12: Foss4 g勉強会2011

GIS 教育の課題

GISで何ができるか?

➢ 実習・演習である程度は教育可能?

➢ 約 40 人の演習では学生の習熟度に大きな開きが・・・

実際に GISで何かをしようと思うと!

➢ GIS上で解析する前の段階に大きなハードル

✔ GIS/RS のデータはネット上に溢れているが、形式は様々!

✔ データ形式の理解にも、相当の知識が必要!

✔ GISで利用できる形式に変換するスキルも必要!

➢ GIS のスキルだけでは GIS を実利用するのは困難✔これを短期間で教育することは困難!

➢ GIS のソフトにより操作法が大きく異なる!

Page 13: Foss4 g勉強会2011

研究編@ 2011 年度

GIS/RS 関係の研究

➢航空機 LiDAR による森林計測手法の開発

✔ <GRASS+オリジナルソフト (C)> <Ruby>⇔➢ PALSAR 画像による森林資源の把握手法の開発

✔ QGIS+GRASS➢ MODIS 画像によるシベリア域の森林変化の時系列解析

✔ <GRASS> <Ruby>⇔➢シベリア域の広域フォーシングデータの作成及び評価

✔ <GMT+R+GRASS> <Ruby>⇔

Page 14: Foss4 g勉強会2011

Rubyによる GRASS の制御@Ubuntuclass GrassScript def initialize(location,mapset,dbase) homedir=ENV["HOME"] @dbase=homedir+"/"+dbase @location=location @mapset=mapset @head=[] @head << 'echo "GISDBASE: '+@dbase+'" > $HOME/.grassrc6' @head << 'echo "LOCATION_NAME: '+@location+'" >> $HOME/.grassrc6' @head << 'echo "MAPSET: '+@mapset+'" >> $HOME/.grassrc6' @head << 'echo "GRASS_GUI: text" >> $HOME/.grassrc6' @head << "export GISBASE=/usr/lib64/grass64" @head << "export GISRC=$HOME/.grassrc6" @head << "export GIS_LOCK=$$" @head << "export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts" @head << "export LD_LIBRARY_PATH=/usr/lib64/grass64/lib" @cmds=[] end def addcmd(cmd) @cmds << cmd end def runcmd sh=open("gscripts.sh","w") sh.print @head.join("\n")+"\n"[email protected]("\n")+"\n" sh.close system("sh gscripts.sh\n") system("rm -f gscripts.sh\n") endend

GRASS は Ruby により制御

実行スクリプトを Rubyで生成して実行

GRASS は使っているが、起動はしない

初期化DataBase, Location, Mapset の

設定

コマンドの追加

コマンドの一括実行(ケース次第では並列処理も可)

Page 15: Foss4 g勉強会2011

Rubyによる GRASS の制御の一例

GRASSGRASSによる衛星画像のインポート(バイナリ形式)と処理による衛星画像のインポート(バイナリ形式)と処理

        :        :        :        :g=GrassScript.new(lpath,mpath,dpath)g=GrassScript.new(lpath,mpath,dpath)for i in 0..(bandcount-1)for i in 0..(bandcount-1)     g.addcmd("r.in.bin --overwrite"+g.addcmd("r.in.bin --overwrite"+ ・・・・・・ +"input="++"input="+ ・・・・・・ +"output="++"output="+ ・・・・・・ +"+"

north="+north="+ ・・・・・・ +" anull="++" anull="+ ・・・・・・ ))     g.addcmd('r.mapcalc "'+g.addcmd('r.mapcalc "'+ ・・・・・・ +"=if("++"=if("+ ・・・・・・ +","++","+ ・・・・・・ +',null())"')+',null())"')     g.addcmd("r.colors map="+g.addcmd("r.colors map="+ ・・・・・・ +" color=grey")+" color=grey")     g.addcmd("g.remove rast="+g.addcmd("g.remove rast="+ ・・・・・・ ))endendg.runcmdg.runcmd        :        :        :        :

Page 16: Foss4 g勉強会2011

航空機 LiDAR による森林計測手法の開発

LiDASLiDAS航空機 LiDAR

レーザーパルス反射位置のデータから● GAP の認識● 樹木個体の認識● 樹木個体の樹高推定

Page 17: Foss4 g勉強会2011

航空機 LiDAR による森林計測手法の開発

(Yamamoto et al. 2011)ALPPシステム( Yamamoto et al. 2011)

Page 18: Foss4 g勉強会2011

➢ 設定した解析エリア及び期間のデータを検索し、年月日ごとにディレクトリを作成してダウンロード

➢ HDF Tool&MRT を使ってデータタイプの自動認識&バイナリ変換し、GRASS データベースにインポート

➢ GRASS データベースの分析

✔観測地点・年月日ごとの NDVI ・ LAI ・地表面温度等の抽出&一覧表の作成

✔条件設定によるエリアの抽出や条件に合致する年月日をピクセル単位で抽出

➢ 各工程を Ruby スクリプトで自動処理✔ 解析手法の開発に集中し、後はスクリプト任せ

MODIS 画像によるシベリア域の森林変化の時系列解析

NASA(LPDAAC)

解析サーバー

Page 19: Foss4 g勉強会2011

Rubyによる GRASS の制御のメリット

決まった処理を大量に実行する場合に有効➢ 外部のツールとの連携も容易(結果の入出力で対応可)

➢最終結果まで画面表示をしないので、比較的高速!

➢それぞれのツールの得意な部分を有効に活用!✔ テキスト処理・ファイル検索・文字列パターン処理等は Ruby✔ モデルの構築等は R✔ モデルによる面的スケールアップ等は GRASS or GMT

通常の GRASS コマンド処理を、そのままRubyで書ける(入出力の指定は、Rubyでパターン化)!

➢処理の流れが残るので、部分的な処理の変更も容易!

➢処理手順が決まれば処理対象が膨大でも対応は容易!