Skip to the content.

QGISの使い方についてまとめたページです.内容については整理されておらず雑多である点をご承知おきください…

プラグインの開発方法

  1. ディレクトリ構成はこちらを確認GSIxml2tiff
  2. VScodeによる開発はこちらの方のブログ(VSCodeによるQGISプラグイン開発環境の構築)が参考になる。
    1. 自分はシンボリックリンクの作成をせずにFreeFileSyncを使ってプロジェクトフォルダを同期した。
    2. インタープリターの指定がうまくいかない…
    3. どうやらOnedriveのパスが問題のよう
    4. ~\AppData\Local\Programs\PythonPython309というフォルダを作成し、その中にシンボリックリンクを作成する。
  3. ロゴはGPTのLogo Creatorを使用して、webp形式で保存後、Adobe Illustratorで取り込み。
    1. 一旦ベクター化したのち微修正して、64×64ピクセルのpng形式で保存する。
      1. 現時点ではアイコンは反映されていない…

ジオリファレンスしたラスターデータから手動でポリゴンに区画分けする方法

  1. ラスターをジオリファレンスする
  2. Processing > Toolbox > Tile Indexでラスターデータの境界領域を取得
  3. 新規のポリゴンレイヤーを用意して、重なっても良いので、ラフに境界線をポリゴンで描いていく
  4. Tile Indexで出力された外郭線を、区画の境界線が入ったポリゴンレイヤーにコピー
  5. Vector > Geoprocessing Tools > Unionでポリゴンを分割
  6. 不要な部分を削除しつつ、必要な部分を結合していく
    • 結合時には、Advanced Digitiging Toolbar>Merge Selected Featuresを選択することで、選択したポリゴンを結合できる

ラスターデータから3Dモデルを作成する方法

