Outdated version of the documentation. Find the latest one here.

GRASS GIS の統合

GRASS 統合は、GRASSのGISデータベースと機能へのアクセスをを提供します( 文献とWeb参照 中のGRASS-PROJECTを参照)。統合は二つの部分から構成されています:プロバイダとプラグイン。プロバイダでは、GRASSラスタとベクタレイヤーを閲覧、管理、視覚化できます。プラグインを使用すると、新しいGRASS位置と地図セット、変更GRASS領域を作成するベクトルレイヤを作成および編集、400の以上のGRASSモジュールでGRASS 2-D及び3-Dデータを分析できます。このセクションでは、プロバイダやプラグイン機能を導入し、管理し、GRASSデータでの作業のいくつかの例をあげます。

プロバイダはGRASSバージョン6および7をサポートする、プラグインは、GRASS 6,7(QGIS 2.12から開始)をサポートしています。QGIS分布はいずれかGRASS 6またはGRASS 7、または同時に(バイナリは異なるファイル名を有する)で両方のバージョンのプロバイダ/プラグインを含んでいてもよいです。プロバイダ/プラグインのバージョンは1つだけが実行時にロードすることができます。

デモデータセット

例として、QGISアラスカデータセットを使用します( サンプルデータ セクションを参照)。3つのベクターレイヤー及び1つのラスタ標高地図これは、小さなサンプルGRASS LOCATION を含みます。grassdata`と呼ばれる新しいフォルダを作成し、http://download.osgeo.org/qgis/data/からQGIS「アラスカ」データセット :file:`QGIS_sample_data.zip をダウンロードし、ファイルを grassdata に解凍します。

より多くのサンプルGRASS LOCATIONshttp://grass.osgeo.org/download/sample-data/ でGRASSのウェブサイトで入手できます。

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

プロバイダがQGISにロードされている場合、GRASSと場所の項目 grassLocation アイコンは、GRASSの場所が含まれている各フォルダの項目でブラウザツリーに追加されます。 grassdata フォルダに移動し、場所 alaska と地図セット demo を展開します。

レイヤーの項目をダブルクリックするか、地図キャンバスや凡例にドラッグ&ドロップすることで、どちらかのブラウザから任意の他のレイヤーと同様GRASSラスタとベクタレイヤーを読み込みできます。

ちなみに

GRASSデータの読み込み

GRASSの場所の項目が表示されない場合は、に検証 ヘルプ - >について - > Providers をGRASSベクトルプロバイダがロードされている場合。

ドラッグ&ドロップでのGRASS LOCATIONへのデータのインポート

このセクションでは、GRASSのマップセットにラスターおよびベクトルデータをインポートする方法の例を与えます。

  1. QGISのブラウザで、データをインポートしたいマップセットに移動します。

  2. QGISのブラウザで、GRASSにインポートするレイヤーを見つけ、ブラウザの別のインスタンス開くことができることに注意してください( ブラウザパネル(2) )ソースデータが離れすぎて、ツリー内のマップセットからある場合。

  3. レイヤーをドラッグし、ターゲット地図セットにドロップします。インポートは、大きなレイヤーのためのいくつかの時間がかかることがありますが、アニメーションアイコンが表示されます|インポート| 新たなレイヤーの項目の前にインポートが完了するまで。

Approximate (高速)または Exact (正確な)変換ラスタデータが異なるCRSにある場合、それらを使用して再投影できます。ソースラスタへのリンクが作成された場合(r.external使用して)、ソース・データは同じCRSにあり、フォーマットがGDALにはよく知られている、ソース・データ・CRSが使用されます。 GRASSオプションBrowser タブでこれらのオプションを設定できます。

ソースラスタは、より多くのバンドを持っている場合は、新しいGRASSマップはと各レイヤのために作成されます。 .<band number> 接尾辞としてすべてのマップのグループ rasterGroup アイコンが作成されます。 rasterLink 外部ラスタが別のアイコンを持っています。

QGISブラウザでGRASSデータを管理します

  • 地図をコピーする:GRASSマップは、ドラッグアンドドロップを使用して、同じ場所内マップセット間でコピーできます。

  • 地図を削除する:GRASSマップ上で右クリックしてコンテキストメニューから 削除 を選択します。

  • 地図の名前を変更:GRASS地図上で右クリックしてコンテキストメニューから Rename を選択します。

GRASSオプション

GRASSオプションは GRASS Options ダイアログ中で設定できます。このダイアログはブラウザで場所または地図セットの項目を右クリックした後、 GRASS Options を選択すると開きます 。

GRASSプラグインの起動

QGISでGRASSの機能を使用するには、プラグインマネージャーを使用してGRASSプラグインを選択し、ロードする必要があります。これを行うには、 プラグイン - > showPluginManager プラグインの管理とインストール... メニューに移動し、 checkbox GRASS を選択して [OK] をクリックします。

GRASSプラグインを起動すると、以下の主な機能は、ツールバーメニューで提供されています。

  • grassOpenMapset Open Mapset
  • grassNewMapset New Mapset
  • grassCloseMapset Close Mapset
  • grassTools GRASS Toolsを開く

  • grassRegion Display Current GRASS Region
  • options GRASS Options

