7  GRASS GISの統合

GRASSプラグインでは GRASS GIS [?] データベースと機能を利用できます。ここには GRASS ラスタとベクタレイヤの表示とベクタレイヤのデジタイズ、ベクタ属性の編集、新規ベクタレイヤの作成、300個以上のGRASSモジュールを使ったGRASS 2Dと3Dデータの解析を含みます。

このセクションではプラグインの機能とGRASSデータの管理と操作の例を紹介します。以下のメインの機能はGRASSプラグインを立ち上げた時にツールバーメニューで提供されています 。機能については セクション 7.1に記述されています:

 7.1  GRASSプラグインの開始
 7.2  GRASSラスタとベクタレイヤのロード
 7.3  GRASS LOCATIONと MAPSET
  7.3.1  GRASS LOCATIONの新規作成
  7.3.2  新規MAPSETの追加
 7.4  GRASS LOCATIONにデータをインポートする
 7.5  GRASSベクタデータモデル
 7.6  新規GRASSベクタレイヤを作成する
 7.7  GRASS ベクタレイヤのデジタイジングと編集
 7.8  GRASS領域ツール
 7.9  GRASSツールボックス
  7.9.1  GRASSモジュールを使った作業
  7.9.2  GRASS モジュールサンプル
  7.9.3  GRASS LOCATION ブラウザを利用した作業
  7.9.4  GRASS ツールボックスのカスタマイズ

7.1  GRASSプラグインの開始

QGISでGRASS の機能利用とGRASSベクタとラスタレイヤの表示を行いたい場合プラグインマネージャでGRASSプラグインを選択してロードして下さい。 そのためには プラグイン メニューの プラグインの管理 ,で GRASS   を選択して OK をクリックして下さい。

これで既存のGRASS LOCATION (セクション 7.2参照)からラスタとベクタレイヤをロードできます。または新規に GRASS LOCATION を QGIS (セクション 7.3.1参照) で作成してGRASS ツールボックス (セクション 7.9参照)を使って後で解析するためにいくつかのラスタとベクタデータをインポートできます (セクション7.4参照)。

7.2  GRASSラスタとベクタレイヤのロード

GRASSプラグインを利用するとツールバーメニューの適切なボタンを使ってベクタやラスタレイヤをロードすることができます。例としてQGIS alaska データセットを使ってみます(セクション 1.4参照)。 ここにはGRASSの小規模なサンプルがありあます。サンプルでは3個のベクタレイヤと1個のラスタ標高マップを保有する LOCATION があります。

1.
grassdata という新しいフォルダを作成して、 http://download.osgeo.org/qgis/data/ から QGISのalaskaデータセットqgis_sample_data.zip をダウンロードして grassdata フォルダに解凍して下さい。
2.
QGISを起動して下さい。
3.
以前のQGISセッションでロードしていない場合は メニューバーの[プラグイン]内にある[プラグインの管理]でGRASS     を選択してGRASSプラグインをロードして下さい。 ツールバーメニューに GRASSツールバーが表示されます。
4.
GRASS ツールバーで PIC [マップセットを開く]アイコンをクリックすると マップセット ウィザードが起動します。
5.
Gisdbase を作成するためにコンピュータのパスをブラウズ、選択して grassdata という新規フォルダを作成して下さい 。
6.
この時点で位置: alaska とMapset: demo を選択できるようになっているはずです。
7.
[了解]ボタンをクリックして下さい。GRASSツールバーで無効になっていたツールが有効になります。
8.
PIC [GRASSラスタレイヤを追加]アイコンをクリックして gtopo30 という地図を選択して、[了解]ボタンをクリックして下さい。標高のレイヤが表示されます。
9.
PIC [GRASSベクタレイヤの追加]アイコンをクリックして alaska という地図を選択して、[了解]ボタンをクリックして下さい。alaska境界線ベクタレイヤが gtopo30 地図の上にオーバーレイ表示されます。 ここでレイヤプロパティを 3.4 章に記述されているように調整できます。例えば透過性、塗りつぶしや外周線の色を調整できます。
10.
さらに2つのベクタレイヤ rivers airports をロードしてプロパティを調整できます。

