Bir çokgenin içine kaç çokgen koyabileceğimi nasıl hesaplayabilirim?


9

Genellikle qgis kullanırım. Sorunumu bir örnekle açıklıyorum: bir orman (düzensiz geometri1) ve bir ağaç (geomery2) var. Ormanın içerebileceği maksimum ağaç sayısını bilmek istiyorum. Ayrıca orman içinde bu ağaçların en iyi eğilim bir şekil dosyası çıktı istiyorum.resim açıklamasını buraya girin


3
Güzel bir sorun ....
WKT

Nasıl başlayacağımı bile bilmiyorum. Maters derecesi problemi / algoritması gibi geliyor.
HeikkiVesanto

2
ArcGIS'in ücretsiz deneme sürümüne erişebiliyorsanız (veya ücretsiz olan R'yi indirebilirsiniz), Geospatial Modelleme Ortamı yazılımının gencirclesinpolys (Generate Circles In Polygons)yararlı olabilecek bir aracı vardır.
Joseph

2
Ambalaj sorunlarını çözmek için bir araç arıyorsunuz, ancak QGIS için herhangi bir
şeyden

1
@Joseph Geospatial Modeling Environment aracını kullandım, işe yarıyor. Maalesef, araç çokgen sınırları içinde düzenli bir daire (veya altıgen) düzenlemesi üretir, bu da çıktı şeklinin (özelliklerin) özelliklerin en iyi yerleşimini göstermemesi anlamına gelir, yani mümkün olan maksimum sayı.
ksatzu

Yanıtlar:


5

Bu uygulamayı çevrimiçi deneyin svgnest.com/

adımlar: 1. svg bir dosya oluşturur (Şekil 1'de olduğu gibi); 2. Bağlantıya gidin ve svg yükleyin; 3. Fare ile kap poligonunu seçin; 4. başla

bir dizi yinelemeden sonra svg dosyasını kilitleyebilir ve indirebilirsiniz (bkz. Şekil 2)

Not: çokgen ve daireler aynı dosyada olmalıdır svg

Şekil 1

şekil 2


4

İlginç bir sorun!

Düzensiz çokgenlerle benzer bir şey yaptım (bu durumda, binalar üst üste binmeyecek şekilde paketlendi)

resim açıklamasını buraya girin

Kullanılan postgresql ve postgis ve python. Kaba algoritma (önceki değeri)

  • Çokgenin sınırlayıcı kutusunda rastgele nokta bulma (ST_Envelope)
  • Çokgenin dışında bir nokta varsa, bir adım geri gidin
  • Bu rastgele noktayı merkez alan ağaç için bir geometri oluşturun
  • Bu, mevcut yerleştirilmiş herhangi bir ağacın (ST_Overlaps) üst üste binmesi durumunda, başlamak için geri dönün
  • Noktaya ağaç ekle
  • Başlamak için geri dön

Bunun global optimum verimi sağlayacağını garanti edemem, bunun için bir 'daire paketleme' algoritmasına ihtiyacınız olacak (diğerlerinin de belirttiği gibi).

Sonsuza kadar devam edecek, bu yüzden ne zaman çıkacağınıza karar vermek için bazı kodlar girmeniz gerekecek, ör.

  • yerleştirilen ağaçların birleşik alanı çokgen alanının belirli bir yüzdesi olduğunda
  • üst üste binmeyen bir ağacın bulunması N'den fazla yinelemeye ihtiyaç duyduğunda.

Wikipedia'daki Circle Packaging'e göre , en iyi paketleme yoğunluğu altıgen bir ızgara ile elde edilir. MMQGIS kullanarak, aralıkları aynı olduğunu düşündüğüm ağaçlarınızın büyüklüğüne dayanan böyle bir ızgara oluşturmak mümkün olabilir. Sonra her köşeye bir ağaç yerleştirin. Ama sonra, ağaç sayısını en üst düzeye çıkarmak için ızgarayı nereye yerleştireceğinizi bilme probleminiz var.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.