GRASS地図セットを開く

GRASSの地図セットは(地図セットが何も開かれていない場合はツールが無効になっている)のプラグインでGRASSツールへのアクセスを取得するために開く必要があります。地図セットはブラウザから開くことができます:地図​​セットの項目を右クリックして、 地図セットを開く をコンテキストメニューから選択します。

GRASS LOCATIONとMAPSET

GRASSデータはGISDBASEと称するディレクトリに格納されています。このディレクトリはしばしば grassdata と呼ばれますが、QGISでGRASSプラグインで作業を開始する前に作成する必要があります。このディレクトリ内では、GRASSのGISデータは LOCATIONs と呼ばれるサブディレクトリに保存されたプロジェクトによって整理されています。各 LOCATION は、その座標系、地図投影と地理的境界によって定義されます。各 LOCATION はいくつかを持つことができます MAPSETsLOCATION のサブディレクトリ)さまざまなトピックまたはサブ領域にプロジェクトを細分化するために使用されている、または個々のチームメンバーのためのワークスペースとして(Neteler &Mitasova 2008年 文献とWeb参照 参照)。 LOCATION GRASSモジュールとベクトルとラスターレイヤーを分析するためには、一般的にGRASSにインポートする必要があります。(これは厳密には正しくない - GRASSモジュール r.externalv.external で、それらをインポートせずに外部のGDAL / OGR-サポートのデータセットへの読み取り専用リンクを作成できます。初心者がGRASSを操作するための通常の方法ではないので、この機能は、ここで説明されることはありません。)

Figure GRASS location 1:

../../../_images/grass_location1.png

alaska LOCATIONのGRASSデータ

GRASS LOCATIONへデータをインポート

データを簡単にブラウザにドラッグ&ドロップしてインポートできる方法を見つけるために、 ドラッグ&ドロップでのGRASS LOCATIONへのデータのインポート セクションを参照してください。

伝統的な方法でQGIS「アラスカのデータセットによって提供さ :file:LOCATION 、標準GRASSモジュールを使用してこのセクションでは、「アラスカGRASSに、ラスタとベクタデータをインポートする方法の例を示します。 landcover.img とベクトルGMLファイル lakes.gml QGIS「アラスカのデータセットから( サンプルデータ を参照)したがって土地被覆ラスタマップを使用します。

  1. QGISを起動し、GRASSプラグインがロードされていることを確認します。

  2. GRASSツールバーで、grassOpenMapset MAPSETを開く アイコンをクリックして、 MAPSET ウィザードを起動します。

  3. GRASSデータベースとして選択したフォルダQGISアラスカデータセットで grassdata、など LOCATION ‘アラスカ’、など MAPSET ‘デモ’ [OK] をクリック。

  4. grassTools: sup:GRASSのtoolsを開く アイコンをクリックしてください。GRASSツールボックスダイアログが表示されます(セクション GRASSツールボックス を参照)。

  5. ラスタマップ landcover.img をインポートする場合 Modules Tree タブの r.in.gdal モジュールをクリックして下さい. この GRASSモジュールは GDAL がサポートしているファイルをGRASS LOCATION にインポートします. r.in.gdal モジュールダイアログが表示されます.

  6. QGIS「アラスカ」データセット内の raster フォルダを参照して、ファイル landcover.img を選択します。

  7. ラスタの出力名称として landcover_grass を指定して [Run] をクリックして下さい. Output タブには実行しているGRASS コマンド r.in.gdal -o input=/path/to/landcover.img output=landcover_grass が表示されます.

  8. 正常に終了 と言われたとき、 [表示出力] をクリックしてください。 landcover_grass ラスタレイヤは現在、GRASSにインポートされ、QGISキャンバスに可視化されます。

  9. ベクトルGMLファイル lakes.gml をインポートするには モジュールTree タブのモジュール v.in.ogr をクリックします。 LOCATION をこのGRASSモジュールを使用すると、GRASSにOGR-サポートベクトルファイルをインポートできます。 v.in.ogr のモジュールダイアログが表示されます。

  10. QGIS「アラスカ」データセット内の gml フォルダを参照し、OGRファイルとして :file:` lakes.gml` ファイルを選択します。

  11. ベクトル出力名として、 lakes_grass を定義し、 [実行] ファイル名を指定してをクリックしてください。この例では、他のオプションを気にする必要はありません。 Output タブには、現在実行中のGRASSコマンド v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass が見えます。

  12. それは 正常に終了した と言うときは、 ** [出力表示]** をクリックしてください。 lakes_grass ベクトルレイヤーは現在、GRASSにインポートされ、QGISキャンバスに可視化されます。

新しいGRASS LOCATIONの作成

