ポリゴン内に配置できるポリゴンの数を計算するにはどうすればよいですか?


9

私は通常qgisを使用します。私は問題を例で説明します:森(不規則なgeometry1)と1つの木(geomery2)があります。森に含めることができる木の最大数を知りたい。さらに、フォレスト内のこれらの木の最良の配置のシェープファイル出力が必要です。ここに画像の説明を入力してください


3
ニースの問題....
WKT

どうやって始めたらいいのか分からない。母校度問題/アルゴリズムのように聞こえます。
HeikkiVesanto 2016年

2
ArcGISの無料トライアルにアクセスできる場合(または無料のRをダウンロードできる場合)、Geospatial Modeling Environmentソフトウェアにはgencirclesinpolys (Generate Circles In Polygons)便利なツールが用意されています。
ジョセフ

2
パッキングの問題を解決するためのツールを探していますが、QGISについては知りません
暗闇

1
@ジョセフ私は地理空間モデリング環境ツールを使用しました。残念ながら、ツールはポリゴンの境界内に円(または六角形)の規則的な配置を生成します。これは、出力形状が(必ずしも)フィーチャの最適な配置を示さないことを意味します。つまり、可能な最大数を意味します。
ksatzu

回答:


5

このアプリをオンラインで試してくださいsvgnest.com/

手順:1. svgがファイルを作成します(図1のように)。2.リンクに移動してsvgをアップロードします。3.コンテナポリゴンをマウスで選択します。4.開始

何度も繰り返した後、svgファイルをロックしてダウンロードできます(図2を参照)

注意:ポリゴンとサークルは同じファイルsvgにある必要があります

図1

図2


4

興味深い問題!

不規則なポリゴンで同様のことを行いました(この場合、建物は重ならないように詰め込まれています)

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

postgresqlとpostgis、およびpythonを使用しました。大まかなアルゴリズムは

  • ポリゴンのバウンディングボックス(ST_Envelope)でランダムな点を見つける
  • ポリゴンの外側を指している場合は、1ステップ戻ります
  • このランダムな点を中心とするツリーのジオメトリを作成します
  • それが既存の配置済みツリー(ST_Overlaps)と重複する場合は、最初に戻ります。
  • ポイントにツリーを追加
  • 最初に戻る

これが全体的な最適を与えることを保証することはできません、あなたはそのための「サークルパッキング」アルゴリズムが必要です(他の人が述べたように)。

それは永遠に続くので、いつ終了するかを決定するためにいくつかのコードを入れる必要があります、例えば

  • 配置された木の合計面積がポリゴンの面積の特定の割合である場合
  • 重複しないツリーを見つけるのにN回を超える反復が必要な場合。

WikipediaのCircle Packingによると、六角形グリッドを使用すると、最適なパッキング密度が達成されます。MMQGISを使用してこのようなグリッドを作成することは可能かもしれません。MMQGISの間隔は、ツリーのサイズに基づいています。次に、各頂点にツリーを配置します。しかし、その場合、木の数を最大化するためにグリッドをどこに配置するかを知るという問題があります。

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