ご覧のようにQGISでGRASSのラスタとベクタレイヤをロードする手順はとても簡単です。以下のセクションではGRASSデータの編集と新規 LOCATIONの作成について説明します。 GRASS LOCATIONs のさらに多くのサンプルはGRASS ウェッブサイト http://grass.osgeo.org/download/data.phpにあります。


QGIS Tip 34: GRASS デ
もしデータローディングに問題があったりQGISが異常終了する場合はGRASSプラグインがセクション7.1に記述されているように適切にロードされているかどうか確認して下さい。

7.3  GRASS LOCATION と MAPSET

GRASS データはGISDBASEとして参照されるディレクトリに格納されます。このディレクトリは grassdataと呼ばれ, QGISでGRASSプラグインを使った作業を行う前に 作成されていなければいけません。このディレクトリで GRASS GIS データはプロジェクトによってLOCATIONと呼ばれるサブディレクトリに格納されます。 それぞれのLOCATION は座標システム、地図投影、地理的な境界によって定義されます。それぞれの LOCATION は多くの MAPSETs (LOCATIONのサブディレクトリ) を持てます。MAPSETはプロジェクトを異なるトピック、領域、ワークスペースで分割し 独立したチームメンバーを作成します (Neteler & Mitasova 2008 [?]). ベクタとラスタレイヤをGRASSモジュールで解析するためには、それらをGRASS LOCATIONにインポートしなければいけません。 1


PIC

Figure 7.1.: alaska LOCATIONのGRASS データ (Neteler & Mitasova による調整2008 [?])


7.3.1  GRASS LOCATIONの新規作成

例としてGRASS LOCATION alaskaがどのように作られているか解説します。これは Albers Equal Area 投影法で投影されていて、フィートの単位で作成されているQGISのサンプルデータセットです。 このサンプルThis sample GRASS LOCATION alaska は全ての例と以下のGRASS GISに関する章における練習に利用されます。 これはあなたのコンピュータにダウンロードしてインストールすると便利なデータセットです 1.4).


PIC

図 7.2.: QGISで新しいGRASS LOCATIONまたは新しい MAPSET を作成する PIC


1.
QGISを起動してGRASSプラグインがロードされているかどうか確認して下さい
2.
QGIS alaska データセットの alaska.shp Shapefile を表示します (セクション 3.1.1  サンプルデータについては 1.4参照)
3.
GRASSツールバーで PIC [新しいマップセット]アイコンをクリックすると マップセット ウィザードが起動します。
4.
既存のGRASSデータベース(GISDBASE)フォルダ grassdata を選択するかコンピュータのファイルマネージャを使って新しい ロケーションを作成して下さい。 [Next >]をクリックして下さい。
5.
このウィザードは既存 ロケーションで新規 マップセットを作成するために使えます (セクション  7.3.2 参照) または一緒に新しい ロケーションを作ることもできます。 [新しいロケーションを作成]ラジオボタンをクリックして下さい(図 7.2 参照)。
6.
ロケーションの名前を入力して下さい。今回は alaska を利用して[Next]ボタンをクリックして下さい。
7.
[座標系]ラジオボタンをクリックして投影法を指定して下さい。 プロジェクションリストが利用できるようになります。
8.
今回は Albers Equal Area Alaska (feet)投影法を利用します。この投影法はEPSG ID 2964というコードで提供されているので、[search]の検索ボックスにこの番号を入力します。(注:もしこの手順を他の ロケーション に対して繰り返して行いたくて投影法とEPSG IDを記憶していない場合ステータスバーの右下の PIC [CRSステータス]アイコンをクリックして下さい (セクション 6.3 参照))。
9.
投影法を選択するために[Find]ボタンをクリックして下さい。
10.
[Next >]ボタンをクリックして下さい。
11.
デフォルトの領域を指定するために ロケーション境界を北,南,東,西の方向で入力して下さい。ここでは単に[現在のQGISの範囲を設定]ボタンをクリックして下さい。ロードされているレイヤの領域 alaska.shpが GRASSデフォルト領域になります。
12.
[Next >]ボタンをクリックして下さい。
13.
さらに新しい ロケーション内の マップセットの定義を行う必要があります。これには好きな名前をつけられます。今回はdemoにします。 2
14.
内容を確認して[Finish]ボタンをクリックして下さい。
15.
新しい ロケーション alaska と2つのマップセット demo PERMANENT が作成されました。 作業用のセットとして作成した マップセット demoを開いて下さい。
16.
GRASSツールバーでいくつか無効だったツールがここで有効になります。

