不規則な境界内に均等に分散されたポイントを作成する


8

奇妙な形をした一連のポリゴン(以前は正方形でしたが、現在はドーナツの穴のある正方形)内に、均等に分散した一連のポイントを作成する必要があります。

これまでにこの問題を解決した方法は、ポリゴンのフィッシュネットを作成し、フィッシュネットが作成した各ユニットの重心を使用することです。

しかし、問題はより複雑になり、私は今より複雑なポリゴンを持っています。フィッシュネットユニットの重心は、もはや十分ではありません。

ポリゴンをラスターに変換してからラスターの分割ツールを使用して、指定した数の等しい面積単位で出力を作成しようとしましたが、入力ベクターデータに必要なデータがないため機能しませんそのラスタープロセスが適切に実行されることを保証します。

Arc 9.3を使用しています(ただし、他のいくつかのソフトウェアパッケージにもアクセスできます)


3
「均等に分散」とは、定義済みグリッドに等間隔、ランダムな原点(場合によってはランダムな方向)のグリッドに等間隔に配置、各グリッドセル内のランダムに配置された1つのポイント、均一にランダム(グリッドが不要)など、いくつかのことを意味します。お互いを避けようとする傾向があるランダムですらある。どれが必要かを具体的に教えてください。
whuber

この質問に似ていますか?gis.stackexchange.com/questions/4828/…–
Kirk

@whuber:うーん...正直なところ、私にはわかりません。理想的には、ポイントは、ポイント間の距離ができるだけ等しくなるように広げられます。それらは完全なグリッドにある必要はありません。
カプジャキ

これらは微妙なことですが、距離を均等化することはランダム性の多くを破壊します。1つの場所の知識が近くの場所の知識をより予測可能にすることを保証します。特に、任意のポイントのすぐ近く(小さい)には他のポイントがありません。それはまったく均一ではありません!そのようなことを考えるときに始めるのに良い場所は、ポイントがどのように使用されるかを熟考することです。彼らが木を植えるようなものを設計するためのものであるならば、遠く離れていることは素晴らしいです。ただし、統計分析を行う場合は注意が必要です。
whuber

@Whuber:確かに、あなたが話す複雑さは私にとって新しいものです。この目的は、特定の領域内の油井の潜在的な場所を示すことです。ランダム性は必須ではありません。ポイント間の距離が最大化され、境界ポリゴン全体に少なくともいくらか均等に分散されます。
カプジャキ

回答:


3

QGISをインストールする場合fToolsのパッケージを、「通常のポイント」を生成するオプションがあります([ツール] - > [リサーチツール- >定期的なポイント)

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


これにより、おそらくグリッドが生成されますか?そして、ポリゴンまたはポリゴンのセット内にあるように制約されていませんか?(これは批判ではありません。
後で

2
@whuber:ポイントはすべて、「入力境界レイヤー」で指定されたポリゴン内にあります
アンダーダーク

2

PostGISでは、次のようなクエリを使用してそれを行うことができます。

SELECT grid.the_geom FROM 
(select st_setsrid(st_point(x, y), polygon_srid) AS the_geom from 
(select generate_series(minX, maxX, grid_size) AS x) AS a,
(select generate_series(minY, maxY, grid_size) AS y) AS b) AS grid,
polygon_table
WHERE ST_Within(grid.the_geom, polygon_table.the_geom);

この例を使用して、postgisonlineで試してみることができます。

SELECT grid.the_geom FROM 
(select st_setsrid(st_point(x, y), 3021) AS the_geom from 
(select generate_series(130000, 142000, 500) AS x) AS a,
(select generate_series(260000, 270000, 500) AS y) AS b) AS grid,
lakes
WHERE ST_Within(grid.the_geom, lakes.the_geom);

上のクエリを上部のテキストエリアに置き、Map1-buttonを押します。背景のドロップダウンから「レーク」を選択して、ポイントの塗りつぶしに使用されるポリゴンを表示することもできます。

/ニクラス


Nicklasの投稿は順調に進んでいるようです。トーグ湖に分布させたいポイントの数を指定する方法はありますか?このような方法をしばらく探していました。おかげで、レイ

総面積を均等に分割して、ポリゴンから「ブロック」を作成する方法はありますか?つまり、9つのポイントが必要な場合は、ポリゴンを等しい面積の9つの「ブロック」に分割し、それらから重心を取得しますか?
カプジャキ

ポリゴンは奇妙な形をしている可能性があるので、それを実現するには試行錯誤のアルゴリズムが必要になると思います。
NicklasAvén、2011

これはうまくいくようです。残念ながら、私はそれをどのように使用できるか正確に理解していません。自分のデータをシナリオに取り込むにはどうすればよいですか?
カプジャキ2011年

@Kapjaki、ポリゴンをpostgisテーブルに読み込み、最初の例では、「olygon_table」をポリゴンテーブルの名前に変更します。lsoは、ポリゴンの範囲と一致するようにgenerate_seriesを変更し、500から任意のグリッドサイズに変更します。クエリを書き直してエクステントを直接見つけることができます。車の中の私の電話からではない:)
NicklasAvénJun

0

Lloydsアルゴリズムを使用できます。

https://en.m.wikipedia.org/wiki/Lloyd%27s_algorithm

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