QGISの使い方についてまとめたページです.内容については整理されておらず雑多である点をご承知おきください…
プラグインの開発方法
- ディレクトリ構成はこちらを確認GSIxml2tiff
- VScodeによる開発はこちらの方のブログ(VSCodeによるQGISプラグイン開発環境の構築)が参考になる。
- 自分はシンボリックリンクの作成をせずに
FreeFileSync
を使ってプロジェクトフォルダを同期した。 - インタープリターの指定がうまくいかない…
- どうやら
Onedrive
のパスが問題のよう ~\AppData\Local\Programs\Python
にPython309
というフォルダを作成し、その中にシンボリックリンクを作成する。
- 自分はシンボリックリンクの作成をせずに
- ロゴはGPTの
Logo Creator
を使用して、webp
形式で保存後、Adobe Illustrator
で取り込み。- 一旦ベクター化したのち微修正して、64×64ピクセルの
png
形式で保存する。- 現時点ではアイコンは反映されていない…
- 一旦ベクター化したのち微修正して、64×64ピクセルの
ジオリファレンスしたラスターデータから手動でポリゴンに区画分けする方法
- ラスターをジオリファレンスする
Processing
>Toolbox
>Tile Index
でラスターデータの境界領域を取得- 新規のポリゴンレイヤーを用意して、重なっても良いので、ラフに境界線をポリゴンで描いていく
Tile Index
で出力された外郭線を、区画の境界線が入ったポリゴンレイヤーにコピーVector
>Geoprocessing Tools
>Union
でポリゴンを分割- 不要な部分を削除しつつ、必要な部分を結合していく
- 結合時には、
Advanced Digitiging Toolbar
>Merge Selected Features
を選択することで、選択したポリゴンを結合できる
- 結合時には、
ラスターデータから3Dモデルを作成する方法
事前に(粗いメッシュベクターデータから密な点群ベクターデータを作成する方法)[#粗いメッシュベクターデータから密な点群ベクターデータを作成する方法]から解像度が高めのラスターデータを作成しておいてください.
- プラグイン
DEMTo3D
をインストール- プラグイン > 管理とインストール > プラグインをインストールする
DEMTo3D
プラグインをインストールする
- ラスターデータを読み込む
- 深部地盤モデルを3Dプリントしたい場合は標高データを地表面からの深度をマイナス値で表現しないといけないので以下の手順が必要
Raster Calculator
を開くRaster Calculator
に以下の式を入力する(Layerの標高値が入ったバンド) * -1
- 出力ファイル名を指定します
Run
をクリックします
- ラスターデータをクリックした状態で
DEMTo3D
を起動- データを入力しても別の値が更新されない場合があるので,その場合は手当たり次第に数値を変えては戻すを繰り返す
- Layer Extentは右下の虫眼鏡アイコンをクリックして選択するとメインキャンバスから選択できる
Spacing
の値はよくわかならない- STLで設定しても意味がないはず…
Model Size
の設定Width
とLength
の値を直接設定するか,Scale
を設定するかの2宅
- 今回のような深部地盤構造モデルの場合には鉛直方向の強調をするために
Vertical Exaggeration
の値を最大値の99.99に設定する- マウスのホイールで値を変更しないと10以上いけないみたい
Model Height
の設定Height
の項目はよくわからない.意味合いとしては実際のラスターデータの標高値の最下面の値を入れるということかもしれないBase Height
の項目は造形時に最下面から追加する基礎の部分の高さ- 上記2つのパラメータを設定すればモデル高が正しく表示されるはず.
Export STL
をクリックするとSTLファイルが出力される
粗いメッシュベクターデータから密な点群ベクターデータを作成する方法
- CRS(座標参照系)を変更する
- レイヤのプロパティを開く
座標参照系
を選択し,直行直角座標系に変更する
- 重心(Centorid)を求める
- プロセッシングツールボックスを開く
Centroid
を検索し,選択します- 入力レイヤを選択します
- 出力ファイル名を指定します
Run
をクリックします
- 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
をクリックします
- ここから手順が2つに分かれます.
- 方法1
Regular points
を作成する- プロセッシングツールボックスを開く
Regular points
を検索し,選択しますInput Extent
を適切な値に変更するPoint spacing / count
を適切な値に変更する- ここでの値は
IDW
の-tr
と同じ値かそれよりも大きい値にしましょう
- ここでの値は
Initial inset from corner
を適切な値に変更する- 出力ファイル名を指定します
Run
をクリックします
Sample raster vlues
を実行する- プロセッシングツールボックスを開く
Sample raster values
を検索し,選択しますInput layer
にRegular points
の出力ファイルを指定しますRaster layer
にIDW
の出力ファイルを指定します- 出力ファイル名を指定します
Run
をクリックします
- 方法2
Raster pixels to points
を実行する- プロセッシングツールボックスを開く
Raster pixels to points
を検索し,選択しますInput layer
にIDW
の出力ファイルを指定します- 出力ファイル名を指定します
Run
をクリックします
- 方法1
QGISのバージョン3以上でSAGAを使用する方法
QGISのバージョン3以上でSAGAを使用する方法について説明します.
- プラグインをインストールする
- プラグイン > 管理とインストール > プラグインをインストールする
Processing Saga NextGen Provider
プラグインをインストールする- ここに利用可能なSAGAのバージョンが書かれているのでそのバージョンをメモする
- 現時点(2024年4月15日)では,
SAGA
のバージョンは9.1,Processing Saga NextGen Provider
のバージョンは1.0.0でした
- 現時点(2024年4月15日)では,
- 一旦QGISを終了させます.
- 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
があることを確認します.
- QGIS内での設定
- QGISを開きます
- プロセッシングツールボックスを開きます
- スパナ(🔧)のアイコンをクリックします.
Options -- Processing
の画面が開かれるので,Providers
タブを選択します.SAGANG
の項目にカーソルを合わせ,先ほど作成したフォルダを選択するか,フォルダパスを直接入力します.Enable SAGA Import/Export optimizations
にチェックを入れます.- なぜこうするかはわかりません
OK
をクリックします.- QGISを再起動します.
- (補足)
Ordinary Krigging
について- 今回,
Ordinary Krigging
を使用する際に,以下のようなトラブルシュートを行いました- 用いるデータは,あらかじめ
shp
ファイルに変換しておく必要がありましたgeopackage
ファイルだとだめみたい?
- またCRSは直行直角座標系に変換しておく必要がありました
- 単位が緯度経度だとだめみたい?
- 用いるデータは,あらかじめ
- 今回,
参考リンク
- QGIS in Mineral Exploration | 14.5. Installing the SAGA Next Gen Provide
- Installing the “SAGA Next Gen” plugin in QGIS
フィールド計算機で,ある属性フィールドを別の属性フィールドの値によって指定して,新しい属性フィールドを作成する方法
- レイヤのプロパティを開く
- レイヤのプロパティを開くには,レイヤの右クリック > プロパティを選択します.
- あるいは,レイヤのプロパティアイコンをクリックします.
- フィールド計算機を開く
- レイヤのプロパティウインドウの中にあるフィールドを選択します.
- フィールド計算機アイコンをクリックします.
- 新しいフィールドを作成する
- 新しいフィールドを作成するには,新しいフィールドを追加します.
- 新しいフィールドの名前を入力します.
- 新しいフィールドの型を選択します.
attribute( concat('Peak', "Exported Time-series (Butterworth-Sectioned)" ))
のような式を入力します.- この式は,”Exported Time-series (Butterworth-Sectioned)”というフィールドの値を取得し,その前に”Peak”という文字列を追加します.
- さらにこの文字列が参照したいフィールド名となっており,最終的にそのフィールドの値を新しいフィールドに追加します.
Excelファイルの読み込み方法
QGISでExcelファイルを読み込む方法について説明します.エクセルファイルには最低限,緯度,経度,地物名の情報が含まれていると仮定します.
- エクセルデータをドラックアンドドロップでQGISに読み込む
- 読み込みが完了すると,テーブルのアイコンがレイヤのウインドウの中に表示されます
- キャンバスの中には何も表示されません
- プロセシングツールボックスを開く
- プラグイン > プロセシング > ツールボックスを選択します
- 検索欄に
table
と入力します Table to point
,日本語であればテーブルから点レイヤを作成
を選択します- X値には経度(long),Y値には緯度(lat)を選択します
- 出力ファイル名を指定します.(そのままであれば,一時レイヤが生成されます)
Run
あるいは実行
をクリックします
Openstreetmapで特定の地物だけを表示する方法
OpenStreetMapから特定の地物だけを表示する方法について説明します.具体的な手順は以下のとおりです.今回は建物データに限った場合を例に説明します.
- OpenStreetMapから建物データを取得
まず、OpenStreetMapから建物データを取得する必要があります.これを行う方法はいくつかありますが、一般的な方法の1つは、Overpass APIを使用することです.Overpass APIを使用してOSMから特定のデータをクエリすることができます.QGISのQuickOSMプラグインを使用して簡単に行う方法を以下に示します.
- QuickOSMプラグインをインストールします
- QGISを開き、Plugins > Manage and Install Plugins…に移動します.”QuickOSM”を検索してインストールします.
- QuickOSMを開きます
- Vector > QuickOSM > QuickOSM…に移動します.
- 建物をクエリします
- “Key”フィールドにbuildingと入力します.
- “Value”フィールドは空のままにしておくか、必要に応じて建物の種類を指定します.
- 例えば,住宅のみを取得したい場合はhouseあるいはapartmentsなどを指定します.
- 建物を取得したいエリアを選択します.複数の選択方法があり,座標を入力するか,地図から選択するか,レイヤ境界から選択するなどの方法があります.
Run Query
をクリックします.これにより、建物データがダウンロードされ、QGISプロジェクトにロードされます.