ここまでの過程が煩雑だと感じる場合は、全ての作業を行う必要は無く、簡単な方法はLOCATIONを作成するだけです。 LOCATION/span> alaska はデータのインポートができます (セクション 7.4 参照)。またthe sample GRASS ロケーション alaska に含まれる QGIS alaska データセットにある既存のベクタ、ラスタデータを利用できます。 1.4 とセクション 7.5 参照。

7.3.2  新しいMAPSETを追加する

ユーザーは自分が作成したGRASS MAPSET にのみ書き込み権限を持ってアクセスできます。 このことは、他のユーザーのMAPSETを読むことはできるけれども、地図の変更や削除は自分の MAPSETに対してしか行えないことを意味します。 全ての MAPSET には WIND ファイルがあります。そのファイルには境界の座標値と現在選択されているラスタの解像度が格納されています(Neteler & Mitasova 2008 [?], セクション7.8参照).

1.
QGISを起動してGRASSプラグインがロードされていることを確認して下さい
2.
GRASSツールバーで PIC [新しいマップセット]アイコンをクリックして マップセットウィザードを起動して下さい。
3.
GRASSデータベース(GISDBASE)フォルダ grassdata を選択し、[ロケーションを選択]ラジオボタンをクリックして alaskaを選んで下さい。そこにtestという名前の マップセット を追加します。
4.
[Next >]ボタンをクリックして下さい。
5.
このウィザードを使って新しい マップセットを既存ロケーション と新規 ロケーション に同時に作成できます。[ロケーション]ラジオボタンをクリックした後(図 7.2 参照)、[Next >]ボタンをクリックして下さい。
6.
新しい マップセット の名前を テキストに入力して下さい。以下のウィザードでは既存の マップセット とそれのオーナーのリストを見ることができます。
7.
[Next >]ボタンをクリックして内容を確認した後に[Finish]ボタンをクリックして下さい。

7.4  GRASS LOCATIONへデータをインポートする

このセクションではQGIS alaskaデータセットで提供されている alaska GRASS LOCATION にラスタとベクタデータをどのようにインポートするかの例を解説します。 ここではQGIS alaskaデータセットのlandcoverラスタマップ landcover.img とベクタGMLファイルlakes.gml を利用します 1.4.

1.
QGISを起動してGRASSプラグインがロードされていることを確認して下さい。
2.
GRASSツールバーで PIC [マップセットを開く]アイコンをクリックして マップセットウィザードを起動して下さい。
3.
GRASS データベース (GISDBASE) フォルダ grassdata を選択して[位置]に alaska を選んで下さい。 [Mapset] として demo を選択して[了解]ボタンをクリックして下さい。
4.
ここで PIC [GRASSツールを開く]アイコンをクリックして下さい。GRASSツールボックス (セクション7.9 参照) が表示されます。
5.
ラスターマップ landcover.img をインポートするためには[モジュールリスト]タブで r.in.gdal をクリックして下さい。この GRASSモジュールではGDALでサポートされているラスタファイルをGRASS ロケーション に取り込むことができます。 r.in.gdal 用のモジュール画面が表示されます。
6.
QGIS araskaデータセットの raster フォルダを開いて landcover.img というファイルを選択して下さい。
7.
ラスタ出力名称を landcover_grass と指定した後で [実行]ボタンをクリックして下さい。 [出力]タブで現在実行されているGRASSコマンド r.in.gdal -o input=/path/to/landcover.img output=landcover_grass の出力を見れます。
8.
成功しました と表示されたら[出力を見る]ボタンをクリックして下さい。 landcover_grass ラスタレイヤがGRASSにインポートされQGISキャンバスに表示されます。
9.
ベクタ GML ファイル lakes.gml をインポートするために[モジュールリスト]タブで v.in.ogr をクリックして下さい。このGRASS モジュールを使うとOGRでサポートされているベクタファイルをGRASS ロケーション にインポートできます。 v.in.ogr用モジュール画面が表示されます。
10.
QGIS araskaデータセットの gml フォルダを開いて lakes.gml をOGRファイルとして選択して下さい。
11.
ベクタ出力名称を lakes_grass と指定して[実行]ボタンをクリックして下さい。 この例では他のオプションを気にする必要はありません。[出力]タブで現在実行されているGRASSコマンド v.in.ogr -o dsn=/path/to/lakes.gml output=lakes_grassの出力を見れます。
12.
成功しました と表示されたら[出力を見る]ボタンをクリックして下さい。 lakes_grass ベクタレイヤがGRASSにインポートされQGISキャンバスに表示されます。

