ポリゴンの外側にランダムポイントを作成する方法は?


11

ランダムポイントの作成ツールは、ポリゴン内に特定の数のポイントを生成できます。境界ボックスが与えられた場合、それらのポリゴンの外側にランダムポイントを生成する方法はありますか?

回答:


13

個人的には、ArcGISのランダムポイントアルゴリズムは好きではありません。または、地理空間モデリング環境(GME)genrandompnts機能を使用します。ランダムポイントが除外される特定のポリゴンを識別できます(添付されている.jpgの強調表示された領域を参照)。すべてのこのソフトウェアの最高は無料です。

GMEは、洗練されたワークフローを構築するために使用できる小さな「ビルディングブロック」から完全に独立した分析プログラムに至るまで、分析およびモデリングツールのスイートを提供します。また、いくつかの分析ツールを駆動する統計エンジンとして、非常に強力なオープンソースソフトウェアRを使用します。Rの多くの長所の1つは、Rがオープンソースであり、完全に透明であり、十分に文書化されていることです:科学分析ソフトウェアの重要な特性。

ここに画像の説明を入力してください


1
デフォルトのランダムポイントアルゴリズムが気に入らない理由と、GMEの方が最適な理由について詳しく説明してください。
スティーブンリード

@Aaronいいね!これはHawthのモデリングツールだったので、試したことはありません。ダウンロードしてクラックする必要があります。
om_henners

3
@Stephen先月、私は4つのクラスでランダムポイントを生成していました。複数の問題が発生しました:1)ArcGISは入力ポリゴンの外側にいくつかのポイントを作成しました2)Arcは入力パラメーターに対して小さすぎるエリアを扱うのに苦労しました(例:最小許容距離= 50m&ポイント= 50)ルールに違反するまでランダムポイントを生成し、警告メッセージを表示することによる問題3)ArcのRPGは、おそらくRがローカルメモリを使用しているため、GMEよりも遅くなります。
アーロン

良いですね!@Aaronをバッチ処理できるように、Python境界がありますか?

2
サポートドキュメントの@Seenチェックアウト自動化およびバッチ処理セクション(p10):spatialecology.com/gme/images/SpatialEcologyGME.pdf
アーロン

4

内部の非点空間を表すドーナツ穴と、多角形領域の境界領域を表す空間範囲を持つドーナツポリゴンを作成する必要があります。


補遺:ArcInfoライセンスを使用すると、消去ツールでこれを実行できます
-om_henners

3

申し訳ありませんが、抵抗することはできません。GMEのようなもので内部で何が起こっているかを知ることは常に良いので、実際のRコードでの解決策を以下に示します。

require(sp)
require(rgeos)

# Create example polygon data
x <- readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
y <- readWKT("POLYGON ((3 3, 7 3, 7 7, 3 7, 3 3))")

# Calculate difference in polygon geometries to create null polygon
d <- gDifference(x,y)

# Create random sample in non-null polygon
rs <- spsample(d, 20, type="random")  

# Plot results  
plot(d, col="red")
  plot(rs,pch=19,col="black",add=TRUE)

このアプローチは、GMEがこれを行う方法とは非常に異なる可能性がありますが、ネイティブのR sp空間クラスとかなり新しいトポロジライブラリを使用してコードを非常に効率的にしています。これは、forループで簡単にラップできる例を示しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.