例として、これはサンプルのGRASS LOCATIONのalaska、単位としてフィートを使用して、アルバース等積投影に投影され、です。このサンプルGRASS LOCATIONのalaska は、以下のGRASS関連のセクションのすべての例と演習のために使用されます。( サンプルデータ を参照)、コンピュータ上のデータセットをダウンロードしてインストールするのに便利です。

  1. QGISを起動し、GRASSプラグインがロードされていることを確認します。

  2. 可視化 alaska.shp`シェープファイル(セクション :ref:`vector_loading_file 参照)をQGISアラスカデータセットからの( サンプルデータ 参照)。

  3. In the GRASS toolbar, click on the grassNewMapset New mapset icon to bring up the MAPSET wizard.
  4. 既存の GRASS データベース (GISDBASE) フォルダ grassdata を選択するかあなたのコンピュータのファイルマネージャを使って新しい LOCATION を作成して下さい. それから [Next] をクリックして下さい.

  5. このウィザードを使用して、新しいを作成するには、LOCATION`(セクション :ref:`sec_add_mapset を参照)にするか、新しい作成する完全に LOCATION`を既存の内 MAPSET`できます。 radioButtonOn 新しいlocationを作成 を選択します( figure_grass_location_2 を参照)。f

  6. Enter a name for the LOCATION – we used ‘alaska’ – and click [Next].
  7. 投影リストを有効にするラジオボタン radioButtonOn Projection をクリックして投影を定義します。

  8. 私たちはアルバース等積アラスカ(フィート)投影を使用しています。それはEPSGのID 2964によって表されていることを知ることが起こるので、検索ボックスに入力します。(注意:別のために、このプロセスを繰り返したい場合は、次の LOCATION と投影とEPSG IDを記憶していないが、上のクリック projectionEnabled :sup:右下隅にある CRS Status アイコン)ステータスバーの( 投影法の利用方法 セクションを参照)。

  9. In Filter, insert 2964 to select the projection.
  10. [次へ] をクリックして下さい.

  11. 南北、東西方向に LOCATION 境界デフォルトの領域を画定するために、入力する必要があります。GRASSのデフォルト領域の範囲として alaska.shp ここでは単に [現在のQGISの範囲を設定する] ロードされたレイヤーの範囲を適用するには、ボタンをクリックしてください。

  12. [次へ] をクリックして下さい.

  13. LOCATION 新しいを作成するときに、これが必要です) LOCATION 私たちの新しい内の MAPSET また、定義する必要があります。それには好き名前を付けられます - ここでは「デモ」を使用しました。GRASSは PERMANENT と呼ばれる特別な MAPSET を自動的に作成します。それにはプロジェクトのコアデータ、そのデフォルトの空間的範囲および座標系定義を格納するように設計されています( 文献とWeb参照 中のNeteler&Mitasova 2008を参照)。

  14. 確認してくださいそれが正しいだ作ると概要をチェックして [完了] をクリックしてください。

  15. 新しい LOCATION ‘alaska’ と2つの MAPSETs ‘demo’ と ‘PERMANENT’ が作られました. 現在オープンされているワーキングセットはあなたが定義した ‘demo’ です.

  16. GRASSツールバーのそれまでは利用できなかったいくつかのツールが利用可能になっています.

Figure GRASS location 2:

../../../_images/create_grass_location.png

Creating a new GRASS LOCATION or a new MAPSET in QGIS

LOCATION それはステップの多くのように思えたならば、それは本当にすべてが悪いと作成するための非常に簡単な方法はありません。 LOCATION ‘アラスカ’ は、データのインポートのための準備ができました( GRASS LOCATIONへデータをインポート セクションを参照)。QGIS「アラスカ」データセット サンプルデータ に含まれるサンプルのGRASS LOCATION ‘alaska’ 中の既存のベクトルとラスターデータも使用できます、そしてセクションに移動します :ref:` label_vectmodel` 。

新しいMAPSETの追加

MAPSET 彼または彼女が作成したユーザーはGRASSへの書き込みアクセス権を持ちます。これは、あなた自身の MAPSETs へのアクセス以外にも他のユーザーの MAPSET 中の地図を読める(そして彼らはあなたのを読むことができる)ことを意味しますが、あなた自身の MAPSET 中の地図だけを変更したり削除できます。

すべての MAPSETs には WIND ファイルが含まれ,そこには現在の領域の座標値と選択されているラスタの解像度が格納されています (Neteler & Mitasova 2008 文献とWeb参照, セクション GRASS領域ツール 参照).

  1. QGISを起動し、GRASSプラグインがロードされていることを確認します。

  2. In the GRASS toolbar, click on the grassNewMapset New mapset icon to bring up the MAPSET wizard.
  3. さらに MAPSET の ‘test’ をするため LOCATION ‘alaska’ の GRASS データベース (GISDBASE) フォルダ grassdata を選択して下さい.

  4. [次へ] をクリックして下さい.

  5. このウィザード使用して、既存の LOCATION 内に新しい MAPSET を作成、または完全に新しい :file:` LOCATION` に作成できます。ラジオボタン radioButtonOn 場所を選択 をクリックして( figure_grass_location_2 を参照)、 [次へ] をクリックします。

  6. 新しい MAPSET のための名前 text を入力します。 MAPSETs と対応する所有者ウィザードの下に、既存のリストが見えます。

  7. [次へ] をクリックして、それはすべて正しいです確認するために、要約をチェックアウトし、 [完了] をクリックしてください。