7.5  GRASS ベクタデータモデル

デジタイジングを行う前にGRASSベクタデータモデルを理解することは重要です。 一般的にGRASSはトポロジカルベクタモデルを利用しています。 これは領域が閉じたポリゴンによってではなく1本かそれ以上の境界線によって表わされていることを意味します。 近接した領域に挟まれた境界線は1回のデジタイズで作成して両側の領域によって共有されます。境界線は必ず接続されていて隙間無しに閉じている必要があります。 領域は領域の 中心点(centroid)で識別(とラベル表示)が行われます。

境界線と中心点(centroid)の他にベクタマップではポイントとラインが利用できます。それらのすべてのジオメトリエレメントは一つのベクタに混在できますがGRASSのベクタマップ内では異なる ’レイヤ’ として表現されます。ですから GRASS のレイヤとはベクタ またはラスタマップとは異なり、ベクタレイヤ内でのレベルのことになります。このことは重要ですので慎重に区別して下さい。 3

単一のベクタデータセットに複数の ’レイヤ’を格納することは可能です。 たとえば fields, forests と lakesは一つのベクタに格納可能です。 隣接したforest と lake は境界線を共有できます、しかしそれらは異なる属性テーブルを持ちます。属性を境界線に接続することができます。 たとえばlake とforestの間の境界線が道の場合があります、その場合それが異なる属性テーブルを持ちます。

’レイヤ’の特徴はGRASS内の ’layer’で指定します。データセットに複数のレイヤがある場合 ’Layer’は番号で定義されます 。たとえばジオメトリが forest やlakeの場合です。 現在は番号で識別されます GRASS では将来ユーザーインターフェースでフィールドとして名前もサポートする予定です。

GRASS のLOCATION に属性を格納することが可能です。それはDBase または SQLITE3 またはたとえば PostgreSQL, MySQL, Oracle, のような外部データベーステーブルに格納できます。

Attributes in データベーステーブルに格納された属性はジオメトリエレメントに ’category’ の値を使ってリンクされます。 ’Category’ (key, ID) は整数でジオメトリ要素に関係つけられます、それはデータベーステーブルのキーカラムの一つにリンクされます。


QGIS Tip 35: GRASS
GRASS ベクタモデルとその機能を学習する最良の方法は多くの GRASS チュートリアルのうちベクタモデルについてさらに詳しく解説しているものを1つをダウンロードすることです 詳しい情報は http://grass.osgeo.org/gdp/manuals.php を参照して下さい。 様々な言語の書籍とチュートリアルの情報があります。

7.6  新しいGRASS ベクタレイヤを作成する

GRASSプラグインを利用して新しいGRASSベクタレイヤを作成するためには PIC [新しいGRASSベクタを作成する]アイコンをクリックして下さい。テキストボックスに名前を入力した後でポイント、ライン、ポリゴンジオメトリのデジタイジングを セクション 7.7 で記述してある方法で開始できます。

