【QGIS×林業】歩いた範囲の面積計算を一部自動化する方法
これまでQGISと登山用アプリ「ジオグラフィカ」を使って、
についての記事を投稿してきました。
実際に林業の現場でこの方法を活用しており、日々データの更新をしています。
その中で感じた課題は毎回データを編集することに時間がかかることです。
そこで今回はデータ編集の一部を自動化することを試みました。
1.使用するデータの準備
ジオグラフィカのインストールとトラックデータのとり方は、こちらをご参照ください。
1-1.トラックデータの表示
表示したいトラックのデータ(.gpx)を、QGISのプロジェクトにドラッグアンドドロップします。
すると下のような画面が表示されます。
track_pointsを選択してOKをクリック。
トラックデータが表示されます。
1-2.不要なデータの削除
この赤く囲われている範囲は、今回作業した箇所までの移動を記録したものですので削除します。
「.gpx」のままではデータの削除等の修正ができないので、「.shp(シェープファイル)」に保存し直します。
レイヤパネルのポイントレイヤを右クリック>エクスポート>新しいファイル名で地物を保存をクリック。
形式:ESRI Shapefile
ファイル名:保存場所とファイル名を指定
CRS:プロジェクトCRS
上記以外はそのままでOKをクリック。
新しいレイヤが作成されました。
この新しいレイヤの不要な箇所を削除します。
削除の方法はこちらの記事の「3-2.不要なデータの削除」をご参照ください。
不要な箇所を削除しました。
2.処理を自動化する【モデルデザイナー】
次にこのデータの面積を「自動で」求められる処理をモデルデザイナーで行います。
面積を求める処理についてはこちらの記事をご参照ください。
手順は下記の通りです。
①ポイントデータを全て包むポリゴンデータを作成する【凹包】
②無効なジオメトリを修正する【ジオメトリの修復】
③面積を求める【ジオメトリ属性の追加】
2-1.ポイントデータを全て包むポリゴンデータを作成する【凹包】
プロセシングツールボックスのモデルをクリック。
新しいモデルを作成をクリック。
モデルデザイナーのウィンドウが表示されます。
入力タブのベクタレイヤをダブルクリック。
今回は入力するデータとして、ポイントデータであるトラックデータを使用します。
説明の欄にはトラックデータと入力し、ジオメトリタイプは点(Point)を選択。OKをクリック。
入力レイヤが追加されました。
2-2.無効なジオメトリを修正する【ジオメトリの修復】
アルゴリズムタブを開いて凹包と検索し、凹包(k近傍法)をダブルクリック。
入力レイヤの「123▼」をクリックし、モデル入力を選択。
トラックデータを入力レイヤとして使用するように設定します。
隣接点の数は今回「10」と設定しました。
※データによっては処理が完了しない時もあります。この時は数を大きくする(100など)とうまくいくようです。理由は不明です。
それ以外はそのままでOKをクリック。
凹包の処理が追加されました。
2-2.無効なジオメトリを修正する【ジオメトリの修復】
凹包で作成されたポリゴンデータは無効なジオメトリが含まれることがあります。
そのままでは次の「ジオメトリ属性を追加」で面積計算が出来ないので、ジオメトリの修復の処理を行います。
※無効なジオメトリとジオメトリの修復については、こちらの記事の3-1をご参照ください。
アルゴリズムタブを開いてジオメトリの修復と検索し、表示されたジオメトリの修復をダブルクリック。
入力レイヤの「123▼」をクリックし、アルゴリズム出力を選択。
入力レイヤをアルゴリズム”凹包(k近傍法)”の”出力レイヤ”とします。
それ以外はそのままでOKをクリック。
ジオメトリの修復が追加されました。
2-3.ポリゴンレイヤの面積を計算する【ジオメトリ属性の追加】
最後に凹包によって作られたポリゴンレイヤの面積を計算する処理、ジオメトリ属性を追加の設定します。
アルゴリズムタブを開いてジオメトリ属性を追加と検索し、表示されたジオメトリ属性を追加をダブルクリック。
入力レイヤの「123▼」をクリックし、アルゴリズム出力を選択。
入力レイヤをアルゴリズム”ジオメトリの修復”の”出力レイヤ”とします。
計算に利用する座標参照系を設定します。
※座標参照系はプロジェクトのCRSとし、使用しているのは平面直角座標系のEPSG:2452です。地理座標系(緯度経度)では正確な面積の計算が出来ません。
そして今回は最終結果なので出力レイヤの名前を設定します。
それ以外はそのままでOKをクリック。
これでモデルは完成です。
2-4.モデルの保存
作成したモデルは保存しておくと次回使用する時に便利です。
モデルのプロパティの名前を入力します。
モデルを保存をクリック。
保存場所とファイル名を決めて保存します。
保存したモデルを使用する時はモデルをクリックし、既存のモデルを開くをクリック。
保存したモデルを選択して開きます。
先ほど保存したモデルが開きます。
3.モデルの実行
最後に実際に作ったモデルの実行をします。
モデルを実行をクリック。
入力するトラックデータを指定し、データの名前や保存場所などを設定して実行をクリック。
トラックのポイントデータを全て包むポリゴンデータが出力されました。
最後に面積が計算されているかを確認します。
ポリゴンレイヤを右クリックし、属性テーブルを開くをクリック。
面積(area)が計算されています。単位は[㎡]です。
(perimeterは周囲長(m)です。)
以上で説明は終了です。