GRASSベクターデータモデル

デジタル化に先立って GRASSベクトルデータモデル を理解することが重要です。一般的には、GRASSは、トポロジカルベクトルモデルを使用しています。これは、領域が閉じられた多角形としてではなく、一つ以上の境界線で表現されることを意味します。二つの隣接する領域間の境界は一度だけデジタル化され、それは、両方の領域によって共有されています。境界は隙間なく接続され閉じている必要があります。領域は、領域の 重心 によって同定(および標識)されます。

境界と重心のほか、ベクトル地図はまた、点と線を含めることができます。これらのすべての幾何学要素は、一つのベクトルで混合することができる一のGRASSベクトルマップ内の異なるいわゆる「レイヤー」で表されます。だからGRASSにおいては、レイヤーはベクトルまたはラスタマップが、ベクトルレイヤーの内部レベルではありません。これは慎重に区別することが重要です。(これはジオメトリ要素を混合することは可能であるが、それは異常であるともGRASSにのみこのようなベクトルネットワーク解析などの特別な場合に使用される。通常は、異なるレイヤーに異なるジオメトリ要素を格納することを好むべきです。)

1つのベクトルデータセット内のいくつかの「レイヤー」を格納できます。例えば、フィールド、森林、湖は、一つのベクトルに格納できます。隣接する森と湖には同じ境界を共有できますが、それらは別々の属性テーブルを持っています。境界に属性を付けることも可能です。例では、湖と森との境界が道路である場合がありますので、異なる属性テーブルを持つことができます。

フィーチャの「レイヤー」GRASS内部「レイヤー」によって定義されます。「レイヤー」は(ジオメトリが森や湖であれば、例えば)データセット内の複数のレイヤーがある場合に定義する数値です。今のところ、それは数にだけできます。将来的には、GRASSは、ユーザインターフェース内のフィールドとして名前をサポートします。

属性はGRASS LOCATION 内部にdBase、SQLite3として、または外部データベーステーブル 、例えば、PostgreSQL、MySQL、Oracleなどに格納できます。

データベーステーブルの属性とリンクされたジオメトリエレメントを ‘カテゴリ’ 値として使ってます.

「カテゴリー」(キーID)がジオメトリプリミティブに取り付けられた整数であり、そしてそれは、データベーステーブル内の1つのキー列へのリンクとして使用されます。

ちなみに

GRASSベクターモデルについて調べる

GRASS ベクタモデルとその機能について学習する最良の方法はベクタモデルについてさらに深く記述されている GRASSチュートリアルをダウンロードすることです. http://grass.osgeo.org/documentation/manuals/ に様々な言語での本やチュートリアルが記述されています.

新しいGRASSベクターレイヤーの作成

新しいGRASSベクタレイヤーを作成するには、ブラウザでマップセットコンテキストメニューから次の項目のいずれかを選択します。

  • 新しいポイントレイヤー

  • ニューラインレイヤー

  • 新規ポリゴンレイヤ

そして、ダイアログに名前を入力します。新しいベクトル地図が作成され、レイヤーは、キャンバスや編集開始に追加されます。レイヤーの種類を選択すると、ベクトル地図にデジタル化できジオメトリタイプを制限するものではありません。GRASSでは、1つのベクトル地図のジオメトリタイプ(点、線、多角形)のすべての種類を整理することが可能です。タイプはQGISは特定のタイプを持っているレイヤーを必要とするので、キャンバスにレイヤーを追加するために使用されます。

既存のベクトル地図のコンテキストメニューから、上記項目のいずれかを選択し、既存のベクトル地図にレイヤーを追加することも可能です。

GRASSでは、GRASSはトポロジカルベクトルモデルを使用していますので、新しいGRASSベクトルを作成するときにジオメトリタイプを選択する必要はありませんので、1レイヤーでジオメトリタイプのすべての種類(ポイント、ラインおよびエリア)を整理することが可能です。シェープファイルは、( 新しいベクタレイヤの作成 の項を参照)シンプル地物ベクトルモデルを使用するので、これは、QGISでのシェープファイルの作成と異なっています。

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

GRASSベクトルレイヤーは、ツールをデジタル化し、標準QGISを使用してデジタル化できます。しかし以下のためにいくつかの特殊性はがあり、これらは知っておくべきでしょう:

  • GRASS topological model versus QGIS simple feature
  • complexity of GRASS model
    • 単一の地図で複数のレイヤー

    • 単一地図内の複数のジオメトリタイプ

    • 複数のレイヤーからの複数の機能により、ジオメトリを共有します

The particularities are discussed in the following sections.

保存、やり直し、元に戻す、変更を破棄

警告

編集中に行われたすべての変更は、すぐにベクトルマップおよび関連属性テーブルに書き込まれます。

変更は、各操作の後に書かれている、取り消し/やり直しや編集を閉じるときにすべての変更を破棄しないために、しかし可能です。取り消しまたは変更を破棄が使用される場合、元の状態がベクトル地図と属性テーブルに再び書き込まれます。