GRASS では各種のジオメトリタイプ (ポイント、ライン、ポリゴン)を1個のレイヤに格納することが可能です。なぜならば GRASS はトポロジカルベクタモデル を利用しているからです。それゆえ新しいGRASSベクタを作成する時にジオメトリタイプを選択する必要はありません。これはQGISでShapefileを作成する手順とは 異なります。なぜならばShapefileは単純な地物ベクタモデルを利用しているからです (セクション 3.5.5参照)。


QGIS Tip 36: GRASS
もしデジタイジングする地物に属性値を設定したい場合はデジタイジングを開始する前に属性テーブルとカラムを作成することを確認して下さい(図 7.7参照).

7.7  GRASS ベクタレイヤのデジタイジングと編集

GRASS ベクタレイヤのデジタイジングツールはツールバーの PICEdit GRASS vector layer アイコンで利用できます。GRASSベクタがロードされていることと凡例でそのレイヤが選択されていることを編集ツールをクリックする前に確認して下さい。 図 7.4 では編集ツールをクリックすると表示されるGRASS編集ダイアログを表示しています。 このツールと設定については後のセクションで言及しています。


QGIS Tip 37: GRASS
GRASSでポリゴンを作成したい場合、最初にポリゴンの境界線をデジタイズして下さい。その場合モードを No categoryに設定して下さい。 それから中心点(ラベルポイント)を閉じた境界線の中に追加して下さい。この時モードは Next not usedに設定して下さい。なぜならばトポロジカルベクターモデルではポリゴンの属性情報を いつも中心点にリンクしていて、境界線にリンクはしていないからです。

ツールバー

7.3はGRASSプラグインが提供する GRASS デジタイジングツールバーアイコンです。表 7.1 では利用できる機能を説明しています。


PIC

図 7.3.: GRASS デジタイジングツールバー PIC






Icon

Tool

Purpose




PIC

新規ポイント

新しいポイントをデジタイズする




PIC

新規ライン

新しいラインをデジタイズする (新しいツールを選択すると終了)




PIC

新規境界線

新しい境界線をデジタイズする (新しいツールを選択すると終了)




PIC

新規中心点

新しい中心点をデジタイズする (ラベルが存在するエリア)




PIC

頂点の移動

既存のラインまたは境界線上の1個の頂点を移動して新しい位置に置く




PIC

頂点の追加

新しい頂点を既存のラインに追加する




PIC

頂点の削除

既存のラインから頂点を削除する (別のクリックで選択頂点を確認する)




PIC

エレメントの移動

選択されている境界線、ライン、ポイントまたは中心点を移動して新しい位置をクリックする




PIC

ラインの切断

既存ラインを2つの部分に切断する




PIC

エレメントの削除

既存の境界線、ライン、ポイントまたは中心点を削除する (別のクリックでエレメントの選択を確認する)




PIC

属性編集

選択されたエレメントの属性を編集する (注 一個のエレメントは複数の地物の場合があります、上記参照)




PIC

閉じる

セッションを閉じて現在のステータスを保存します (その後トポロジーを再構築します )





表 7.1.: GRASS デジタイジングツール

カテゴリータブ

カテゴリー タブではカテゴリー0の値を新しいジオメトリエレメントに割り当てる方法を指定できます。


PIC

図 7.4.: GRASS デジタイジングカテゴリータブPIC



QGIS Tip 38: QGIS GRASS
データセットにさらにレイヤを追加したい場合 ’Field (レイヤ)’ のエントリボックスに新しい数字を入力してリターンを押してください。テーブルタブで新しいテーブルを作成して新しいレイヤに接続できます。

設定タブ

設定 タブではスナッピングをスクリーンピクセル単位で設定できます。 この閾値は新しいポイントまたはラインの端点が既存のノードにスナップされる距離を示します。 これは境界線の間に隙間を作らないようにするため利用できます。 デフォルトの設定は10ピクセルです。


PIC

図 7.5.: GRASS デジタイジング設定タブ PIC


シンボロジータブ

シンボロジー タブでは多彩なジオメトリタイプとトポロジカルステータス(例えば 閉じてる/開いている境界線)に対してシンボロジと色の定義を見ることと設定することができます。


PIC

図 7.6.: GRASS デジタイジングシンボロジータブ PIC


