23. 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つだけロードできます。

23.1. デモデータセット

As an example, we will use the QGIS Alaska dataset (see section サンプルデータのダウンロード). It includes a small sample GRASS LOCATION with three vector layers and one raster elevation map. Create a new folder called grassdata, download the QGIS 'Alaska' dataset qgis_sample_data.zip from https://qgis.org/downloads/data/ and unzip the file into grassdata.

More sample GRASS LOCATIONs are available at the GRASS website at https://grass.osgeo.org/download/data/.

23.2. GRASSラスターおよびベクターレイヤーをロードする

If the provider is loaded in QGIS, the location item with GRASS grassLogo icon is added in the browser tree under each folder item which contains GRASS location. Go to the folder grassdata and expand location alaska and mapset demo.

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

ちなみに

GRASSデータの読み込み

GRASSの場所の項目が表示されない場合は、GRASSベクタープロバイダーがロードされているかどうか、 ヘルプ ► について ► プロバイダー を検証してください。

23.3. ドラッグ&ドロップでGRASS[場所]へデータをインポートする

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

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

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

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

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

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

23.4. QGISブラウザでGRASSデータを管理する

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

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

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

23.5. GRASSオプション

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

23.6. GRASSプラグインを起動する

To use GRASS functionalities in QGIS, you must select and load the GRASS plugin using the Plugin Manager. To do this, go to the menu Plugins ► showPluginManager Manage and Install Plugins..., select checkbox GRASS and click OK.

GRASSプラグインを起動すると( プラグイン ► GRASS )、以下の主な機能、 GRASSメニューで提供されています:

  • grassOpenMapset 地図セットを開く

  • grassNewMapset 新しい地図セット

  • grassCloseMapset 地図セットを閉じる

  • grassTools GRASS ツールを開く

  • grassRegion 現在のGRASS Regionを表示

  • general GRASSオプション

23.7. GRASS地図セットを開く

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

23.8. GRASS[場所]と[地図セット]

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

../../../_images/grass_location.png

図 23.1 アラスカ[場所]のGRASSデータ

23.9. GRASS[場所]へデータをインポートする

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

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

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

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

  3. Select as GRASS database the folder grassdata in the QGIS Alaska dataset, as LOCATION 'alaska', as MAPSET 'demo' and click OK.

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

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

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

  7. As raster output name, define landcover_grass and click Run. In the Output tab, you see the currently running GRASS command r.in.gdal -o input=/path/to/landcover.img output=landcover_grass.

  8. When it says Successfully finished, click View Output. The landcover_grass raster layer is now imported into GRASS and will be visualized in the QGIS canvas.

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

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

  11. As vector output name, define lakes_grass and click Run. You don't have to care about the other options in this example. In the Output tab you see the currently running GRASS command v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass.

  12. When it says Succesfully finished, click View Output. The lakes_grass vector layer is now imported into GRASS and will be visualized in the QGIS canvas.

23.9.1. 新しいGRASS[場所]を作成する

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

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

  2. QGISアラスカデータセット( サンプルデータのダウンロード 参照)からの alaska.shp シェープファイル(セクション ファイルからレイヤを読み込む 参照)を可視化します。

  3. GRASSツールバーで、 grassNewMapset 地図セット アイコンをクリックして 新しい地図セット ウィザードを起動してください。

  4. Select an existing GRASS database (GISDBASE) folder grassdata, or create one for the new LOCATION using a file manager on your computer. Then click Next.

  5. We can use this wizard to create a new MAPSET within an existing LOCATION (see section 新しい[地図セット]を追加する) or to create a new LOCATION altogether. Select radioButtonOn Create new location (see 図 23.2).

  6. Enter a name for the LOCATION -- we used 'alaska' -- and click Next.

  7. 投影リストを有効にするラジオボタン radioButtonOn 投影 をクリックして投影を定義します。

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

  9. フィルタ に 2964 と入力して投影法を選択して下さい.

  10. 次へ をクリックします。

  11. To define the default region, we have to enter the LOCATION bounds in the north, south, east, and west directions. Here, we simply click on the button Set Current QGIS Extent, to apply the extent of the loaded layer alaska.shp as the GRASS default region extent.

  12. 次へ をクリックします。

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

  14. Check out the summary to make sure it's correct and click Finish.

  15. 新しい 場所 「アラスカ」 と2つの 地図セット 「demo」と「PERMANENT」が作られました. 現在開かれているワーキングセットはあなたが定義した 'demo' です。

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

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

