Finden Sie den maximalen Radius des Kreises, der in ein unregelmäßiges Polygon passt?


9

Ich habe ein Problem, das meiner Meinung nach mithilfe des Werkzeugs "Zonale Geometrie" in der ArcGIS Spatial Analyst-Toolbox behoben werden kann. Ich habe jedoch keine Lizenz für Spatial Analyst und suche nach einer Alternative. möglicherweise mit QGIS.

Wie finde ich den maximalen Radius eines Kreises, der in ein unregelmäßiges Polygon passt?

Beachten Sie, dass das Polygon entweder eine konvexe oder eine konkave Hülle sein kann (wie unten gezeigt) und die Lösung beide adressieren muss.


Ich habe Josephs Lösung ausprobiert , aber leider ist das Ergebnis nicht das, wonach ich gesucht habe.

Erstens habe ich sehr unregelmäßige Polygone wie dieses:

mein Polygon

Wenn ich Josephs Beschreibung folge, sieht das Ergebnis folgendermaßen aus:

Ergebnis

Dies ist sicher das Ergebnis nach dieser Lösung, aber es ist nicht die Antwort auf meine Frage.

Für mich ist es wichtig, die Frage zu beantworten, wie groß der Radius eines Kreises maximal sein kann, damit sich der Kreis immer noch vollständig innerhalb des Polygons befindet, unabhängig davon, wo sich der Mittelpunkt des Kreises befindet.

Zum Beispiel gibt es im Norden des Polygons viel mehr Platz, so dass ein viel größerer Kreis platziert werden kann als im Süden des Polygons. Aber wie groß kann dieser Kreis sein?


1
Willkommen bei GIS: SE! Suchen Sie so etwas wie Zonenstatistik ?
Joseph

2
Vielleicht bin ich ein bisschen blind, aber ich kann keine bereits vorhandene Antwort auf meine Frage finden. Der Link oben auf dieser Seite "Berechnen von Rasterstatistiken für Polygone" passt meiner Meinung nach nicht zu meiner Frage. Also noch ein paar Ideen vielleicht ??
Christian

Antworten:


6

Wenn Sie den Mindestradius für einen Kreis innerhalb eines Polygons wie erwähnt kennen möchten (und keine Raster verwenden möchten, was Sie wahrscheinlich mit Zonenstatistiken tun können ), sind einige Schritte erforderlich:

  • Nehmen Sie Ihre Polygonebene (in einem sehr einfachen Beispiel gezeigt) und verwenden Sie Vektor > Geometriewerkzeuge > Polygonschwerpunkte . Wir werden diese "Mittelpunkt" -Ausgabe später dafür verwenden.

Einfaches Polygon

  • Verwenden Sie als Nächstes die SAGA-Funktion Konvertieren von Polygonen in Linien aus der Processing Toolbox
  • Nehmen Sie die Ausgabezeilenebene und verwenden Sie " Linien in Punkte konvertieren" erneut aus SAGA (verringern Sie den Punktabstand, um mehr Punkte zu generieren. Dies kann Ihnen helfen, am Ende ein genaueres Ergebnis zu erzielen).

Polygon analysiert

  • Jetzt können wir die Funktion Abstand zum nächsten Hub aus der Toolbox verwenden. Wählen Sie die Ebene , die Sie von Linien Punkte als umgewandelte Quelle Punkten Schicht ; und wählen Sie die Ebene Mittelpunkt als Ziel-Hub-Ebene aus . Sobald Sie dies ausführen, sollten Sie eine Ausgabeebene erhalten, die die Abstände von jedem Umfangspunkt zum Mittelpunkt enthält:

Entfernung zu und von Punkten

Entfernungsattribute

Der Mindestabstand sollte der Mindestradius Ihres Kreises innerhalb dieses Polygons sein. Wir können dies testen , indem die Schaffung eines Puffers ( Vector > Geoverarbeitungswerkzeugen > Buffer ) auf der Mittelpunktebene und Kopieren / Einfügen der Mindestabstand von der Attributtabelle in die Pufferabstand Option:

Puffer


2
Sehr schön gemacht!
WhiteboxDev

2
Ich habe dies gefunden, als ich eine aktuelle Frage recherchiert habe, um im Grunde das Gleiche zu tun. Während ich zuerst dachte, es könnte ihr Problem lösen, scheint es beim Lesen Ihrer Schritte einen signifikanten Fehler zu geben, bei dem der Prozess nur für Polygone funktioniert, die konvexe Hüllen und keine konkaven Hüllen sind. Dies wird in der scheinbaren Fragenbearbeitung demonstriert. Der Schwerpunkt einer solchen Form fällt nicht unbedingt in diese Form, und selbst wenn dies der Fall ist, können Sie sehen, dass an beiden Enden ein größerer Kreis passt als in der Mitte (wo der minimale Nabenabstand wäre) der Beispielform.
Chris W

@ChrisW - Danke Kumpel, dass du das erwähnt hast und du hast Recht, dieser Beitrag beantwortet die Frage nicht vollständig. Hoffentlich gibt es eine Methode, um sowohl konvexe als auch konkave Rümpfe oder zumindest einen in der Herstellung anzusprechen!
Joseph

2
Wenn Sie sie noch nicht gesehen haben, hat ET Geowizards anscheinend nur ein Tool dafür, und ein anderer Benutzer hat ein Skript geschrieben, das dies erledigt. Sie können unter der verlinkten Frage gis.stackexchange.com/questions/147790
Chris W

@ChrisW - Super, habe diesen Beitrag noch nicht gesehen. Vielen Dank, dass du ihn erwähnt hast!
Joseph

3

Ein bisschen spät, aber ich habe versucht, das Gleiche zu finden, also habe ich es jetzt in QGIS 3x (ich weiß nicht, ob die vorherigen Versionen damit umgehen können) im Prozess-Tool gefunden. Es gibt ein Tool, das auf Spanisch ist wird als "polo de inaccesibilidad" Unzugänglichkeitspol bezeichnet.

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie diese Option, um eine Ebene mit Punkten zu erstellen, die am weitesten innerhalb des Polygons platziert sind. Diese maximale Entfernung wurde als Attribut hinzugefügt Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie dann einfach das Pufferwerkzeug, um Kreise mit diesem Abstand über der Punktebene zu zeichnen, und Sie erhalten den größten Kreis innerhalb eines Polygons

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


2
  1. Finden Sie Mittelpunktkreise
  2. Mittelpunkte verbinden
  3. Finden Sie den Mittelpunkt zwischen verbundenen Kreisen
  4. Konstruieren Sie Übertreibungen, indem Sie Zentren als Fokussierungspunkte und Mittelpunkte als Punkt auf der Übertreibung verwenden
  5. Finden Sie Schnittpunkte von Übertreibungen
  6. Verbinden Sie die Übertreibung der Kreuzung mit dem Mittelpunktskreis
  7. Finden Sie den Schnittpunkt auf dem Umfangskreis.
  8. Konstruiere einen Kreis.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.