この動作のための2つの主な理由があります:

  • これは、ユーザーは自分がしていることがやりたいことであるという信念から来るGRASSベクトルの性質であると作業が突然中断されたときには、データが保存されている方が良いです(例えば、停電)

  • 位相幾何学的データの効果的な編集のための必要性がトポロジー的正しさについての情報を可視化する変更が地図に書き込まれている場合、そのような情報は、GRASSベクター地図から取得できます。

ツールバー

GRASSレイヤーが編集されたときに「デジタル化ツールバーは、」いくつかの特定のツールがあります。

アイコン

ツール

目的

capturePoint

新しい点

新しい点をデジタイズ

captureLine

新しいライン

新しいラインをデジタイズ

captureBoundary

新しい境界

新しい境界をデジタル化

captureCentroid

セントロイドの新規作成

新しいセントロイドをデジタイズ (ラベルのあるエリア)

capturePolygon

新閉じた境界

新しい閉じた境界をデジタル化

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

ちなみに

GRASSポリゴンをデジタイズ

GRASSでポリゴンを作成する場合は、最初にのポリゴンの境界をデジタル化します。その後、閉じた境界に重心(ラベルポイント)を追加します。この理由は、トポロジカルベクトルモデルはポリゴンの属性情報を、境界に対してではなく、常に重心に対してリンクしていることです。

カテゴリー

カテゴリー、しばしばcatと呼ばれる、はIDの一種です。名前はGRASSベクトルのみが単独で「カテゴリ」属性持っていた時代から来ています。カテゴリーは、ジオメトリと属性の間のリンクとして使用されています。単一の幾何学的形状は、複数のカテゴリを有し、したがって異なるレイヤーに複数の地物を表すことができます。現在はQGIS編集ツールを使用してレイヤーごとに1つだけのカテゴリを割り当てることが可能です。新機能は、自動的に境界線を除いて、新しいユニークなカテゴリが割り当てられています。境界は、通常は、異なるレイヤーで、たとえば、後で境界の属性を定義することが可能である、領域を形成し、リニアな特徴を表すものではありません。

新しいカテゴリーは、常に現在編集中のレイヤーにのみ作成されます。

QGIS編集を使用してジオメトリに複数のカテゴリを割り当てることができません、そのようなデータは複数の地物つぃて適切に表され、個々の地物は、異なるレイヤーからであっても、削除できる。

Attributes

現在編集レイヤーの属性のみを変更できます。ベクトル地図はより多くのレイヤーが含まれている場合は、他のレイヤーの地物は「<not editable (layer #)>」に設定されているすべての属性を持っています「そのような属性が編集できないことを警告します。その理由は、他のレイヤーを有し、通常QGISのみレイヤーあたりのフィールドのいずれかが固定セットをサポートしながら、フィールドの異なるセットを有することができること、です。

原始的なジオメトリはカテゴリが割り当てられていない場合は、新しいユニークなカテゴリが自動的に割り当てられ、そのジオメトリの属性が変更されたとき、属性テーブルに新しいレコードが作成されます。

ちなみに

フィールド演算 )「フィールド電卓」を使用して、たとえば、テーブル内の属性の一括更新を行いたい場合は、(通常は境界)を更新したくないカテゴリのない機能がありますが、「詳細Filter」 catはNULLでない を設定することによりフィルタで除外できます、。

編集スタイル

トポロジカルシンボルは、位相幾何学的データの効果的な編集のために不可欠です。開始を編集する場合は、専門の「GRASS編集」レンダラをレイヤーに自動的に設定され、編集が閉じているときに、元のレンダラが復元されます。スタイルは、レイヤーのプロパティ「スタイル」タブでカスタマイズできます。スタイルもプロジェクトファイルまたは任意の他のスタイルとして個別のファイルに保存できます。スタイルをカスタマイズする場合編集が再び開始されたスタイルをリセットするために使用されているので、その名前を変更しないでください。

ちなみに

レイヤーが編集されたときに、プロジェクトファイルを保存しないでください、レイヤーは「編集スタイル」で格納されますが、レイヤーが編集されていない場合には意味がありません。

スタイルは一時的にフィールド「topo_symbol」としてテーブルを属性に追加されたトポロジ情報に基づいています。編集が閉じられたときにフィールドが自動的に削除されます。

ちなみに

属性テーブルから「topo_symbol」フィールドを削除しないでください、レンダラーがその列に基づいているため、地物が見えなくなるでしょう。

スナップ

エリアを形成するためには、接続された境界の頂点は 正確 に同じ座標を持っている必要があります。これは、キャンバスとベクトル地図は同じCRSを持っている場合にのみ、スナップツールを使用して達成できます。そうでない場合は、地図から起因変換は座標、キャンバス及び背面に座標により表現誤差およびCRS変換にわずかに異なってくることができます。

ちなみに

編集するときはキャンバスについてもレイヤーのCRSを使用してください。

Limitations

同時に同じベクター内の複数のレイヤーを同時編集することはサポートされていません。これは、単一のデータソースのスタックを元に戻す主に複数の処理が不可能であることに起因します。