図 23.2 QGIS内で新しいGRASS[場所]または新しい[地図セット]を作成する

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

23.9.2. 新しい[地図セット]を追加する

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

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

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

  2. GRASSツールバーで、 grassNewMapset 地図セット アイコンをクリックして 新しい地図セット ウィザードを起動してください。

  3. さらに 地図セット の「テスト」をするため 場所 「アラスカ」の GRASS データベース (GISDBASE) フォルダ grassdata を選択して下さい.

  4. 次へ をクリックします。

  5. We can use this wizard to create a new MAPSET within an existing LOCATION or to create a new LOCATION altogether. Click on the radio button radioButtonOn Select location (see 図 23.2) and click Next.

  6. Enter the name test for the new MAPSET. Below in the wizard, you see a list of existing MAPSETs and corresponding owners.

  7. Click Next, check out the summary to make sure it's all correct and click Finish.

23.10. GRASSベクターデータモデル

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

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

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

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

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

データベーステーブル中の属性は「カテゴリ」値を使用してジオメトリ要素とリンクされます。

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

ちなみに

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

The best way to learn the GRASS vector model and its capabilities is to download one of the many GRASS tutorials where the vector model is described more deeply. See https://grass.osgeo.org/learn/manuals/ for more information, books and tutorials in several languages.

23.11. 新しいGRASSベクターレイヤーを作成する

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

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

  • 新しいラインレイヤー

  • 新しいポリゴンレイヤー

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

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

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

23.12. GRASSベクターレイヤーをデジタル化して編集する

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

  • GRASS トポロジモデル 対 QGIS単純地物

  • GRASS モデルの複雑さ

    • 単一の地図に複数のレイヤー

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

    • 複数のレイヤーからの複数の地物によってジオメトリを共有します

その特殊性はこの後のセクションで説明します。

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

警告

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

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

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

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

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

ツールバー

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

アイコン

ツール

目的

capturePoint

新しい点

新しい点をデジタイズ

captureLine

新しいライン

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

captureBoundary

新しい境界

新しい境界をデジタル化

captureCentroid

重心の新規作成

新しい重心をデジタイズ (ラベルのあるエリア)

capturePolygon

新しい閉境界

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

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

ちなみに

GRASSでポリゴンをデジタル化する

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

カテゴリ

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

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

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

Attributes

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

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

ちなみに

フィールド計算機を使用する )「フィールド計算機」を使用して、たとえば、テーブル内の属性の一括更新を行いたい場合は、(通常は境界)を更新したくないカテゴリのない地物がありますが、「高度なフィルタ」 cat is not null を設定することによりフィルタで除外できます、。

編集スタイル

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

ちなみに

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

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

ちなみに

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

スナップ

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

ちなみに

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

制限

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

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

ちなみに

GRASS編集権限

編集を行いたい場合は GRASS 地図セット のオーナーになることが必要です。所有する以外の 地図セット に属するレイヤーは、ファイルに書き込み権限を持っていても編集できません。

23.13. GRASS領域ツール

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

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

The region can be modified in 'Region' tab in 'GRASS Tolls' dock widget. Type in the new region bounds and resolution, and click Apply. If you click on Select the extent by dragging on canvas you can select a new region interactively with your mouse on the QGIS canvas dragging a rectangle.

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

23.14. GRASSツールボックス

grassTools GRASSツールを開く ボックスは、選択されたGRASS 場所MAPSET 内部のデータを操作するためのGRASSモジュールの機能を提供します。GRASSツールボックスを使用するには、書き込み権限を持っている 場所地図セット を開く必要があります( 地図セット を作成した場合、通常は権限が付与されています)。分析中に作成された新しいラスターまたはベクターレイヤーは、現在選択されている 場所地図セット に書き込む必要があるため、これは必要です。

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

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

23.14.1. GRASSモジュールを使用する

GRASSツールボックスのGRASSシェルではほとんどすべての(300以上)GRASSモジュールをコマンドラインインターフェイスで提供しています。もっとユーザーフレンドリな作業環境としてグラフィカルダイアログでは約200のGRASSモジュールと機能が提供されています。