テーブルタブ

テーブル タブは ’layer’のデータベーステーブル情報を提供します。ここでは既存の属性テーブルに新しいカラムを加えたり 新しいGRASSベクタレイヤのために新しいデータベーステーブルを作成することができます (セクション 7.6参照)。


PIC

図 7.7.: GRASS デジタイジングテーブルタブ PIC



QGIS Tip 39: GRASS
あなたは編集したい GRASS MAPSET のオーナーである必要があります。 あなたがオーナーでない MAPSET を編集することはできません、また書き込み権限がなければいけません。

7.8  GRASS region ツール

GRASSにおけるregionの定義 (空間的な作業ウィンドウの設定) はラスタレイヤを使った作業で重要です。デフォルトで ベクタ解析処理は領域指定の制限がありません。しかし新規に作成されたラスタではそのラスタ独自の空間領域と解像度に関係なくカレントで定義されているGRASS regionの空間領域と解像度が適用されます。 カレントGRASS regionは $LOCATION/$MAPSET/WIND ファイルに格納されています。 それは北、南、東、西の境界と行と列の数、水平、垂直の 解像度で定義されています。

GRASS region をQGISキャンバスに表示/非表示する切替を PIC [現在のGRASSリージョンを表示]アイコンで行えます。 .

PIC [現在のGRASSリージョンを編集]アイコンを使ってダイアログを開き現在のリージョンを変更したり、QGISキャンバスに描画するGRASSリージョン四角形のシンボロジーを変更できます。新しいリージョンの境界や解像度を入力した後で [了解]ボタンをクリックして下さい。ここでは新しいリージョンの領域をQGISキャンバス上でのマウス操作でインタラクティブに指定することもできます。QGISキャンバス上で左クリックを行った後で四角形を描画します。マウス左ボタンの再クリックでそれを終了した後、[了解]ボタンをクリックして下さい。 g.region GRASSモジュールではラスタ解析のためにregionの領域や解像度を調整するためにさらに多くのパラメータを指定できます。セクション 7.9 で記述されているようにGRASSツールボックスでは3個のパラメータが指定できます。

7.9  GRASS ツールボックス

PICGRASS ツールボックスを開くと 選択されている GRASS LOCATION and MAPSETでGRASSモジュールの機能を利用できます。 the GRASS ツールボックスを利用するためには書き込み権限がある LOCATION MAPSET (通常はあなたが作成したMAPSETには権限があります)を開いておく必要があります。 なぜならば解析処理の結果新しいラスタまたはベクタレイヤが選択されているLOCATION and MAPSETに作成されるから書き込み権限が必要になります。

7.9.1  GRASSモジュールで作業を行う


PIC (a) モジュール ツリー  PIC (b) 検索可能な モジュール群 リスト

図 7.8.: GRASS ツールボックスと検索可能モジュールリスト PIC


GRASSツールボックスの内部にあるGRASSシェルでは殆どすべての(300以上)GRASSモジュールをコマンドラインインターフェースで利用できます。さらにユーザーフレンドリな実行環境として約200のGRASSモジュールと機能がグラフィカルダイアログで利用できます。 それらのダイアログはカテゴリに分かれていますが、簡単に検索もできます。