nix osx LinuxおよびMac OSX上ではGRASSレイヤーを一度に一つだけ編集できます。これは、ランダムな順序でデータベースドライバを閉じられないというGRASSのバグによるものです。これは、GRASSの開発者によって解決されています。

ちなみに

GRASS編集権限

編集を行いたい場合あなたは GRASS MAPSET のオーナーにならなければいけません. あなたが所有する以外の MAPSET に属するレイヤはファイルに書き込み権限を持っていても編集できません.

GRASS領域ツール

GRASSの領域定義(空間的な作業ウィンドウを設定)は、ラスタレイヤを操作するために重要です。ベクトル解析は、任意の定義された領域の定義に限定されるものではなく、デフォルトです。しかし、すべての新しく作成されたラスタは、元の拡張および解像度にかかわらず、現在定義されてGRASS領域の空間的な拡張と解像度を持つことになります。現在のGRASS領域に格納されている $LOCATION/$MAPSET/WIND ファイルを、それが列と行、水平方向および垂直方向の空間分解能の南、北、東と西の境界、数を定義します。

grassRegion 使用してスイッチを入れるとQGISキャンバスでGRASS領域の可視化をオフすることが可能です 現在のGRASSのregion ボタンを表示します。

領域は「GRASS通行料」ドックウィジェットの「地域」タブで変更できます。新しい領域境界と解像度を入力し、クリックして [適用][キャンバスにドラッグして範囲を選択] をクリックすると、長方形をドラッグQGISキャンバス上のマウスを使って対話的に新しい領域を選択できます。

GRASSモジュール g.region はラスタ解析のための適切な領域の広がりと解像度を定義するための多くのパラメータを提供します。 GRASSツールボックス セクションで説明した、GRASSツールボックスでこれらのパラメータを使用できます。

GRASSツールボックス

The grassTools Open GRASS Tools box provides GRASS module functionalities to work with data inside a selected GRASS LOCATION and MAPSET. To use the GRASS Toolbox you need to open a LOCATION and MAPSET that you have write permission for (usually granted, if you created the MAPSET). This is necessary, because new raster or vector layers created during analysis need to be written to the currently selected LOCATION and MAPSET.

Figure GRASS Toolbox 1:

../../../_images/grass_toolbox_moduletree.png

GRASSツールボックスおよびモジュールツリー

GRASSモジュールを使用します

The GRASS shell inside the GRASS Toolbox provides access to almost all (more than 300) GRASS modules in a command line interface. To offer a more user-friendly working environment, about 200 of the available GRASS modules and functionalities are also provided by graphical dialogs within the GRASS plugin Toolbox.

QGISのバージョン 2.14 では、グラフィカルツールボックスで利用できるGRASSモジュールの完全なリストhttp://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_listでGRASSのwikiで利用可能です。

GRASS ツールボックスの内容をカスタマイズできます. この機能は セクション GRASSツールボックスのカスタマイズ に記述されています.

モジュールTree または検索可能 モジュールList タブfigure_grass_toolbox_1_に示すように、テーマ別にグループ化を使用して、適切なGRASSモジュールを探すことができます。

OptionsOutputManual グラフィカルモジュールアイコンをクリックすると、新しいタブが3つの新しいサブタブを提供し、ツールボックス]ダイアログボックスに追加されます。

オプション

Options ]タブでは、通常、QGISキャンバスに可視化されたラスタまたはベクタレイヤーを選択し、モジュールを実行するために、さらにモジュール固有のパラメータを入力でき、簡略化モジュールダイアログを提供します。

Figure GRASS module 1:

../../../_images/grass_module_option.png

GRASSツールボックスモジュールのオプション

提供モジュールパラメータは、多くの場合、ダイアログシンプルに保つために完全ではありません。さらにモジュールパラメータとフラグを使用する場合は、GRASSのシェルを起動し、コマンドラインでモジュールを実行する必要があります。

QGIS 1.8以降の新機能は、次のサポートです Options タブで単純化されたモジュール]ダイアログ以下の 高度なOptionsを表示 ボタン。使用例として v.in.ascii が、それはおそらくよりの一部またはQGISの将来のバージョンでGRASSツールボックス内のすべてのモジュールになります。現時点では、それが唯一のモジュールに追加されます。これはGRASSのシェルに切り替える必要がなく、完全なGRASSモジュールオプションを使用できます。

出力

Figure GRASS module 2:

../../../_images/grass_module_output.png

GRASSツールボックスモジュール出力

Output タブは、モジュールの出力状態に関する情報を提供します。 Output タブと分析プロセスについての情報を参照してください、 [ファイル名を指定して実行] ボタンにモジュールスイッチをクリックすると。すべてがうまく機能すれば、最終的に 成功しました終了 メッセージが表示されます。

マニュアル

Figure GRASS module 3:

../../../_images/grass_module_manual.png

GRASS Toolbox Module Manual