事前に(粗いメッシュベクターデータから密な点群ベクターデータを作成する方法)[#粗いメッシュベクターデータから密な点群ベクターデータを作成する方法]から解像度が高めのラスターデータを作成しておいてください.

  1. プラグインDEMTo3Dをインストール
    • プラグイン > 管理とインストール > プラグインをインストールする
    • DEMTo3Dプラグインをインストールする
  2. ラスターデータを読み込む
    • 深部地盤モデルを3Dプリントしたい場合は標高データを地表面からの深度をマイナス値で表現しないといけないので以下の手順が必要
    • Raster Calculatorを開く
    • Raster Calculatorに以下の式を入力する
      • (Layerの標高値が入ったバンド) * -1
    • 出力ファイル名を指定します
    • Runをクリックします
  3. ラスターデータをクリックした状態でDEMTo3Dを起動
    • データを入力しても別の値が更新されない場合があるので,その場合は手当たり次第に数値を変えては戻すを繰り返す
    • Layer Extentは右下の虫眼鏡アイコンをクリックして選択するとメインキャンバスから選択できる
    • Spacingの値はよくわかならない
      • STLで設定しても意味がないはず…
    • Model Sizeの設定
      • WidthLengthの値を直接設定するか,Scaleを設定するかの2宅
    • 今回のような深部地盤構造モデルの場合には鉛直方向の強調をするためにVertical Exaggerationの値を最大値の99.99に設定する
      • マウスのホイールで値を変更しないと10以上いけないみたい
    • Model Heightの設定
      • Heightの項目はよくわからない.意味合いとしては実際のラスターデータの標高値の最下面の値を入れるということかもしれない
      • Base Heightの項目は造形時に最下面から追加する基礎の部分の高さ
      • 上記2つのパラメータを設定すればモデル高が正しく表示されるはず.
    • Export STLをクリックするとSTLファイルが出力される

粗いメッシュベクターデータから密な点群ベクターデータを作成する方法

  1. CRS(座標参照系)を変更する
    • レイヤのプロパティを開く
    • 座標参照系を選択し,直行直角座標系に変更する
  2. 重心(Centorid)を求める
    • プロセッシングツールボックスを開く
    • Centroidを検索し,選択します
    • 入力レイヤを選択します
    • 出力ファイル名を指定します
    • Runをクリックします
  3. IDW(逆距離加重法)を適用する
    • プロセッシングツールボックスを開く
    • IDWを検索し,Grid (IDW with nearest neighbor searching)を選択します
    • 入力レイヤを選択します
    • Smoothingを適切な値に変更する
      • このときCRSが直行直角座標系であると単位がmになり結果が想像しやすくなる
    • The radisu of the search circleを重心距離の最大値に設定する
    • Maximum number of data points to useを重心点数にする
    • Z value from fieldを適切なフィールドに設定する
    • Additional command-line parametersに以下の値を入力する
      • -txe-tyeを: 点が欲しい範囲を指定したCRSで
      • -trを適切な値に設定する: 縦方向と横方向の解像度を指定する
      • 上記以外にも-outsizeで出力サイズを指定することができる
    • 出力ファイル名を指定します
    • Runをクリックします
  4. ここから手順が2つに分かれます.
    1. 方法1
      1. Regular pointsを作成する
        • プロセッシングツールボックスを開く
        • Regular pointsを検索し,選択します
        • Input Extentを適切な値に変更する
        • Point spacing / countを適切な値に変更する
          • ここでの値はIDW-trと同じ値かそれよりも大きい値にしましょう
        • Initial inset from cornerを適切な値に変更する
        • 出力ファイル名を指定します
        • Runをクリックします
      2. Sample raster vluesを実行する
        • プロセッシングツールボックスを開く
        • Sample raster valuesを検索し,選択します
        • Input layerRegular pointsの出力ファイルを指定します
        • Raster layerIDWの出力ファイルを指定します
        • 出力ファイル名を指定します
        • Runをクリックします
    2. 方法2
      1. Raster pixels to pointsを実行する
        • プロセッシングツールボックスを開く
        • Raster pixels to pointsを検索し,選択します
        • Input layerIDWの出力ファイルを指定します
        • 出力ファイル名を指定します
        • Runをクリックします

QGISのバージョン3以上でSAGAを使用する方法

QGISのバージョン3以上でSAGAを使用する方法について説明します.

  1. プラグインをインストールする
    • プラグイン > 管理とインストール > プラグインをインストールする
    • Processing Saga NextGen Providerプラグインをインストールする
    • ここに利用可能なSAGAのバージョンが書かれているのでそのバージョンをメモする
      • 現時点(2024年4月15日)では,SAGAのバージョンは9.1,Processing Saga NextGen Providerのバージョンは1.0.0でした
    • 一旦QGISを終了させます.
  2. SAGAのインストール
    • SAGAのホームページ
    • ダウンロード > SAGA - 9 > SAGA - 9.1.0 > saga-9.1.0_x64.zipをダウンロードする
      • 上記はWindowsの場合の例です.他のOSの場合は適宜ダウンロードしてください
    • ダウンロードしたファイルを解凍します
    • 解答してできたフォルダごとC:\Program Files\QGIS 3.28.5\apps\sagaに移します.
      • ここで,3.28.5はQGISのバージョンによって異なります.適宜変更してください.
      • また,既存のSAGAを残しておきたい場合には,C:\Program Files\QGIS 3.28.5\apps\の中にsaga-9.1.0などのフォルダを作成し,その中に移動させてください.
    • C:\Program Files\QGIS 3.28.5\apps\sagaあるいは自分が作成したフォルダの中にsaga_cmd.exeがあることを確認します.
  3. QGIS内での設定
    • QGISを開きます
    • プロセッシングツールボックスを開きます
    • スパナ(🔧)のアイコンをクリックします.
    • Options -- Processingの画面が開かれるので,Providersタブを選択します.
    • SAGANGの項目にカーソルを合わせ,先ほど作成したフォルダを選択するか,フォルダパスを直接入力します.
    • Enable SAGA Import/Export optimizationsにチェックを入れます.
      • なぜこうするかはわかりません
    • OKをクリックします.
    • QGISを再起動します.
  4. (補足)Ordinary Kriggingについて
    • 今回,Ordinary Kriggingを使用する際に,以下のようなトラブルシュートを行いました
      • 用いるデータは,あらかじめshpファイルに変換しておく必要がありました
        • geopackageファイルだとだめみたい?
      • またCRSは直行直角座標系に変換しておく必要がありました
        • 単位が緯度経度だとだめみたい?

参考リンク

フィールド計算機で,ある属性フィールドを別の属性フィールドの値によって指定して,新しい属性フィールドを作成する方法

  1. レイヤのプロパティを開く
    • レイヤのプロパティを開くには,レイヤの右クリック > プロパティを選択します.
    • あるいは,レイヤのプロパティアイコンをクリックします.
  2. フィールド計算機を開く
    • レイヤのプロパティウインドウの中にあるフィールドを選択します.
    • フィールド計算機アイコンをクリックします.
  3. 新しいフィールドを作成する
    • 新しいフィールドを作成するには,新しいフィールドを追加します.
    • 新しいフィールドの名前を入力します.
    • 新しいフィールドの型を選択します.
    • attribute( concat('Peak', "Exported Time-series (Butterworth-Sectioned)" ))のような式を入力します.
      • この式は,”Exported Time-series (Butterworth-Sectioned)”というフィールドの値を取得し,その前に”Peak”という文字列を追加します.
      • さらにこの文字列が参照したいフィールド名となっており,最終的にそのフィールドの値を新しいフィールドに追加します.

Excelファイルの読み込み方法

QGISでExcelファイルを読み込む方法について説明します.エクセルファイルには最低限,緯度,経度,地物名の情報が含まれていると仮定します.

  1. エクセルデータをドラックアンドドロップでQGISに読み込む
    • 読み込みが完了すると,テーブルのアイコンがレイヤのウインドウの中に表示されます
    • キャンバスの中には何も表示されません
  2. プロセシングツールボックスを開く
    • プラグイン > プロセシング > ツールボックスを選択します
    • 検索欄にtableと入力します
    • Table to point,日本語であればテーブルから点レイヤを作成を選択します
    • X値には経度(long),Y値には緯度(lat)を選択します
    • 出力ファイル名を指定します.(そのままであれば,一時レイヤが生成されます)
    • Runあるいは実行をクリックします

Openstreetmapで特定の地物だけを表示する方法

OpenStreetMapから特定の地物だけを表示する方法について説明します.具体的な手順は以下のとおりです.今回は建物データに限った場合を例に説明します.

  1. OpenStreetMapから建物データを取得

まず、OpenStreetMapから建物データを取得する必要があります.これを行う方法はいくつかありますが、一般的な方法の1つは、Overpass APIを使用することです.Overpass APIを使用してOSMから特定のデータをクエリすることができます.QGISのQuickOSMプラグインを使用して簡単に行う方法を以下に示します.