12.1. Lesson: GRASSのセットアップ

QGISでGRASSを使用するにはインターフェイスを少し異なる方法で考える必要があります。QGISで直接作業しているのではなくQGIS を通じて GRASSで作業していることを覚えておいて下さい。したがって、GrassをサポートするQGIS Desktopがインストールされていることを確認してください。

win Windowsで利用可能なGRASSでQGISセッションを開くには、「QGISデスクトップとGRASS」アイコンをクリックする必要があります。

このレッスンの目標: QGISでGRASSのプロジェクトを始めます。

12.1.1. basic Follow Along: 新しいGRASSセッションを始める

QGISからGRASSを起動するには、他のプラグインと同様に有効化する必要があります:

  1. まず新しいQGISプロジェクトを開いてください。

  2. プラグインマネージャ でリストにある GRASS を有効にします:

    ../../../_images/enable_grass.png

    GRASSツールバーとGRASSパネルが現れます:

    ../../../_images/grass_toolbar.png

    図 12.30 GRASSツールバー

    ../../../_images/grass_panel.png

    図 12.31 GRASSパネル

GRASSパネルはアクティブではありませんが、それはGRASSを使う前に マップセット を作成する必要があるためです。GRASSは常にデータベース環境で動作するので、使うすべてのデータはGRASSデータベースにインポートする必要があります。

GRASSデータベースは一見とても複雑に見えますが、構造は単純です。知っておくべき最も重要なことは、データベースの上位レベルは Location だということです。各 Location には異なる マップセット が含まれます:すべての マップセット 中には、GRASSがデフォルトで作成する、 PERMANENT マップセットがあります。各 マップセット には特定の構造でデータ(ラスタ、ベクタなど)が含まれますが、心配する必要はありません。GRASSがこれを処理してくれます。

これだけ覚えてください: Location はデータを含んでいる Mapset を含みます。詳細な情報は GRASS website をご覧ください。

../../../_images/grass_database.png

図 12.32 GRASSデータベース構造(GRASSドキュメントより)

12.1.2. basic Follow Along: 新しいGRASSプロジェクトを始める

  1. プラグイン ► GRASS ► 新規Mapset メニューをクリックします:

    ../../../_images/grass_menu.png

    GRASSデータベースの場所を選択するよう指示されます。

  2. データベースを構成するためにそれをGRASSが使用するディレクトリとして設定します:

    ../../../_images/grass_folder.png
  3. 次へ をクリックします。

GRASSでは ロケーション を作成する必要があります。 ロケーション は作業しようとしている地理的領域(Grass Region ともいわれる)の最大範囲を定義します。

注釈

Region は、GRASSですべてのレイヤが考慮されるエリアを記述するため、GRASSでは非常に重要です。外にあるものはすべて考慮されません。でもご心配なく、ロケーションが作成された後、いつでもGRASS Regionの範囲を変更できます

  1. 新しいロケーションを SouthAfrica と呼びます:

    ../../../_images/new_location.png
  2. 次へ をクリックします。

  3. ここでは WGS 84 を使うので、そのCRSを検索して選択してください:

    ../../../_images/wgs_84_selected.png
  4. 次へ をクリックします。

  5. ドロップダウンリストから South Africa の領域を選択して、 設定 をクリックします:

    ../../../_images/set_south_africa.png
  6. 次へ をクリックします。

  7. マップセットを作成します。それがあなたがこれから作業するマップファイルです。

    ../../../_images/grass_mapset.png

    入力が完了すると、入力した情報の要約を尋ねるダイアログが表示されます。

    ../../../_images/grass_final.png
  8. 完了 をクリックします。

  9. 成功ダイアログで OK をクリックします。

GRASS パネルがアクティブになり、すべての GRASS ツールを使用できるようになるのがわかります。

12.1.3. basic Follow Along: GRASSにベクタデータを読み込む

今はマップは空白であり、すべてのGRASSツールの使用を開始するには、データをGRASSデータベース、特に マップセット に読み込む必要があります。 GRASS マップセット に読み込まれていないレイヤではGRASSツールを使用できません。

GRASSのデータベースにデータを読み込むには、様々な方法があります。まずは最初の1つから始めましょう。

basic Follow Along: QGIS ブラウザを使ってデータ読み込む

セクション ブラウザパネル では、QGISにデータを読み込む最も簡単で早い方法はブラウザパネルであることがわかりました。

QGISブラウザはGRASSデータを、 実際の GRASSデータとして認識します。それは、GRASS マップセットの横にGRASSアイコンが表示されることで確認できます。また、開いたマップセットの横には grassMapsetOpen のアイコンが表示されます。

../../../_images/grass_browser.png

注釈

GRASSロケーションの複製が通常のフォルダとして表示されます: GRASS マップセット データは、 grassLogo フォルダ内にあるものです。

フォルダ内のレイヤは ドラッグ&ドロップ で簡単にGRASSマップセットに取り込むことができます。

それでは、 roads レイヤを SouthAfrica ロケーションの grass_mapset マップセットにインポートしてみましょう。

ブラウザを開き、 training_data.gpkg GeoPackage ファイルから roads レイヤを grass_mapset Mapset に単純にドラッグしてください。

../../../_images/grass_browser_import.png

それでおしまい!マップセットを展開すると、インポートされた roads レイヤが表示されます。これで、インポートされたレイヤを他のすべてのレイヤと同様にQGISに読み込むことができます。

Tip

レイヤ凡例パネルからブラウザパネルのマップセットにレイヤを読み込むこともできます。これにより、ワークフローが驚くほど高速になります!

basic Follow Along: GRASSパネルを使ってデータをロードする