Manual タブがGRASSモジュールのHTMLヘルプページを示しています。さらにモジュールパラメータとフラグをチェックしたり、モジュールの目的についてのより深い知識を得るためにそれを使用できます。 メインヘルプindexテーマ別index全index 各モジュールのマニュアルページの最後に、へのさらなるリンクを参照してください。 g.manual これらのリンクは、モジュールと同じ情報を提供します。

ちなみに

結果をすぐ表示

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

GRASSモジュールの例

以下の例はいくつかの GRASS モジュールの力をデモンストレートします.

等高線の作成

最初の例では、標高ラスタ(DEM)からベクトル等高線地図を作成します。 セクション GRASS LOCATIONへデータをインポート で説明したように、ここでアラスカ LOCATION 設定を持っていることを想定しています。

  • まず、 grassOpenMapset mapsetを開く ボタンクリックしてアラスカの場所を選択することで場所を開きます。

  • ここで grassTools GRASSツールを開く ボタンでツールボックスを開きます。

  • ツールカテゴリのリストで、 ラスター - >サーフェス管理 - >ベクトル輪郭linesを生成 をダブルクリックします。

  • 今ツール r.contour をシングルクリックすると、上述したように、[ツール]ダイアログが開きます( GRASSモジュールを使用します を参照)。

  • 入力ラスタ地図の名前gtopo30 を入力します。

  • インクリメント輪郭levels間selectNumber 値100を入力します(これは、100メートルの間隔で等高線を作成します。)

  • Type into the Name for output vector map the name ctour_100.
  • プロセスを開始する [ファイル名を指定して実行] をクリックしてください。メッセージは に成功finished 出力ウィンドウに表示されるまでしばらく待ちます。その後 [表示出力][閉じる] をクリックしてください。

これは大規模な領域であるので、それが表示されるまでに数分かかるでしょう。 ベクタープロパティダイアログ それはレンダリングを完了したら、輪郭がのように、標高ラスタの上に明確に表示されるように線の色を変更するにはレイヤのプロパティウィンドウを開くことができます。

次に、アラスカ州の中心部にある小さな、山岳地帯にズームイン。近くにズームすると輪郭が鋭い角を持っていることがわかります。GRASSではそれらの全体の形状を維持しながら、少しベクトルマップを変更する v.generalize ツールを提供しています。このツールは、異なる目的を持ついくつかの異なるアルゴリズムを使用しています。アルゴリズムの一部(すなわち、ダグラス・ペウカーおよび頂点削減)は、頂点の一部を除去することにより、ラインを簡素化します。得られたベクターは、より速くロードされます。非常に詳細なベクトルを持っている場合、このプロセスは便利ですが、非常に小さい縮尺の地図を作成しているので、詳細は不要です。

ちなみに

シンプル化ツール

ちょうどGRASS v.generalize ダグラス・Peukerアルゴリズムのように動作します ツール - >ジオメトリを簡素化 QGIS fToolsプラグインがあることに注意してください。

しかし、この例の目的は異なっています。 r.contour によって作成された等高線には鋭い角があって滑らかにする必要があります。 v.generalize アルゴリズムの中で、Chaikenがあり、ちょうどそれをします(エルミートスプラインも)。これらのアルゴリズムはそれがさらに緩やかにロードさせ、ベクトルに追加の頂点を 追加 できることに注意してください。

  • GRASSツールボックスを開き、カテゴリをダブルクリックしてください ベクトルを - >マップを開発 - > Generalization は、そのオプションウィンドウを開くために v.generalize モジュールをクリックしてください。

  • 入力vectorの名前 として「ctour_100」ベクトルが表示されていることを確認してください。

  • アルゴリズムのリストから、Chaikenのを選択してください。他のすべてのオプションをデフォルトのままにして、最後の行までスクロールし、フィールド 出力ベクトルmapの名前 に「ctour_100_smooth」と入力し、 [実行] をクリックします。

  • このプロセスはいくらか時間がかかります。 成功終了 と出力ウィンドウに表示されたら、 [表示出力] を、そしてその後 [閉じる] をクリックします。

  • ラスタ背景に明確に表示するために、元の等高線と対比するためのベクターの色を変更してもよいです。元の全体的な形状に忠実に滞在しながら、新たな等高線は元々のものより角がなめらかであることがわかります。

Figure GRASS module 4:

../../../_images/grass_toolbox_vgeneralize.png

ベクターマップを平滑化するGRASSモジュールv.generalize

ちなみに

その他にr.contourも使えます

上記の手順は、他の同等の状況で使用できます。降水量データのラスター地図を持っている場合は、例えば、同じ方法がisohyetal(一定の降雨量)ラインのベクトルマップを作成するために使用されます。

陰影3D効果の作成