GRASSモジュールの完全なリストはQGISバージョン1.6.0のグラフィカルツールボックスで利用可能になり、それの解説はGRASS wiki ( http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_listに記述されています。

GRASS ツールボックスの内容をカスタマイズすることも可能です. この手順はセクション 7.9.4で解説されています。

As shown in 図 7.8にあるようにGRASSモジュール群をテーマ別にグループしたものを Modules Tree で探すことができ、さらに検索可能な Modules List タブがあります。

グラフィカルモジュールアイコンをクリックすると新しいタブが追加されツールボックスダイアログには3個の新しいサブタブが表示されます Options , Output と Manual です。 図 7.9 にあるように GRASS モジュールv.bufferを例として見て下さい。


PIC (a) モジュール Options   PIC (b) モジュール Output    PIC (c) モジュール Manual

図 7.9.: GRASS ツールボックスモジュールダイアログ PIC


Options

Options タブでは QGISキャンバスに表示するベクタ、ラスタレイヤの選択とモジュールを実行するためのパラメータの指定をするモジュールダイアログを簡素化しています。 提供されているモジュールパラメータはしばしばダイアログ上で整然としていないです。 もしさらに詳しいモジュールパラメータやフラグを利用したい場合はGRASSシェルを起動してコマンドラインからモジュールを起動して下さい。

QGIS 1.6.0 では新しい機能としてアドバンストオプションの表示 ▸ ボタンが加わり Options タブに以下のような簡素化されたダイアログが表示されます。この時点でできることはサンプル利用のために  v.in.ascii モジュールを追加するだけです。 as an example use, しかし多分将来のバージョンのQGISではさらに多くの/すべてのGRASSツールボックスモジュールが利用できるようになるはずです。これによってすべてのGRASSモジュールオプションがGRASSシェルに切り替えることなく利用できるようになります。

Output

Output タブではモジュールの出力状況情報を提供します。 Run ボタンをクリックするとモジュールは Output タブに切り替えられ、解析プロセスの情報を見ることができます。 すべてがうまく動作した場合、最後に Successfully finished メッセージが表示されます。

Manual

Manual タブにはGRASSモジュールのHTMLヘルプページが表示されます。これを利用してさらに詳しいモジュールのパラメータやフラグを調べモジュールの利用について深い知識を得ることができます。 それぞれのモジュールのマニュアルページはMain Help index, Thematic index Full indexのリンクから参照できます。これらのリンクの情報は if you use the module g.manualモジュールを使って見る情報と同じです。


QGIS Tip 40:
もし計算結果をすぐにマップキャンバスで表示したい場合はモジュールタブの下部にある ’View Output’ボタンを利用できます。

7.9.2  GRASS モジュール利用例

以下はいくつかのGRASSモジュールの力を利用した利用例です。

等高線の作成

最初のサンプルは標高ラスタ(DEM)からベクタ等高線マップを作成する例です。Alaskaデータが設定されているとして セクション 7.4で記述されている LOCATION の設定を行います。

注)QGIS 1.6.0日本語版では、GRASSツール画面の文字化けが確認されています。レファレンス中の画像と()内の説明を参考にしてください。


PIC (a) r.contour オプション  PIC (b) r.contour 出力

図 7.10.: GRASS ツールボックス r.contour モジュールPIC


この領域は広いので表示が行われるまではしばらく時間がかかります。レンダリングが終了するとラインの色を変えるためのレイヤプロパティウィンドウを開くことができます。ここで3.4にあるような方法で標高ラスタに重ねて等高線をクリアに表示させることができます。

次にAlaskaの中部の小さい山の多い地帯をズームして下さい。拡大していくと等高線が鋭い角をもっていることに気づくでしょう。 GRASSでは v.generalize ツールを使って全体の形状を保ちながらベクタマップをほっそりとさせることができます。 このツールは様々な目的のために様々なアルゴリズムを利用します。 いくつかのアルゴリズムは (たとえば Douglas Peuker と Vertex reduction) ラインからいくつかの頂点を除去して簡素化します。その結果のベクタは高速にロードできます。 このプロセスは小スケールの地図に時に不必要に高密度のベクタのベクタを使わなければいけない場合に利用します。


QGIS Tip 41:
注 QGIS fTools plugin には ジオメトリの簡素化   ツールがあり、これは GRASS のv.generalize でDouglas-Peuker アルゴリズムを利用した場合と同じです。

しかしこのサンプルの目的は違います。 r.contour で作成した等高線は鋭い角をもっているのでそれをスムーズにすべきです。 v.generalize のアルゴリズムには Chaikens がそれを行えます (また Hermite splines でもできます)。 これらのアルゴリズムはベクタに頂点を 追加 できることに注意しなければいけません、それによってデータのロードがさらに遅くなります。


PIC

図 7.11.: GRASS モジュール v.generalize でベクタマップをスムーズにする PIC



QGIS Tip 42: R.CONTOUR
上記の機能は別の場合でも利用できます。 もし降雨量のラスタマップデータがあれば同じ方法で等雨量線ベクタマップ(降雨量)を作成できます。

