「2007-10-25:GRASSツールを使ってみましょう」の編集履歴(バックアップ)一覧に戻る

2007-10-25:GRASSツールを使ってみましょう - (2007/10/25 (木) 15:50:28) の編集履歴(バックアップ)


GRASSツールを使ってみましょう


今回はGRASSを使ってみましょう.
Q-GISには,プラグインとしてGRASSという解析ツールがインストールされています.

まず,Q-GISを立ち上げて,前回保存したプロジェクト「GRASS20071011.qgs」を開いてください.

1.スケールバーの変更

Q-GISの画面を見ると,右上の方にスケールバーがあると思います.
デフォルトではスケールバーはメートル単位になっていますが,私たちの使っているデータは緯度経度を使ったデータです.
そこで,このスケールバーをメートル単位から度単位にします.
  1. メニューバー「設定」をクリックし,その中にある「Project Properties」をクリックします
  2. 地図単位の「10進数の角度」を選択します
スケールバーを見て,単位が[m]から[度]になっていることを確認してください.

2.[GRASS] ロケーションの設定をする

今回使用しているバージョンのQ-GISは解析ツールGRASSがプラグインとしてインストールされています.
そこで,前回Q-GISに読み込んだ「ASTGDEM_N34_E136」をGRASSに取り込んでみましょう.
そのために,まず,ロケーションを指定する必要があります.
  1. メニューバーの「プラグイン」をクリック
  2. 「GRASS」を選択
  3. 「Open mapset」を選択
  4. 位置が「Mie」でMapsetが自分の名前であることを確認してから「了解」をクリック
これで,前回設定した「Mie」というロケーションを使って解析できるようになります.

3.GRASSのコマンド形式

GRASSのようなコマンド形式をオブジェクト指向型と言います.
これは,すでに定義されているいくつかのコマンドを組み合わせて,作業に合ったコマンドを指定することができます.

GRASSのコマンドには大きなグループがあります.
その内,Q-GISで使えるコマンドでは「r」,「v」,「g」の3つがあります.
「r」ラスターデータ(Raster)に関するコマンド
画像データなど
「v」ベクターデータ(Vecter)に関するコマンド
線,面などのポリゴン
「g」基本(General)コマンド
マニュアルの表示など

このように,グループやコマンドをピリオド(.)でつないで,コマンドを使います.
例えば,「r.in.gdal」というコマンドは「r」,「in」,「gdal」という3つの部分に分けることができます.
これは,「r」:ラスターデータに関するコマンドの中の
     「in」:インプット(データを読み込む)コマンドの中の
     「gdal」:GDAL(Geospatial Data Abstraction Library)
つまり,「GDALのデータをラスターデータとしてインプットする」という意味になります.

ちなみに,GDAL(Geospatial Data Abstraction Library)とは,「様々なラスターフォーマットをサポートしたライブラリ」で,地理情報のついたGeoTiffなどのデータを読み込むために使われています.
つまり,ここでの「GDAL」とは「GDALライブラリを使うもの全般」と言う意味になります.

4.[GRASS] ラスターデータをGRASSに取り込む

では,「ASTGDEM_N34_E136」をGRASSに取り込んでみましょう.
  1. 「Open GRASS Tools」をクリックすると,Q-GISで使えるGRASSコマンドが表示されます
  2. 「r.in.gdal」の上の方をクリック
  3. 「GDAL raster layer」が「ASTGDEM_N34_E136」であることを確認する
  4. 「Name for output raster map」を「dem」と入力し,実行します
  5. 「Successfully finished」と表示されればOK
  6. 「View output」をクリックすると表示されます
ちなみに,「手動」をクリックすると,このコマンドの説明が見れます.
英語ですが,コマンドの説明が詳しく載っていますので,一度見てみて下さい.

5.[GRASS] demのカラーテーブルを変更する

読み込んだままのdemは白黒で表示されています.
そこで,demをカラー表示させてみましょう.

ラスターデータのカラーテーブルを変更するためのコマンドは「r.colors」と言います.
このコマンドではいろいろなカラーテーブルが用意されていますが,今回は「srtm」という衛星データのカラーテーブルを使いたいと思います.
しかし,このカラーテーブルは手動で指定する必要があります.

手動でコマンド入力をするために,「モジュール」の「GRASS shell」をクリックします.
すると,コマンドプロンプトのような画面が表示されます.
ここに,次のように入力してください.
r.colors dem ru=srtm
コマンド画面に
GRASS_INFO_MESSAGE: Color table for [dem] set to srtm
GRASS_INFO_END
と表示されればOKです.
exit
「exit」と入力すると,コマンド画面が閉じます.

demは下のようなカラーで表示されます.

6.[GRASS] ベクターデータをGRASSに取り込む

ベクターデータをGRASSに取り込むために,今度は「v.in.ogr」というコマンドを使います.
このコマンドは「OGRのデータをベクター形式でインプットする」と言う意味です.
ここで,OGRとは「様々なベクターフォーマットの読み書きをサポートするライブラリ」のことで,現在ではGDALの一部とされています.

それでは,「v.in.ogr」を使ってベクターデータを取り込みます.
  1. 「GRASS Tools」の「v.in.ogr」をクリック
  2. 「OGR vecter layer」で「coast」を選択
  3. 「Name of output vecter map」に「coast」と入力し,実行
  4. 「View output」をクリックして,画面に表示
このとき,「1_line」などの名前で海岸線が出来上がっていると思います.
ちゃんと「coast」と指定したのになぜ名前が違うのかというと,すでに「coast」があったからです.

名前の変更をするためには,凡例の「coast」を右クリックし,「Rename」を選択すると変更できます.
必要ならば,「coast」と「1_line」の名前を変更するのも良いかもしれません.

7.[GRASS] 標高データを使って傾斜と傾斜方向を計算する

英語で,傾斜のことを「slope」,傾斜方向のことを「aspect」と言います.
標高データ「dem」を使って,「slope」と「aspect」を作ってみましょう.
まず,傾斜(slope)の地図を作成します.
  1. 「GRASS Tools」の「r.slope.aspect」の上の方(説明文で「Generarte slope map from DEM」と書いてある方)をクリック
  2. 「Raster elevation file name」に「dem」を選択
  3. 赤い点を4個つないだようなアイコン(Use region of this map)を選択
  4. 「Output slope filename」に「slope」を入力し,実行
  5. 「View output」をクリックして,画面に表示

続いて,傾斜方向(aspect)の地図を作成します.
  1. 「GRASS Tools」の「r.slope.aspect」の下の方(説明文で「Generate aspect map from DEM」と書いてある方)をクリック
  2. 「Raster elevation file name」に「dem」を選択
  3. 「Use region of this map」を選択
  4. 「Output aspect filename」に「aspect」を入力し,実行
  5. 「View output」をクリックして,画面に表示

8.立体的な標高データを見る

「dem」と「aspect」を使って,立体的な標高データを作ってみましょう.
  1. 凡例の一番上が「dem」,次に「aspect」になるように移動させる
  2. 「dem」を右クリックし,「Properties」を選択する
  3. 透明度を50%にする
すると,標高データが立体的に見えるようになったと思います.

傾斜や傾斜方向は断層などと関係が深いので,今回のデータに断層のデータなどをプラスして見ると面白い結果が得られるかもしれません.

今回はこれまでです.
皆さんお疲れ様でした.