出現場所(ポイント)から最も近い植生(ポリゴン)までの最短距離

5,275 views
Skip to first unread message

Tamu

unread,
Jul 13, 2017, 11:12:09 AM7/13/17
to QGIS初心者質問グループ
初めて質問させていただきます。

出現場所(ポイント)から最も近い植生(ポリゴン)までの最短距離、これを算出する方法はございますでしょうか?
ポイントは複数ありますので、それぞれからの最短距離が知りたいと思っております。


周辺にQGISに詳しい方がおらず、
本やネットでも探してみましたが点と点の距離の算出方法しか見つける事が出来なかったため、
初歩的なことかもしれませんが皆様からご教授いただきたいと思い質問させていただきました。
よろしくお願いいたします

QGIS 2.18.10
Windows7

きた

unread,
Jul 13, 2017, 12:10:32 PM7/13/17
to QGIS初心者質問グループ
ポリゴンの中心までであれば、プロセッシングツールの「最寄りのハブまでの距離」で一番近いポリゴンの中心までラインを引けるようです。
(2.14の場合は、「Distance to nearest hub」となっています)
一番近い外周線までのラインを引きたい場合には、少し工夫が必要です。
まず、ポリゴンをラインに変換します。
プロセッシングツールの「ポリゴンをラインへ」を選択してポリゴンをラインに変換します。
次に変換したラインをノードごとに分割します。これをしないと、繋がったラインの中心にラインが引かれます。
ラインの分割はプロセッシングツールの「Explode lines」で行います。
ラインを分割したら、プロセッシングツールの「最寄りのハブまでの距離」で、
「Distination hubs layer」に分割したラインレイヤを指定して、「出力シャープタイプ」を「Line to hub」を選択します。
こうすると、ポイントに一番近いラインの中心までラインが引かれます。


残念ながら、ホントに一番近いライン上では無いです。

ほかにいい方法があれば、教えてください。

きた



Yoshio Mishima

unread,
Jul 13, 2017, 10:52:16 PM7/13/17
to QGIS初心者質問グループ
こんにちは 三島です。

多数のpointから特定の植生polygonまでの最短距離を求める処理ですが
NNJoin plugin を使われるとよいのではとおもいます。
https://plugins.qgis.org/plugins/NNJoin/

QGISのメニューバーの「プラグイン」から「プラグインの管理とインストール」を開き
検索欄に NNJ と入力すると求めるプラグインが出てきます。
チェックをいれてインストールを実行してください。

QGISのメニューバーの「ベクタ」か「プラグイン」にNNJoinプラグインがでてきます。

Input Vector layer にポイントデータを
Join Vector layer に植生ポリゴンを指定し処理を実行すると
新しいポイントベクタレイヤが出力されます。
属性テーブルに各ポイントから最も近いポリゴンのIDとそのエッジまでの距離が格納されているはずです。

なお、ポイントデータとポリゴンデータ両方の座標を
平面直角座標やUTMといった単位がメートルの同じものにそろえておく必要があります。
(ポイントだけ緯度経度だった、というのはよくあることです)

ではでは

きた

unread,
Jul 13, 2017, 10:57:40 PM7/13/17
to QGIS初心者質問グループ
おー
三島さんありがとうございます!
勉強になりました。
早速メモします。

きた

きた

unread,
Jul 14, 2017, 6:36:08 AM7/14/17
to QGIS初心者質問グループ
NNJoinプラグインを試してみました。
ポリゴンの外にあるポイントだとそのままでいいですが、ポリゴンの中にあるポイントは、Distanceが「0(ゼロ)」になってしまうようです。
そのような場合は、ポリゴンをラインに変換するといいですね。
あと、どこが一番近いか視覚的にはわからないので、「最寄りのハブまでの距離」も組み合わせると良いかもしれないですね。

きた

s.c.p....@gmail.com

unread,
Aug 5, 2017, 2:40:04 AM8/5/17
to QGIS初心者質問グループ
>きたさん・三島さん

お返事が遅くなってしまいすみません!
アドバイスをしていただきありがとうございます!!

今回は、三島さんよりアドバイス頂いた「NNJoin plugin」から算出することにいたしました。
ポリゴン内にあるポイントは0mになりますが、そういう方法で算出したかったため好都合でした^^*

みなさんからアドバイスいただく前に、森林縁であるラインを1m単位でポイント化し、
出現場所と森林縁のポイント間同士の最短距離を算出してみましたが、やはり誤差が出てしまいダメでした。
また森林のポリゴン内にある点の距離も0mとならないため断念しました…。

こんな便利なプラグインがあったんですね!!知らないと損だなと改めて思いました。
QGISで使える機能について、もっと検索しやすいツールがあればいいですね。
では、ご教授いただき、ありがとうございました!
Reply all
Reply to author
Forward
0 new messages