陰影起伏3D効果の作成

標高レイヤを表示して地図に3D効果を加える方法はたくさんあります。上記の等高線を表示する方法は地理的な地図を作成する場合に利用されるポピュラーな方法です。 3D効果を表示する別な方法として陰影起伏の利用があります。 陰影起伏効果はDEM(標高)ラスタで作成されます。最初にそれぞれのセルの傾斜と傾斜方位を計算します。それから空中の太陽の位置とそれぞれのセルの反射率を想定 します。 こうやって太陽に面して光が当たっている部分と太陽から隠れて(陰になって)いる部分が判明します。

この時点で陰影起伏のグレイスケールマップの 上に gtopo30 標高のカラーランプとtransparency の設定が表示されます。陰影起伏の表示効果を確かめるために gtopo30_shade 地図を非表示にした後で表示したりして下さい。

GRASS シェルを利用する

QGISのGRASSプラグインはモジュールやオプションについて詳しくないGRASSの初心者向けにデザインされています。それゆえいくつかのモジュールはツールボックスでオプションのすべてを表示していません、またいくつかのモジュールはツールボックスに表示されません。 GRASS シェル (またはコンソール) ではそれらのツールボックスツリーに表示されないGRASS モジュールやツールボックスのシンプルなデフォルトパラメータで表示されないモジュールのオプションを利用できます。ここの例では 上記の r.shaded.relief モジュールでの追加オプションを利用してみます。


PIC

図 7.12.: GRASS シェル, r.shaded.relief モジュール PIC


モジュール r.shaded.relief ではzmult パラメータで標高の値を X-Y 座標単位に比べて増幅させて陰影起伏の効果を増大させることができます。


PIC

図 7.13.: GRASSモジュールr.shaded.reliefで作成した陰影起伏図の表示 PIC


ベクタマップにおけるラスタ統計量

次の例ではGRASSモジュールでラスタデータを集計してベクタマップのポリゴンにその統計量をカラムとして追加してみます。

7.9.3  GRASS LOCATION ブラウザを使う

GRASS ツールボックスにあるその他の便利な機能はGRASS LOCATION ブラウザです。 図 7.14 にあるように作業をしている LOCATION MAPSETsの状況を見ることができます。

ブラウザの左側のウィンドウで現在のLOCATION内のすべてのMAPSETs をブラウズできます。右側のブラウザウィンドウでは選択されたラスタまたはベクタレイヤのメタ情報、例えば解像度、境界線領域、データソース、ベクタデータに関連する属性テーブル、コマンド履歴等が表示されます。


PIC

図 7.14.: GRASS LOCATION ブラウザ PIC


Browser タブ内部のツールバーでは以下のツールで選択した LOCATIONで操作できます:

  選択地図の名前を変える と   選択地図を削除する は選択されている MAPSETの地図に対してのみ作業できます。すべての他のツールは 他の MAPSETのラスタとベクタのレイヤに対して作業できます。

7.9.4  GRASS ツールボックスのカスタマイズ

ほとんどすべてのGRASS モジュールを GRASSツールボックスに追加できます。 XML インターフェースが提供されていてツールボックスにおけるモジュールの表示とパラメータの記述はシンプルなXMLファイルで構成されています。

モジュール v.buffer (v.buffer.qgm) のために作成されたXMLファイルの例は以下の通りです:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE qgisgrassmodule SYSTEM "http://mrcc.com/qgisgrassmodule.dtd">  
 
<qgisgrassmodule label="Vector buffer" module="v.buffer">  
        <option key="input" typeoption="type" layeroption="layer" />  
        <option key="buffer"/>  
        <option key="output" />  
</qgisgrassmodule>

モジュールを選択するとパーサは定義を読んでツールボックスの内部に新しいタブを作成します。新しいモジュールの追加、モジュールのグループの変更等に関するさらに詳しい情報は以下のQGIS wikiを参照して下さい
http://www.qgis.org/wiki/Adding_New_Tools_to_the_GRASS_Toolbox.