Trouver le rayon maximum du cercle qui rentrera dans un polygone irrégulier?


9

J'ai un problème qui, je pense, pourrait être résolu en utilisant l' outil Géométrie zonale dans la boîte à outils ArcGIS Spatial Analyst. Cependant je n'ai pas de licence pour Spatial Analyst, donc je cherche une alternative; éventuellement en utilisant QGIS.

Comment puis-je trouver le rayon maximum d'un cercle qui s'adaptera dans un polygone irrégulier?

Notez que le polygone peut être une coque convexe ou concave (comme illustré ci-dessous) et la solution doit répondre aux deux.


J'ai essayé la solution de Joseph mais malheureusement le résultat n'est pas ce que je cherchais.

Tout d'abord, j'ai des polygones très irréguliers comme celui-ci:

mon polygone

Si je suis la description de Joseph, le résultat ressemble à ceci:

résultat

C'est à coup sûr le résultat de cette solution, mais ce n'est pas la réponse à ma question.

L'important pour moi est de répondre à la question de savoir dans quelle mesure le rayon d'un cercle peut être au maximum afin que le cercle soit toujours complètement à l'intérieur du polygone, quel que soit l'endroit où se trouve le centre du cercle.

Par exemple, il y a beaucoup plus d'espace au nord du polygone, de sorte qu'il peut être placé un cercle beaucoup plus grand qu'au sud du polygone. Mais quelle taille peut avoir ce cercle?


1
Bienvenue dans GIS: SE! Vous cherchez quelque chose comme Statistiques zonales ?
Joseph

2
Je suis peut-être un peu aveugle mais je ne trouve pas de réponse déjà existante à ma question. Le lien en haut de cette page "comment calculer les statistiques raster pour les polygones" à mon avis ne correspond pas à ma question. Alors peut-être d'autres idées ??
Christian

Réponses:


6

Si vous voulez connaître le rayon minimum pour un cercle à l'intérieur d'un polygone comme vous l'avez mentionné (et ne pas utiliser de rasters, ce que vous pouvez probablement faire avec les statistiques zonales ), cela nécessitera quelques étapes:

  • Prenez votre couche de polygones (illustrée dans un exemple très simple) et utilisez Vector > Geometry Tools > Polygon centroids . Nous utiliserons cette sortie "point central" pour cela plus tard.

Polygone simple

  • Ensuite, utilisez la fonction SAGA Convertir les polygones en lignes de la boîte à outils de traitement
  • Prenez le calque de ligne de sortie et utilisez Convertir les lignes en points , toujours à partir de SAGA (diminuez la distance des points pour générer plus de points, cela peut vous donner un résultat plus précis à la fin).

Polygone analysé

  • Maintenant, nous pouvons utiliser la fonction Distance au hub le plus proche de la boîte à outils. Sélectionnez le calque que vous avez converti de lignes en points en tant que calque de points source ; et sélectionnez la couche Center Point comme couche Destinations Hubs . Une fois que vous avez exécuté cela, vous devriez recevoir une couche de sortie qui contient les distances de chaque point de périmètre au point central:

Distance vers et depuis les points

Attributs de distance

La distance minimale doit être le rayon minimum de votre cercle dans ce polygone. Nous pouvons tester cela en créant un tampon ( Vector > Outils de géotraitement > Tampon ) sur la couche de points centraux et en copiant / collant la distance minimale de la table attributaire dans l' option Distance tampon :

Tampon


2
Très bien fait!
WhiteboxDev

2
J'ai trouvé cela en recherchant une question récente cherchant essentiellement à faire la même chose. Alors qu'au début, je pensais que cela pourrait résoudre leur problème, en lisant vos étapes, il semble y avoir un défaut important où le processus ne fonctionnera que pour les polygones qui sont des coques convexes et non coques concaves. Cela est démontré dans la modification apparente des questions. Le centre de gravité d'une telle forme ne tombera pas nécessairement en son sein, et même si c'est le cas, vous pouvez voir qu'un cercle plus grand s'adaptera à chaque extrémité que le milieu (où la distance minimale du moyeu serait) de la forme d'exemple.
Chris W

@ChrisW - Merci mon pote de l'avoir mentionné et tu as raison, ce post ne répond pas complètement à la question. Espérons qu'il existe une méthode pour traiter les coques convexes et concaves ou au moins une en devenir!
Joseph

2
Si vous ne les avez pas déjà vus, il semble que ET Geowizards ait un outil juste pour cela et un autre utilisateur a écrit un script qui le fera. Ils peuvent être trouvés à la question liée gis.stackexchange.com/questions/147790
Chris W

@ChrisW - Génial, je n'ai pas vu ce message autant de remerciements pour l'avoir mentionné!
Joseph

3

Un peu en retard, mais j'essayais de trouver la même chose, donc je l'ai trouvé, maintenant dans QGIS 3x, (je ne sais pas si les versions précédentes peuvent le gérer) dans l'outil de processus, il y a un outil qui en espagnol est nommé pôle d'inaccessibilité "polo de inaccesibilidad".

entrez la description de l'image ici

Utilisez-le pour créer une couche de points qui sont placés à la distance la plus éloignée à l'intérieur du polygone. Cette distance maximale a été ajoutée en tant qu'attribut entrez la description de l'image ici

entrez la description de l'image ici

Ensuite, utilisez simplement l'outil tampon pour dessiner des cercles en utilisant cette distance sur la couche de points et vous obtiendrez le plus grand cercle à l'intérieur d'un polygone

entrez la description de l'image ici

entrez la description de l'image ici


2
  1. Rechercher des cercles de points centraux
  2. Connecter les points centraux
  3. Trouver le milieu entre les cercles connectés
  4. Construire des hyperboles, en utilisant les centres comme points de focalisation et les points médians comme point sur l'hyperbole
  5. Trouver des points d'intersection d'hyperboles
  6. Connecter l'hyperbole d'intersection avec le cercle de point central
  7. Trouvez l'intersection sur le cercle de périmètre.
  8. Construisez un cercle.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.