Come calcolare quanti poligoni posso inserire in un poligono?


9

Di solito uso qgis. Spiego il mio problema con un esempio: c'è una foresta (geometria irregolare1) e un albero (geomery2). Voglio sapere il numero massimo di alberi che la foresta può contenere. Inoltre, voglio un output dello shapefile della migliore disposizione di questi alberi all'interno della foresta.inserisci qui la descrizione dell'immagine


3
Bel problema ....
WKT,

Non so come vorrei nemmeno iniziare. Sembra un problema / algoritmo di grado Maters.
Heikki Vesanto,

2
Se puoi accedere a una versione di prova gratuita di ArcGIS (o scaricare R, che è gratuito), il software Geospatial Modeling Environment ha uno gencirclesinpolys (Generate Circles In Polygons)strumento che potrebbe essere utile.
Giuseppe,

2
Stai cercando uno strumento per risolvere i problemi di imballaggio ma non ne sono a conoscenza per QGIS
underdark

1
@Joseph Ho usato lo strumento Geospatial Modeling Environment, funziona. Sfortunatamente lo strumento genera una disposizione regolare di cerchi (o esagoni) all'interno dei limiti dei poligoni, questo implica che la forma di output non mostra (necessariamente) la migliore disposizione delle caratteristiche, intendo il numero massimo possibile di esso.
ksatzu,

Risposte:


5

Prova questa app online svgnest.com/

passaggi: 1. svg crea un file (come nella Figura 1); 2. Vai al link e carica svg; 3. Seleziona con il mouse il poligono contenitore; 4. inizio

dopo alcune iterazioni, puoi bloccare e scaricare il file svg (vedi Figura 2)

NB: poligono e cerchi devono essere nello stesso file svg

Figura 1

figura 2


4

Problema interessante!

Ho fatto una cosa simile con i poligoni irregolari (in questo caso, gli edifici sono stati imballati in modo da non sovrapporsi)

inserisci qui la descrizione dell'immagine

Postgresql e postgis usati e pitone. L'algoritmo grezzo era

  • Trova un punto casuale nel riquadro di delimitazione del poligono (ST_Envelope)
  • Se punta fuori dal poligono, torna indietro di un passo
  • Crea una geometria per l'albero centrata in questo punto casuale
  • Se questo si sovrappone a qualsiasi albero posizionato esistente (ST_Overlaps), tornare indietro per iniziare
  • Aggiungi albero al punto
  • Torna indietro per iniziare

Non posso garantire che questo fornirà l'ottimale globale, per questo avresti bisogno di un algoritmo di "circle packing" (come altri hanno già detto).

Andrà avanti per sempre, quindi dovrai inserire del codice per decidere quando uscire, ad es

  • quando l'area combinata degli alberi posizionati è una certa percentuale dell'area del poligono
  • quando sono necessarie più di N iterazioni per trovare un albero non sovrapposto.

Secondo Circle Packing su Wikipedia, la migliore densità di imballaggio si ottiene con una griglia esagonale. Potrebbe essere possibile creare una griglia del genere utilizzando MMQGIS, la cui spaziatura si basa sulla dimensione dei tuoi alberi, che presumo siano identici. Quindi posizionando un albero su ciascun vertice. Ma poi, hai il problema di sapere dove posizionare la griglia per massimizzare il numero di alberi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.