ここでは、 long メソッドを使用して、 rivers.shp レイヤーを同じマップセットにロードします。

  1. 通常どおりデータをQGISに読み込みます。 rivers.shp データセット( exercise_data/shapefile/ フォルダにあります)を使用します

  2. 読み込まれたらすぐに、「GRASS Panel」の Filter ボックスをクリックし、「v.in.ogr.qgis」という用語を入力してベクタインポートツールを見つけます。

    警告

    似たようなツールが2つあります: v.in.ogr.qgisv.in.ogr.qgis.loc 。探しているのは 1つめ です。

    ../../../_images/grass_panel_import.png

    vベクタin はGRASSデータベースにデータをインポートする関数を意味します。 ogr はベクタデータの読み込みに使用されるソフトウェア・ライブラリです。そして qgis は、そのツールがQGISに既に読み込まれたベクタの中からベクタを探すことを意味します。

  3. このツールを見つけたら、それをクリックしてツール自体を表示します。混乱を防ぐために、 ロードされたレイヤ ボックスで rivers レイヤを選択し、 g_rivers と入力して名前を付けます。

    ../../../_images/grass_tool_selected.png

    注釈

    hard 別のインポートオプションが アドバンスドオプション で提供されています。データのインポートに使用するSQLクエリのWHERE句を追加する機能が含まれます。

  4. 実行 をクリックしてインポートを開始します。

  5. それが終わったら 出力を見る をクリックして新しくインポートされたGRASSレイヤを地図に表示します。

  6. まずインポートツールを閉じて (出力を見る のすぐ右にある 閉じる ボタンをクリックします)、そして GRASSツール ウィンドウを閉じます。

  7. 元の rivers レイヤを削除します。

今、QGISの地図に表示されているのはインポートされたGRASSレイヤだけです。

12.1.4. basic Follow Along: GRASSにラスタデータを読み込む

ベクタレイヤをインポートしたのと同じ方法でラスタレイヤをインポートできます。

GRASSマップセットにレイヤ srtm_41_19_4326.tif をインポートします。

注釈

ラスタレイヤは既に正しいCRS、「WGS 84」にあります。レイヤが異なるCRSにある場合は、GRASSマップセットの同じCRSに再投影する必要があります

  1. QGISで srtm_41_19_4326.tif レイヤを読み込みます

  2. GRASSツール ダイアログを再度開きます。

  3. モジュールリスト タブをクリックします。

  4. r.in.gdal.qgis を検索して、そのツールをダブルクリックし、ツールのダイアログを開きます。

  5. 入力レイヤが srtm_41_19_4326.tif 、出力が g_dem となるように設定します。

    ../../../_images/g_dem_settings.png
  6. 実行 をクリックします。

  7. 処理が完了したら 出力を見る をクリックします。

  8. 現在のタブを閉じ、そしてダイアログボックスを閉じます。

    ../../../_images/g_dem_result.png
  9. これで元の srtm_41_19_4326.tif レイヤは削除しても問題ありません。

12.1.5. basic Try Yourself マップセットにレイヤを追加する

GRASS マップセットに、 exercise_data/shapefile/ フォルダからベクタレイヤ water.shpplaces.shp をインポートしてみてください。 rivers の場合と同様に、混乱を避けるために、インポートしたレイヤの名前を g_water および g_places に変更します。

12.1.6. basic 既存のGRASSマップセットを開く

既にGRASS マップセットがある場合、別のQGISセッションでそれを簡単に開くことができます。

GRASS マップセットを開く方法には複数の方法があります。そのいくつかを試してみましょう。

GRASSツール ウィンドウの Mapsetを閉じる ボタンをクリックして、マップセットを閉じましょう。

basic Follow Along: GRASSプラグインを使う

  1. 前節で見た プラグイン --> GRASS --> 新規Mapset メニューの隣にある プラグイン --> GRASS --> Mapsetを開く メニューをクリックします。

  2. GRASSデータベースフォルダを参照します。注意してください! GRASSマップセットのフォルダではなく、親フォルダを選択する必要があります。実際、GRASSはデータベースのすべての「ロケーション」と各「ロケーション」のすべての「マップセット」を読み取ります:

    ../../../_images/grass_open_mapset1.png
  3. ロケーション SouthAfrica と、先ほど作成した Mapset grass_mapset を選択してください。

これで完了です。GRASS パネルがアクティブになり、マップセットが正しく開かれたことを意味します。

basic Follow Along: QGIS ブラウザを使う

QGISブラウザを使って マップセット を開くと、さらに速く、簡単になります:

  1. GRASS Tools ウィンドウの Mapsetを閉じる ボタンをクリックして、マップセットを閉じます(開いている場合)。

  2. QGISブラウザでGRASSデータベースのフォルダをブラウズします。

  3. マップセットを右クリックします(マップセットは grassLogo GRASSアイコンが隣にあることを思い出してください)。いくつかのオプションがあるのがわかります。

  4. Mapsetを開く をクリックします:

    ../../../_images/grass_open_mapset_browser.png

これでマップセットが開き、使う準備ができました!

Tip

GRASS マップセット上で右クリックすると、様々な設定ができます。いろいろな設定を試して、便利なオプションを見てみましょう。

12.1.7. In Conclusion

GRASSはデータを空間データベース構造に読み込むため、GRASSのデータ収集ワークフローはQGISの方法とは多少異なります。しかし、フロントエンドとしてQGISを使用することによってGRASSのデータソースとしてQGIS内の既存レイヤを使用でき、GRASSマップセットのセットアップを簡単にすることができます。

12.1.8. What's Next?

データはGRASSにインポートされました。GRASSの高度な分析操作を見ることができます。