見出し画像

【QGIS×林業】歩いた範囲の面積計算を一部自動化する方法

これまでQGISと登山用アプリ「ジオグラフィカ」を使って、

 ・下刈り等の進捗管理

 ・歩いた面積の計算

についての記事を投稿してきました。


実際に林業の現場でこの方法を活用しており、日々データの更新をしています。

その中で感じた課題は毎回データを編集することに時間がかかることです。

そこで今回はデータ編集の一部を自動化することを試みました。


1.使用するデータの準備

ジオグラフィカのインストールとトラックデータのとり方は、こちらをご参照ください。


1-1.トラックデータの表示

表示したいトラックのデータ(.gpx)を、QGISのプロジェクトにドラッグアンドドロップします。

すると下のような画面が表示されます。

スクリーンショット 2021-11-12 224050 - コピー

track_pointsを選択してOKをクリック。

スクリーンショット 2021-11-12 224050

トラックデータが表示されます。

スクリーンショット 2021-11-12 230055


1-2.不要なデータの削除

この赤く囲われている範囲は、今回作業した箇所までの移動を記録したものですので削除します。

スクリーンショット 2021-11-12 230055 - コピー

「.gpx」のままではデータの削除等の修正ができないので、「.shp(シェープファイル)」に保存し直します。

レイヤパネルのポイントレイヤを右クリック>エクスポート>新しいファイル名で地物を保存をクリック。

スクリーンショット 2021-11-13 202042

形式:ESRI Shapefile

ファイル名:保存場所とファイル名を指定

CRS:プロジェクトCRS

上記以外はそのままでOKをクリック。

スクリーンショット 2021-11-13 202609

新しいレイヤが作成されました。

スクリーンショット 2021-11-13 203141

この新しいレイヤの不要な箇所を削除します。

削除の方法はこちらの記事の「3-2.不要なデータの削除」をご参照ください。

不要な箇所を削除しました。

スクリーンショット 2021-11-14 124645


2.処理を自動化する【モデルデザイナー】

次にこのデータの面積を「自動で」求められる処理をモデルデザイナーで行います。

面積を求める処理についてはこちらの記事をご参照ください。

手順は下記の通りです。

①ポイントデータを全て包むポリゴンデータを作成する【凹包】

②無効なジオメトリを修正する【ジオメトリの修復】

③面積を求める【ジオメトリ属性の追加】


2-1.ポイントデータを全て包むポリゴンデータを作成する【凹包】

プロセシングツールボックスのモデルをクリック。

スクリーンショット 2021-11-14 125758

新しいモデルを作成をクリック。

スクリーンショット 2021-11-14 125915

モデルデザイナーのウィンドウが表示されます。

スクリーンショット 2021-11-14 130128

入力タブベクタレイヤをダブルクリック。

スクリーンショット 2021-11-15 222745

今回は入力するデータとして、ポイントデータであるトラックデータを使用します。

説明の欄にはトラックデータと入力し、ジオメトリタイプは点(Point)を選択。OKをクリック。

スクリーンショット 2021-11-15 222951

入力レイヤが追加されました。

スクリーンショット 2021-11-15 223437


2-2.無効なジオメトリを修正する【ジオメトリの修復】

アルゴリズムタブを開いて凹包と検索し、凹包(k近傍法)をダブルクリック。

画像16

入力レイヤの「123▼」をクリックし、モデル入力を選択。

スクリーンショット 2021-11-15 224642

トラックデータを入力レイヤとして使用するように設定します。

スクリーンショット 2021-11-15 224824

隣接点の数は今回「10」と設定しました。

※データによっては処理が完了しない時もあります。この時は数を大きくする(100など)とうまくいくようです。理由は不明です。

それ以外はそのままでOKをクリック。

スクリーンショット 2021-11-17 210642

凹包の処理が追加されました。

スクリーンショット 2021-11-17 211225


2-2.無効なジオメトリを修正する【ジオメトリの修復】

凹包で作成されたポリゴンデータは無効なジオメトリが含まれることがあります。

そのままでは次の「ジオメトリ属性を追加」で面積計算が出来ないので、ジオメトリの修復の処理を行います。

※無効なジオメトリとジオメトリの修復については、こちらの記事の3-1をご参照ください。


アルゴリズムタブを開いてジオメトリの修復と検索し、表示されたジオメトリの修復をダブルクリック。

スクリーンショット 2021-11-26 112906

入力レイヤの「123▼」をクリックし、アルゴリズム出力を選択。

スクリーンショット 2021-11-26 113704

入力レイヤをアルゴリズム”凹包(k近傍法)”の”出力レイヤ”とします。

それ以外はそのままでOKをクリック。

スクリーンショット 2021-11-26 113831

ジオメトリの修復が追加されました。

スクリーンショット 2021-11-26 114209


2-3.ポリゴンレイヤの面積を計算する【ジオメトリ属性の追加】

最後に凹包によって作られたポリゴンレイヤの面積を計算する処理、ジオメトリ属性を追加の設定します。


アルゴリズムタブを開いてジオメトリ属性を追加と検索し、表示されたジオメトリ属性を追加をダブルクリック。

スクリーンショット 2021-11-26 115129

入力レイヤの「123▼」をクリックし、アルゴリズム出力を選択。

スクリーンショット 2021-11-26 115241

入力レイヤをアルゴリズム”ジオメトリの修復”の”出力レイヤ”とします。

スクリーンショット 2021-11-26 115347

計算に利用する座標参照系を設定します。

※座標参照系はプロジェクトのCRSとし、使用しているのは平面直角座標系のEPSG:2452です。地理座標系(緯度経度)では正確な面積の計算が出来ません。


そして今回は最終結果なので出力レイヤの名前を設定します。

それ以外はそのままでOKをクリック。

スクリーンショット 2021-11-26 115557

これでモデルは完成です。

スクリーンショット 2021-11-26 120242


2-4.モデルの保存

作成したモデルは保存しておくと次回使用する時に便利です。

モデルのプロパティの名前を入力します。

スクリーンショット 2021-11-26 155931

モデルを保存をクリック。

スクリーンショット 2021-11-26 160015

保存場所とファイル名を決めて保存します。

スクリーンショット 2021-11-26 160314

保存したモデルを使用する時はモデルをクリックし、既存のモデルを開くをクリック。

スクリーンショット 2021-11-26 160544

保存したモデルを選択して開きます。

スクリーンショット 2021-11-26 160723

先ほど保存したモデルが開きます。

スクリーンショット 2021-11-26 160842


3.モデルの実行

最後に実際に作ったモデルの実行をします。

モデルを実行をクリック。

スクリーンショット 2021-11-26 161334

入力するトラックデータを指定し、データの名前や保存場所などを設定して実行をクリック。

スクリーンショット 2021-11-26 161546

トラックのポイントデータを全て包むポリゴンデータが出力されました。

スクリーンショット 2021-11-26 162505

最後に面積が計算されているかを確認します。

ポリゴンレイヤを右クリックし、属性テーブルを開くをクリック。

スクリーンショット 2021-11-26 162611

面積(area)が計算されています。単位は[㎡]です。

(perimeterは周囲長(m)です。)

スクリーンショット 2021-11-26 162723

以上で説明は終了です。

いいなと思ったら応援しよう!