A complete list of GRASS modules available in the graphical Toolbox in QGIS version 3.22 is available in the GRASS wiki at https://grasswiki.osgeo.org/wiki/GRASS-QGIS_relevant_module_list.

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

As shown in 図 23.3, you can look for the appropriate GRASS module using the thematically grouped Modules Tree or the searchable Modules List tab.

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

オプション

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

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

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

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

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

出力

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

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

The Output tab provides information about the output status of the module. When you click the Run button, the module switches to the Output tab and you see information about the analysis process. If all works well, you will finally see a Successfully finished message.

マニュアル

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

図 23.6 GRASSツールボックスモジュールマニュアル

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

ちなみに

結果をすぐ表示

計算結果をすぐに地図キャンバスに表示したい場合、モジュールタブの一番下にある '出力を表示' ボタンを利用できます.

23.14.2. GRASSモジュールの例

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

23.14.2.1. 等高線を作成する

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

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

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

  • ツールカテゴリのリストで、 ラスター ► サーフェス管理 ► ベクター等高線を生成 をダブルクリックします。

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

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

  • 等高線水準間の増加分selectNumber 値100を入力します(これで等高線が100メートルの間隔で作成されます。)

  • 出力するベクター地図の名前ctour_100 と入力して下さい。

  • Click Run to start the process. Wait for several moments until the message Successfully finished appears in the output window. Then click View Output and Close.

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

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

ちなみに

単純化ツール

QGISにはちょうどGRASS v.generalize ダグラス・Peukerアルゴリズムのように動作する ベクター ► ジオメトリツール ► ジオメトリを単純化 ツールがあることに注意してください。

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

  • GRASSツールボックスを開き、カテゴリ ベクター ► 地図を展開 ► 簡素化 をダブルクリックし、それから v.generalize モジュールをクリックしてそのオプションウィンドウを開いてください。

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

  • From the list of algorithms, choose Chaiken's. Leave all other options at their default, and scroll down to the last row to enter in the field Name for output vector map 'ctour_100_smooth', and click Run.

  • The process takes several moments. Once Successfully finished appears in the output windows, click View Output and then Close.

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

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

図 23.7 ベクター地図を平滑化するGRASSモジュールv.generalize

ちなみに

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

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

23.14.2.2. 陰影3D効果の作成

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

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

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

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

  • Enter gtopo30_shade for the new hillshade raster, and click Run.

  • プロセスが完了すると陰影ラスターが地図に追加されます。これはグレースケールで表示されます。

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

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

GRASSシェルを使用する

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

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

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

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

  • Load the gtopo30 elevation raster as above, then start the GRASS Toolbox and click on the GRASS shell. In the shell window, type the command r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 and press Enter.

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

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

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

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

23.14.2.3. ベクター地図によるラスター統計

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

  • Again using the Alaska data, refer to GRASS[場所]へデータをインポートする to import the shapefiles/trees.shp file into GRASS.

  • 今、中間のステップが必要です:重心をインポートされた樹木図に追加して(境界と重心の両方を含む)完全なGRASSエリアベクターを作る必要があります。

  • ツールボックスで ベクター ► 地物を管理 を選択して v.centroids モジュールを開いて下さい.

  • 出力ベクター地図 として 'forest_areas' と入力してモジュールを実行して下さい.

  • さて、 forest_areas ベクターをロードし、森林のタイプを表示 - 落葉、常緑、混合 - 異なる色で:レイヤー プロパティ ウィンドウ、シンボル体系 タブの中で、 凡例タイプ から selectString 「ユニークな値」選び、 分類フィールド に「VEGDESC」を設定します。(ベクターセクションの シンボロジプロパティ 中の記号体系タブの説明を参照してください。 )

  • 次に GRASS ツールボックスを再び開いて ベクター ► ベクター更新 を他の地図で開いて下さい.

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

  • Only one additional parameter is needed: Enter column prefix elev, and click Run. This is a computationally heavy operation, which will run for a long time (probably up to two hours).

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

23.14.3. 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>

The parser reads this definition and creates a new tab inside the Toolbox when you select the module. A more detailed description for adding new modules, changing a module's group, etc., can be found at https://qgis.org/en/site/getinvolved/development/addinggrasstools.html.