いくつかの方法は、標高レイヤを表示し、地図に3-D効果を与えるために使用されます。上記のような等高線の使用は、多くの場合、地形図を生成するために選択される1つの一般的な方法です。3-D効果を表示するための別の方法は、陰影起伏によるものです。陰影起伏効果は最初、空での太陽の位置をシミュレートし、各セルに反射率値を与え、その後、各セルの傾きと傾斜方向を計算することにより、DEM(標高)ラスタから作成されます。したがって、太陽に面した斜面が点灯取得します。(影で)太陽から離れて面する斜面を暗くしています。

  • gtopo30 標高ラスタをロードすることによって、この例を始めます。GRASSツールボックスを起動し、ラスターカテゴリの下、ダブルクリックして開きます 空間分析 - >地形analysis

  • それからモジュールをオープンするために r.shaded.relief をクリックして下さい.

  • 方位angle selectNumber 270から315に変更します 。

  • 新しいヒルシェードラスタとして gtopo30_shade と入力して [Run] をクリックして下さい.

  • プロセスが完了するとヒルシェードラスタが地図に追加されます.これはグレイスケールで表示されます.

  • hillshadingと gtopo30 の陰影起伏と色の両方を一緒に表示するには、目次中の gtopo30 地図下に陰影起伏図を移動し、次に gtopo30Properties ウィンドウを開き、 Transparency タブに切り替えて約25%の透明度レベルを設定`します。

これで、グレースケール陰影起伏地図 上記の 表示される設定のカラー地図と透明性を持つ gtopo30 上昇を持っている必要があります、hillshadingの視覚効果を参照してください。 `` gtopo30_shade`` 地図をオフにするために、再びオンにします。

GRASS shellの使用

QGISでGRASSプラグインは、GRASSに新しく、すべてのモジュールとオプションに慣れていないユーザーのために設計されています。そのため、ツールボックス内のいくつかのモジュールが利用できるすべてのオプションを示していない、といくつかのモジュールは、まったく表示されません。GRASSのシェル(またはコンソール)は、最も簡単なデフォルトパラメータをツールボックスにあるモジュールにツールボックスのツリーで、また、いくつかの追加オプションには表示されません。これらの追加のGRASSモジュールへのアクセスをユーザに提供します。この例では、上記示した** r.shaded.relief **モジュールで追加のオプションの使用方法を示します。

Figure GRASS module 5:

../../../_images/grass_toolbox_shell.png

GRASSシェル、r.shaded.reliefモジュール

モジュール r.shaded.relief は、陰影起伏効果がより顕著になるようにXYに対する標高値は、座標単位乗算パラメータ zmult をとることができます。

  • GRASSツールボックスを起動して、GRASSのシェルをクリックし、その後、上記のように gtopo30 標高ラスタをロードします。シェルウィンドウで、コマンド r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 を入力し、 [入力] を押します。

  • プロセスが終了した後、にシフト Browse タブとQGISでそれを表示するために新しい gtopo30_shade2 ラスタをダブルクリックします。

  • 以上説明したように、その後、着色 gtopo30 レイヤーの透明性を確認し、コンテンツのテーブルで gtopo30 ラスタ以下陰影起伏ラスタを移動させます。3-D効果がより強く最初の日陰のレリーフマップと比べて際立っていることがわかります。

Figure GRASS module 6:

../../../_images/grass_toolbox_shadedrelief.png

GRASSモジュールr.shaded.reliefで作成した陰影を表示します

ベクターマップによるラスター統計

次の例はGRASS モジュールがラスタデータを集計してベクタマップのそれぞれのポリゴンのカラムに統計値を追加するものです.

  • 再び Alaska データを使います, GRASS LOCATIONへデータをインポート を参照して shapefiles ディレクトリからshapefile treesをGRASSにインポートして下さい.

  • 今、中間のステップが必要です。重心がそれを(境界線と重心の両方を含む)完全なGRASS面積ベクトルを作るために、インポート樹木マップに追加する必要があります。

  • ツールボックスで Vector ‣ Manage features, を選択して v.centroids モジュールを開いて下さい.

  • Enter as the output vector map ‘forest_areas’ and run the module.
  • さて、 forest_areas ベクトルをロードし、森林のタイプを表示 - 落葉、常緑、混合 - 異なる色で:レイヤーには Properties ウィンドウ、Symbology タブから選ぶ レジェンドtypeselectString 「ユニークな値」と設定 分類field に「VEGDESC」。(ベクトルセクションの スタイルメニュー 中の記号のタブの説明を参照してください。 )

  • 次に GRASS ツールボックスを再オープンして Vector ‣ Vector update を他の地図で開いて下さい.

  • v.rast.stats モジュールをクリックして. gtopo30, と forest_areas と入力して下さい.

  • 一つだけ追加のパラメータが必要です: 列prefix elev を入力し、 [ファイル名を指定して実行] をクリックします。これは計算が重い操作で、長い時間(おそらく2時間まで)かかって実行されます。

  • 最後に、 forest_areas 属性テーブルを開き、いくつかの新しい列が各フォレストのポリゴンのために、 elev_minelev_maxelev_mean などを含め、追加されていることを確認してください。

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>

モジュールを選択すると、この定義はパーサに読み取られ、ツールボックス内に新しいタブが作成されます。新しいモジュールを追加する、モジュールのグループを変更する、などのためのより詳細な説明は、 http://hub.qgis.org/projects/quantum-gis/wiki/Adding_New_Tools_to_the_GRASS_Toolbox でQGISのwiki上で見つけることができます。